What is DualMind Lab? v2.0
DualMind Lab is an AI model comparison platform that allows users to compare two or more AI models side-by-side with random or blind selection, vote on which response is better, and track model performance on a community-driven .Blind comparison eliminates brand bias — users don’t see which model generated which response until after voting.
Dual-Chat Arena
Send one prompt to two randomly selected AI models and compare responses side-by-side in a blind test
Community Voting
Vote for the better response. Votes feed into an ELO-based leaderboard that ranks model performance
Thread Management
Persistent conversation threads with visibility controls (private, public, unlisted) and sharing
Multi-Provider AI
Groq and Bytez providers with automatic key rotation, failover, and fallback logic built in
Technology stack
- Overview
- Backend
- Frontend
- Database
| Layer | Technology | Details |
|---|---|---|
| Backend | .NET 8 / C# / ASP.NET Core | REST API with Swagger, hosted on Azure |
| Database | PostgreSQL via Supabase | All data: users, threads, comparisons, votes, models |
| Auth | Supabase Auth + JWT | HS256 tokens, sub claim = user ID |
| Frontend | Vanilla JS + HTML/CSS | Served via Cloudflare Workers, SSE streaming |
| Admin Panel | Vanilla JS + Cloudflare Workers | Proxies /api/* to backend, serves static HTML |
| AI Providers | Groq, Bytez | OpenAI-compatible chat completions API |
How it works
Quick links
Quickstart
Clone repos, configure environment, run locally in under 15 minutes
Architecture Overview
System diagrams, component interactions, and technology breakdown
API Reference
All endpoints with interactive playground and multi-language examples
Database Schema
Complete table definitions, ER diagrams, and relationships
Repository structure
DualMind Lab is a multi-repo project with three main repositories:Backend API
DualMind_Back — .NET 8 REST API with JWT auth, AI provider gateway, and Supabase data access
Frontend
DualMind UI — Vanilla JS SPA with SSE streaming, served via Cloudflare Workers
Admin Panel
DualMind Admin UI — Cloudflare Worker dashboard with full CRUD for all entities
Authentication
All API endpoints (except health checks and feature flags) require a Supabase JWT token:How to get a JWT token
How to get a JWT token
- Sign in via the frontend using Google OAuth or email/password
- Supabase Auth issues a JWT with
sub(user UUID),email, andaud: "authenticated" - The frontend stores the token via
supabase.auth.getSession() - All API requests include the token in the
Authorization: Bearerheader
JWT validation in the backend
JWT validation in the backend
The backend validates every JWT using HS256 with the Supabase project’s JWT secret:
Explore the docs
Ready to start? Head to the Quickstart guide, explore the Architecture, or jump to the API Reference.