Introduction
Gencow — Frontend + backend AI app framework for vibe coders
Gencow is a frontend + backend AI app framework for vibe coders who want to ship fast without compromising on quality. Build app screens and complete backend APIs with TypeScript — auth, database, realtime, file storage, AI, and cloud deployment — from one project.
Everything you need to ship a fullstack app:
- Frontend-ready — Use Vite + React by default for new app screens and deploy them with your backend
- Schema-first — Define your database with TypeScript (Drizzle ORM)
- Instant APIs —
createCrud()and typedprocedurebuilders, with auto-generated client types - Built-in Auth — User management powered by better-auth (session-based, token-based)
- Realtime — WebSocket push model —
useQueryauto-refreshes on data changes - File Storage —
ctx.storage.store()/getUrl()— simple and intuitive - AI-Ready — Add AI, RAG, Memory, Tools with
gencow add AI - Cron Jobs — Scheduled tasks with
cronJobs()— interval, daily, weekly, cron - Cloud Deploy —
gencow devand you're live onhttps://<app>.gencow.app
Why Gencow?
| Feature | Gencow | Supabase | Firebase |
|---|---|---|---|
| Schema | Drizzle (TypeScript) | SQL (Console) | NoSQL (Console) |
| API | procedure + createCrud |
SQL / REST | Firestore API |
| Auth | Built-in (better-auth) | Built-in | Built-in |
| Realtime | WebSocket push | Realtime extension | Firestore listeners |
| File Storage | ctx.storage |
Storage | Cloud Storage |
| AI Components | gencow add AI |
Manual | Vertex AI |
| Cron Jobs | cronJobs() |
pg_cron | Cloud Functions |
| Deploy | gencow dev |
Dashboard | firebase deploy |
| Self-host | ✅ (Docker) | ✅ | ❌ |
| Local Dev DB | Cloud PostgreSQL | PostgreSQL | Emulators |
Who is this for?
- Vibe coders who use AI assistants (Cursor, Copilot, Claude) to build apps
- Solo developers who want a full backend in minutes
- Indie hackers who need auth + DB + AI + file storage without setup overhead
- Agencies building prototypes and MVPs for clients
Tech Stack
| Layer | Technology |
|---|---|
| Runtime | Bun |
| HTTP Server | Hono |
| Database | PostgreSQL (Gencow Cloud) |
| ORM | Drizzle ORM |
| Auth | better-auth (session-based + JWT) |
| Validation | Zod + built-in v validator |
| Realtime | Native WebSocket (push model) |
| AI | Vercel AI SDK + Gencow proxy (GPT-5.5/GPT-5.4/GPT-4.1 family, GPT-4o compatibility) |
| Cloud | Gencow Platform (gencow.app) |
Architecture
Your App
├── gencow/ ← Backend code (this is what you write)
│ ├── schema.ts ← Database tables (Drizzle ORM)
│ ├── generated/ ← Server codegen (do not edit by hand)
│ │ ├── auth-schema.ts ← Auth tables (from gencow/auth.ts)
│ │ └── db-schema.gen.ts ← Aggregated schema for typed ctx.db
│ ├── auth.ts ← Auth config (defineAuth)
│ ├── runtime.ts ← Typed `procedure` + `createCrud` bound to your schema + auth
│ ├── tasks.ts ← Your procedures (read/write APIs)
│ ├── files.ts ← File upload/download logic
│ ├── crons.ts ← Scheduled jobs
│ ├── seed.ts ← Seed data (optional)
│ ├── index.ts ← Re-exports all modules
│ ├── api.ts ← Auto-generated type-safe API client
│ └── README.md ← Auto-generated AI guide
├── src/ ← Vite + React frontend (recommended for new apps)
├── gencow.config.js ← Project configuration
├── gencow.json ← Cloud app ID (auto-created on deploy)
├── drizzle.config.ts ← Database config (PostgreSQL)
└── package.jsonHow it works:
- You define database tables in
gencow/schema.tsusing Drizzle ORM - You write procedures in
gencow/*.tsusingcreateCrud()andprocedurefromgencow/runtime.ts gencow devstarts a Hono server with hot-reload, auto-generatesapi.ts- Your Vite + React frontend uses
useQuery(api.tasks.list)— data is reactive via WebSocket gencow devships everything to Gencow Cloud (PostgreSQL + isolated container)
Default frontend choice: When vibe-coding a new Gencow app, choose Vite + React. Use Next.js only when the user explicitly asks for Next.js/SSR or when adding Gencow to an existing Next.js project.
Next Steps
- Installation — Create your first project
- Quickstart — Build a Todo app in 5 minutes
- Project Structure — Understand every file