Evidence-driven AI co-founder workspace for startup validation.
OpenFounder helps founders move from idea → validated problem → tested solution by treating every claim as an assumption until proven otherwise. It combines structured workflows (phases, evidence ledger, experiments, interviews, risk register) with a multi-provider AI co-founder that refuses to invent sources or customer quotes.
- Challenge unsupported claims
- Clearly separate: evidence · inference · assumption · hypothesis · recommendation
- Prefer small, falsifiable experiments over large speculative plans
- Never invent market stats, customer quotes, or sources
- Dashboard – Project health, risk snapshot (open / hot / mitigated), and highest-value next action
- Phases – Guided 10-phase founder journey with required tasks
- Evidence Ledger – Claims with status (unverified → experiment_confirmed), verbatim quotes, sources, and a promotion guardrail: a claim cannot be marked research-backed, customer-confirmed, or experiment-confirmed without the matching evidence.
- Risk Register – Impact × probability scoring, filters, mitigation & next tests
- Research – Structured source logging
- Competitors – Teardowns with strengths/weaknesses/complaints
- Validation / Experiments – Hypothesis → method → success/failure criteria
- Customer Interviews – Mom-Test style logging + verbatim quotes
- Canvas – Visual relationship mapping
- MVP Planner – MoSCoW prioritization
- Roadmap – Dependency-aware planning
- Business Model – Lean Canvas + unit economics
- GTM – Channel mapping & checklist
- Landing Page Studio – Smoke-test copy generation
- Documents – Exportable packages
Multiple providers with configurable models and graceful fallback:
| Provider | Notes |
|---|---|
| Server Gemini | Uses GEMINI_API_KEY (recommended for hosted) |
| Direct Gemini (BYOK) | Browser → Google; primary + ordered fallback models on 429/503 |
| OpenAI-compatible | OpenAI, Groq, Together, DeepSeek, LocalAI… |
| Anthropic Claude | Direct browser API |
| Ollama | Fully local / privacy-first |
| Offline Rules | 100% free, zero network, deterministic heuristics |
Settings → AI Providers lets you pick provider, model presets (or custom IDs), Gemini fallback list, temperature, and max tokens. Keys can stay session-only or persist in localStorage.
Keyboard shortcuts:
⌘/Ctrl + J→ Toggle AI Co-founder panel⌘/Ctrl + K→ Command palette
Desktop workspace:
Tablet view:
Mobile view:
Empty state (no project):
- Create a project — Open the app, click "Create New Project", and fill in your idea, problem, target market, and founder context. Or click "Load Demo Workspace (TradePulse)" to explore with example data.
- Work through phases — The sidebar guides you through 10 founder phases. Complete tasks in each phase to advance.
- Log evidence — In the Evidence Ledger, record claims with status (assumption → unverified → research-backed → customer-confirmed → experiment-confirmed). A claim cannot be promoted without matching evidence.
- Score risks — In the Risk Register, score each risk by impact × probability. The dashboard highlights "hot" open risks (score ≥ 4) as your next priority.
- Run experiments — Design falsifiable tests in Validation. Results feed back into evidence confidence.
- Record interviews — Log customer discovery interviews with verbatim quotes in Customer Interviews.
- Plan MVP & Roadmap — Scope features in MVP Planner (MoSCoW) and map milestones in Roadmap.
- Export documents — Generate Markdown or JSON documents from the Documents page, or export your full workspace as JSON from Settings → Data.
- Frontend: React 19 + TypeScript + Vite 6 + Tailwind CSS 4
- Local Database: Dexie (IndexedDB) with Zod schema validation
- State: React Context (
ProjectContext+useProjecthook) - Server: Express + optional Gemini (for
/api/ai/*routes) - Testing: Vitest (validation, risk scoring, model defaults, context builder, phases, IDs)
- Deploy: Static build → GitHub Pages (server routes fall back gracefully)
git clone https://github.com/Perchemop/OpenFounder.git
cd OpenFounder
bun install # canonical package manager (bun.lock is committed)
# Full stack (Express + Vite) – recommended
bun run dev
# Frontend only
bun run dev:vite
bun run lint # tsc --noEmit
bun run test # vitest run
bun run build:static # production static assetsCI (.github/workflows/ci.yml) runs the type check, the test suite on Ubuntu, macOS, and
Windows, and the static build on every pull request. Treat CI as the authority rather than a
local run.
Copy .env.example → .env:
GEMINI_API_KEY=your_key_here # optional – enables server-side AIWithout a server key the app still works fully offline or with user-provided keys (Settings → AI Providers).
main.tsxmounts React inside anErrorBoundary.ProjectProviderloads settings fromlocalStorage, opens Dexie (OpenFounderDB), and optionally activates an existing project (never auto-seeds synthetic data without consent).- Entity tables (evidence, risks, experiments, …) load for the active project ID.
App.tsx is a thin shell:
- Navbar – project switcher, theme, settings, AI toggle
- Sidebar – workspace tabs with badges (unverified evidence, active experiments, open risks)
- Main – active page component
- AICofounderPanel – slide-over chat
- Modals: New Project, Settings, Command Palette
- New Project – capture problem, user, constraints, starting point → stored in IndexedDB.
- Phases – work through 10 founder phases; complete tasks and advance phase index.
- Evidence – log claims; status starts as assumption/unverified; promote only with real signals.
- Risks – score impact × probability (1–9); track mitigation and next tests. Dashboard prioritizes “hot” open risks (score ≥ 4).
- Research / Competitors / Interviews – structured inputs that feed the AI context string.
- Experiments – falsifiable tests with success/failure criteria; results feed evidence.
- MVP / Roadmap / GTM / Business / Landing – plan only after riskiest assumptions are under test.
buildProjectContext()serializes workspace data (within token budget).- User message + context + strong system prompt go to the active
AIProvider. - Providers: Server/Direct Gemini (with model candidate fallback), OpenAI-compatible, Anthropic, Ollama, or Offline Rules.
- Offline mode returns deterministic guidance from local counts (no network).
- All project data lives in browser IndexedDB.
- Export/import full JSON packages from Settings → Data.
- API keys: session-only by default, or opt-in localStorage.
| Mode | Command | AI |
|---|---|---|
| Full stack | npm run dev |
Server Gemini if GEMINI_API_KEY set; else BYOK / offline |
| Static (GitHub Pages) | npm run build:static |
Direct Gemini / OpenAI / Anthropic / Ollama / Offline only |
Centralized project, entities, AI config, theme, modals. Derived: evidence counts, open risks, AI context string.
Dexie tables, Zod validation, export/import with optional ID remapping, settings persistence.
providerTypes– interface + system promptprovidersGemini/OpenAI/Anthropic/Ollama/OfflinemodelDefaults– presets,buildGeminiModelCandidates, parse/format fallbackscontextBuilder– workspace → prompt text
Pure scoring helpers; full CRUD register; dashboard strip for open/hot risks.
npm testCoverage includes:
- Zod / export validation
- Workspace referential integrity (canvas edges, experiment → evidence, roadmap dependencies)
- Risk scoring (
riskScore, hot/open, sort) - Evidence integrity promotion rules (
evaluateEvidencePromotion, integrity summary) - Model defaults (
buildGeminiModelCandidates, parse/format fallbacks) buildProjectContextFOUNDER_PHASESstructuregenerateIduniqueness & format
| Document | Purpose |
|---|---|
| docs/project-brief.md | Product identity, user, problem, success definition |
| docs/scope.md | In-scope and out-of-scope capabilities |
| docs/inspiration.md | Public frameworks and clean-room boundary |
| docs/architecture.md | Stack, runtime shape, data model, domain rules |
| docs/capability-inventory.md | The capability list this app is designed to deliver, with sources and status |
| docs/parity.md | Capability matrix with honest status |
| docs/releases/ | Per-release legal checklist records with CI evidence |
| docs/assumptions-and-questions.md | Assumptions and open questions |
| docs/development.md | Contribution flow and CI-only verification |
| docs/qc/manual-qc.md | Manual quality checklist |
| IMPLEMENTATION_PLAN.md | Vertical-slice plan |
| REQUIREMENTS_TRACEABILITY.md | Requirement → code → test mapping |
| DECISIONS.md | Decision log |
| PROGRESS.md | Session log with verified results |
| CHANGELOG.md | Release notes |
| ATTRIBUTION.md | Third-party licences and asset provenance |
| CONTRIBUTING.md | How to contribute, and the licence terms for PRs |
| ROADMAP.md | Readiness percentages and staged milestones |
- ProjectContext extraction
- Error Boundary
- Risk Register UI + Dashboard snapshot
- Expanded unit tests
- Configurable model lists, temperature, max tokens
- Evidence integrity guardrails + claim editing
- Pull-request CI on Ubuntu, macOS, and Windows
- Documentation and tracking baseline
- Dashboard evidence-integrity score
- Full-text search across research, interviews, risks, roadmap
- Accessibility audit (human pass recorded, automated axe scan in CI)
- Installable PWA with an offline app shell
- Optional cloud sync (still local-first)
Contributions are welcome. Please see CONTRIBUTING.md for how to file bugs, propose features, set up a dev environment, and submit pull requests. The project aims to respond to non-security issues within 7 days and prioritises accessibility reports. Review is public; code-of-conduct and security issues are handled privately.
Dual licensed under MIT OR Apache-2.0, at your option — see LICENSE, LICENSE-MIT, LICENSE-APACHE, and ATTRIBUTION.md. Contributions are accepted under the same terms (CONTRIBUTING.md).
Built for founders who prefer evidence over optimism.



