Guren
Laravel-style fullstack TypeScript, on Bun.
Controllers, models and React pages wired together with types, built so your coding agent can work on it too.
Docs · Why Guren · Example app · Discussions
https://github.com/user-attachments/assets/f27c4355-8a47-4e35-a128-0b1027ebc390
Quick start
bunx create-guren-app my-app --auth
cd my-app
bun run db:migrate && bun run db:seed
bun run dev
Open http://localhost:3333 and sign in with demo@example.com / secret. SQLite is the default, so there is nothing else to set up.
Why Guren
- Laravel's structure, TypeScript's types. Routes, controllers, models and migrations where you expect them, typed from the route to the React component.
- No API layer. Inertia.js passes controller data straight to React pages.
- Batteries included. Auth, queues, mail, cache, storage, notifications, real-time and scheduling are one command away.
- Agent-ready. Every app ships a harness for coding agents (
CLAUDE.md, rules, hooks) and commands that check their work. - Fast, and deploys anywhere. Runs on Bun; ships to Cloudflare Workers, Vercel or AWS Lambda.
- Secure by default. CSRF, security headers and same-origin CORS are on before you configure anything.
Add what you need
bunx guren add auth
bunx guren add resource posts --fields "title:string,body:text"
bunx guren add notifications
bunx guren add storage
bunx guren add broadcasting
Then bun run codegen to refresh the types, and bun run build when you ship. See the CLI guide for everything guren add can install.
Numbers
- Agents: with the bundled harness, Sonnet 5 passed 60/60 tasks (58/60 without) at 25% lower cost. Agents on Guren
- Speed: 2.3× the throughput of an equivalent Node.js MVC stack on SSR pages, 3.5× on JSON. Benchmark
Requirements
Bun 1.4.2. Docker only if you want PostgreSQL or MySQL instead of SQLite.
Contributing
Issues and pull requests are welcome. See CONTRIBUTING.md. If Guren helps you, consider sponsoring.
v2 is stable: breaking changes only land in major releases (release policy).