Time estimate: ~15 minutes. You will have a fully working DualMind Lab instance with chat, arena comparisons, and voting.
Prerequisites
.NET 8 SDK
.NET 8 SDK
Download from dotnet.microsoft.com
Node.js 18+
Node.js 18+
Download from nodejs.org
Supabase project
Supabase project
Create a free project at supabase.com. You need:
- Project URL (e.g.,
https://xxx.supabase.co) - Anon key (Settings > API)
- Service role key (Settings > API)
- JWT secret (Settings > API > JWT Secret)
Groq API key
Groq API key
Get a free key at console.groq.com. This is the primary AI provider.
Setup
Configure environment variables
- Backend (.env)
- Frontend (config.js)
Create
.env in DualMind_Back/src/DualMind.API/:Your first arena battle
- Via the UI
- Via cURL
- Open
http://localhost:8000 - Click Login with Google (or create an account via Supabase)
- Type a prompt like “Explain quantum computing simply”
- Click Compare — two models respond side-by-side
- Vote for the better response
- Model names are revealed after voting
You now have a running DualMind Lab instance with chat, comparisons, and voting.
Next steps
Architecture Overview
Understand the full system design
API Reference
Explore all API endpoints
Database Schema
See all tables and relationships
Troubleshooting
Fix common setup issues
Common issues
401 Unauthorized
401 Unauthorized
500 on chat requests
500 on chat requests
Root cause: AI provider failure or missing database records.Fix:
- Check
GROQ_API_KEYis valid at console.groq.com - Ensure
ai_modelstable has at least one row withstatus = 'active' - Check backend terminal logs for the specific provider error
The fallback chain tries: Groq primary → Groq alt model → Bytez. All three must fail for a 500.
Frontend can't reach backend
Frontend can't reach backend
Root cause: Backend not running or CORS misconfiguration.Fix:
- Verify backend is running:
curl http://localhost:5079/health - Check
config.js—apiBaseUrlauto-detects localhost in development - Open browser DevTools > Console for specific CORS or network errors