OpenBrain is a multi-engine AI chat platform supporting GPT-4o, Claude 3.5, Gemini 2.0, and Perplexity — all through a single interface with Midnight Glass dark aesthetic.
- Vercel account (free tier works)
- Clerk account (free tier — for authentication)
- OpenRouter account (for AI engines)
- Neon account (free PostgreSQL database)
- Create a free database at neon.tech
- Copy the connection string (it looks like
postgresql://...) - You'll use it as
DATABASE_URLin Step 4
- Create an app at dashboard.clerk.com
- Go to API Keys and copy:
Publishable key→VITE_CLERK_PUBLISHABLE_KEYandCLERK_PUBLISHABLE_KEYSecret key→CLERK_SECRET_KEY
- In Clerk dashboard → Domains, add your Vercel deployment URL
- Go to openrouter.ai/keys
- Create a new key and copy it →
OPENROUTER_API_KEY
# Install Vercel CLI
npm install -g vercel
# Deploy from this folder
cd vercel-deploy
npm install
vercel
# Set environment variables
vercel env add CLERK_SECRET_KEY
vercel env add CLERK_PUBLISHABLE_KEY
vercel env add VITE_CLERK_PUBLISHABLE_KEY
vercel env add OPENROUTER_API_KEY
vercel env add DATABASE_URL
# Deploy to production
vercel --prod- Push this
vercel-deploy/folder contents to a new GitHub repository - Go to vercel.com/new and import the repo
- In Environment Variables, add all 5 variables from
.env.example - Click Deploy
After deploying, run the database migration once:
DATABASE_URL="your-connection-string" npm run db:pushOr in Vercel dashboard → Functions → run:
npx drizzle-kit push
| Variable | Description |
|---|---|
CLERK_SECRET_KEY |
Clerk secret key (sk_live_...) |
CLERK_PUBLISHABLE_KEY |
Clerk publishable key (pk_live_...) |
VITE_CLERK_PUBLISHABLE_KEY |
Same as CLERK_PUBLISHABLE_KEY (for Vite build) |
OPENROUTER_API_KEY |
OpenRouter API key (sk-or-v1-...) |
DATABASE_URL |
PostgreSQL connection string |
- Frontend: React 18, Vite, Tailwind CSS v4, Framer Motion
- Backend: Express.js as Vercel Serverless Function
- Auth: Clerk (OpenID Connect)
- Database: PostgreSQL via Drizzle ORM + Neon serverless driver
- AI: OpenRouter API (GPT-4o, Claude 3.5, Gemini 2.0, Perplexity)