The Arena of Synthetic Thought
AI-mediated philosophical discourse where ideas collide, evolve, and transcend through structured dialectical combat.
Dialectical.Claims is a platform that enables AI-embodied philosophical fighters to engage in dialectical duels. Users select two philosophers, define a thesis, and witness the emergence of novel syntheses through real-time AI-generated philosophical discourse.
- 🎭 Fighter Selection: Choose from 70+ philosophical thinkers across history
- ⚔️ Dialectical Combat: Watch AI-embodied philosophers engage in structured debate
- 🔄 Synthesis Generation: AI generates multiple synthesis candidates that transcend opposition
- 📚 Archive Browser: Explore past dialectics and their syntheses
- 🌐 Knowledge Graph: Visualize how ideas connect and evolve (coming soon)
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Backend: Next.js API Routes (serverless)
- Database: Supabase (PostgreSQL)
- AI: Google Gemini 2.0 Flash
- Deployment: Vercel
- Node.js 18+
- pnpm (recommended) or npm
- Supabase account
- Google AI Studio API key (get one at https://aistudio.google.com/app/apikey)
- Clone the repository
git clone https://github.com/yourusername/dialectical-claims.git
cd dialectical-claims- Install dependencies
pnpm install- Set up environment variables
Create a .env.local file in the root directory:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# Gemini API Configuration
GEMINI_API_KEY=your_gemini_api_key- Set up Supabase database
- Create a new Supabase project at https://supabase.com
- Run the SQL schema from
.claude/technical_specification.md(section 3.1) in your Supabase SQL editor to create:- Tables: fighters, dialectics, rounds, syntheses, provocation_deck, dialectic_lineage
- Functions: increment_view_count, increment_synthesis_usage
- Row Level Security policies
- Seed the database
pnpm db:seedThis will populate your database with sample fighters and provocations.
- Run the development server
pnpm devOpen http://localhost:3000 to see the application.
dialectical-claims/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── fighters/ # Fighter selection page
│ ├── thesis/ # Thesis selection page
│ ├── arena/[id]/ # Dialectic viewing page
│ └── archive/ # Archive browser
├── components/ # React components
│ ├── ui/ # Base UI components
│ ├── fighters/ # Fighter-related components
│ ├── thesis/ # Thesis selection components
│ └── arena/ # Arena display components
├── lib/ # Utilities and configurations
│ ├── supabase/ # Supabase clients
│ ├── gemini-client.ts # Gemini AI configuration
│ └── dialectic-generator.ts # Core dialectic logic
├── types/ # TypeScript types
└── scripts/ # Utility scripts
- Navigate to the fighters page
- Select two philosophers (e.g., Nietzsche and Haraway)
- Choose or create a thesis
- Set the number of rounds (2-8)
- Watch the dialectic unfold in real-time
- Explore the generated syntheses
- Visit the Archive page
- Browse completed dialectics
- Click to replay any dialectic
- Use syntheses as new theses for recursive exploration
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm type-check- Run TypeScript compiler checkpnpm db:seed- Seed database with sample data
- Streaming: Server-Sent Events (SSE) for real-time dialectic generation
- Database: PostgreSQL with row-level security
- AI Generation: Gemini 2.0 Flash with streaming support
- State Management: React hooks + session storage
- Gemini 2.0 Flash pricing: ~$0.01-0.02 per dialectic
- Supabase free tier: Suitable for development and small-scale production
- Vercel free tier: Suitable for MVP deployment
-
"Missing environment variables" error
- Ensure
.env.localexists with all required variables - Restart the dev server after adding env vars
- Ensure
-
Database connection errors
- Verify Supabase URL and keys are correct
- Check that database schema has been created
-
Gemini API errors
- Ensure your API key is valid
- Check quota limits in Google AI Studio
-
TypeScript errors
- Run
pnpm type-checkto see all type errors - Ensure database types match your Supabase schema
- Run
- Add more fighters (target: 70+)
- Knowledge graph visualization
- Multi-fighter dialectics (3+ participants)
- Export dialectics as PDF/Markdown
- Community features (collections, comments)
- Mobile app
Contributions are welcome! Please feel free to submit a Pull Request.
- Follow the existing code style
- Write TypeScript types for new components
- Test thoroughly before submitting PR
- Update documentation for new features
This project is licensed under the MIT License.
- Inspired by Hegelian dialectics and the history of philosophical thought
- Built with cutting-edge AI technology from Google Gemini
- Powered by the open-source community
Made with ⚔️ by the Dialectical.Claims team