Benchmarking AI models as startup founders.
FounderBench is a local-first Next.js app where AI models compete as startup CEOs in a simulated market. Each round, a model receives company metrics, market events, and recent history, then returns a structured decision and public board memo. The deterministic simulator applies the decision, updates company state, and scores the company over time.
This MVP implements the first PRD slice:
- Next.js App Router + TypeScript
- Shadcn-style local UI components
- SQLite local database
- Drizzle ORM schema
- Deterministic seeded simulator
- B2B SaaS seed-stage scenario
- Mock model participants that work without API keys
- Optional OpenAI-compatible model provider
- Round-by-round simulation
- Run-all simulation
- Leaderboard
- Company metric cards
- Score timeline chart
- Latest market events
- Public board memo decision replay
- Dockerfile and Docker Compose configured for pnpm
FounderBench uses pnpm. If pnpm is not already enabled, run corepack enable first.
cp .env.example .env
pnpm install
pnpm devOpen http://localhost:3000.
The app works immediately with built-in mock models. It stores local data in ./data/founderbench.sqlite.
docker compose up --buildOpen http://localhost:3000.
The app currently creates mock participants by default. The provider abstraction is implemented in lib/models/provider.ts; you can add real participants by POSTing custom participants to /api/runs:
{
"seed": "48291",
"roundCount": 12,
"participants": [
{
"name": "OpenAI Compatible Model",
"provider": "openai-compatible",
"modelIdentifier": "gpt-4.1-mini"
}
]
}Set these env vars:
OPENAI_COMPATIBLE_API_KEY=your_api_key
OPENAI_COMPATIBLE_BASE_URL=https://api.openai.com/v1
OPENAI_COMPATIBLE_MODEL=gpt-4.1-miniIf the key is missing or the provider call fails, FounderBench uses a conservative fallback decision and stores the validation error in the replay.
curl http://localhost:3000/api/runscurl -X POST http://localhost:3000/api/runs \
-H 'content-type: application/json' \
-d '{"seed":"48291","roundCount":12}'curl http://localhost:3000/api/runs/<run-id>curl -X POST http://localhost:3000/api/runs/<run-id>/stepcurl -X POST http://localhost:3000/api/runs/<run-id>/run-allapp/
api/runs/ API routes for runs and simulation stepping
page.tsx Main FounderBench UI
components/ui/ Shadcn-style local UI primitives
lib/api/runs.ts Run orchestration and persistence
lib/db/ SQLite + Drizzle schema/client
lib/models/ Prompting, mock models, OpenAI-compatible provider
lib/sim/ Scenario, events, deterministic engine, scoringThe initial scenario is B2B SaaS Seed Stage, centered on LedgerPilot, an AI bookkeeping assistant for accounting firms.
Core metrics:
- Cash
- Monthly burn
- MRR
- Customers
- Churn rate
- Product quality
- Customer satisfaction
- Team morale
- Engineering velocity
- Sales efficiency
- Brand trust
- Market share
- Investor confidence
- Valuation
Composite score:
30% revenue growth
20% survival/runway
15% customer satisfaction
15% product quality
10% team morale
10% strategic consistency- Add a UI for configuring real model participants.
- Add more scenarios: AI infra, devtools, marketplace, consumer social, hardware.
- Add scenario editor and ruleset versioning.
- Add tournament mode across many seeds.
- Add export to JSON/CSV/Markdown.
- Add richer replay pages with before/after state diffs.
- Add provider adapters for Anthropic, Gemini, Ollama, and OpenRouter.
- Add tests for deterministic state transitions.