Bloom is a TypeScript full-stack framework built for agentic coding. UIKit (React) + AppKit (Node) + Bloom CLI — cover web, desktop (Electron), mobile (Capacitor) and browser extensions from one codebase. Every package ships llms.txt + AGENTS.md so AI coding agents generate correct code on the first try.
AppKit handles your backend. UIKit handles your frontend. Bloom CLI wires them together and scaffolds any platform in one command. They compose, but work standalone.
12 backend modules. One pattern. Auth, database, cache, queue, storage, email, events — all auto-scaling from local to production.
45+ React components, 6 production layouts, 5 OKLCH themes. Cross-platform: web, desktop, mobile, extensions.
Scaffold web, desktop (Electron), or mobile (Capacitor) apps in one command with Feature-Based Component Architecture.
npm install -g @bloomneo/bloom
bloom create my-app # web app
bloom create my-app userapp # auth + user management
bloom create my-app adminapp # admin console (audit, settings, dashboard)
bloom create my-app desktop-basicapp # Electron desktop
bloom create my-app mobile-basicapp # iOS + Android via Capacitor
No routing config. No manual registration. File-based auto-discovery on both frontend and backend.
src/api/features/invoice/
├── invoice.route.ts # auto-mounts at /api/invoice
└── invoice.service.ts
src/web/features/invoice/pages/
├── index.tsx # → /invoice
└── [id].tsx # → /invoice/:id
bloom create my-app
bloom create my-app userapp
bloom create my-app adminapp
bloom create my-app desktop-basicapp
bloom create my-app mobile-basicapp
Closest in scope to T3 Stack or RedwoodJS — not Laravel or NestJS directly. Bloom's differentiator is agentic-first design and cross-platform coverage in one stack. Honest comparison:
| Capability | Bloom | Laravel | NestJS | T3 Stack | Next.js |
|---|---|---|---|---|---|
| Backend toolkit | ✓ AppKit | ✓ (PHP) | ✓ core | Next API | Partial |
| Frontend component library | ✓ UIKit | Blade | — | ✓ Next | ✓ |
| Desktop (Electron) template | ✓ | — | — | — | — |
| Mobile native (Capacitor) | ✓ | — | — | — | — |
| Browser extension template | ✓ | — | — | — | — |
Ships llms.txt | ✓ | — | — | — | — |
Ships AGENTS.md | ✓ | — | — | — | — |
| Claude Code skills bundled | ✓ 13 | — | — | — | — |
| Drift-checked docs (CI) | ✓ | — | — | — | — |
Auto-hydrated docs/ in scaffold | ✓ | — | — | — | — |
Best fit today: solo developers and small teams (≤10) shipping with heavy Claude Code / Cursor / Copilot usage, and anyone building cross-platform products without stitching three stacks. Not yet the right fit: large enterprise teams where ecosystem age and hiring pool matter more than agentic ergonomics — use Laravel or NestJS for those.
Clarity over complexity. Setup should take minutes, not days.
Use what you need. Nothing forces you to take everything.
Every package ships llms.txt and AGENTS.md. We build so AI can build.
Start with zero config. Add one env var and infra upgrades automatically.
LLMs hallucinate APIs for undocumented packages. Every Bloom package ships llms.txt and AGENTS.md inside the npm tarball — copied into your project's docs/ folder automatically on every npm install.
llms.txtComplete API reference regenerated on every build. Every method, every signature — never drifts from source.
AGENTS.mdRules for AI agents: always-do, never-do, canonical patterns. Avoid hallucinated method names on the first try.
docs/Postinstall copies the latest docs from node_modules/ into your project on every install.
llms.txt + AGENTS.md machine-readable specs so AI agents generate correct code on the first try.
llms.txt, AGENTS.md, Claude Code skills, per-component @llm-rule JSDoc, drift-checked docs, and auto-hydrated docs/ in scaffolded projects. In scope Bloom is closest to T3 Stack or RedwoodJS — but extends to cross-platform (web + desktop + mobile + extensions) which no competitor covers in one stack.
bloom create, then run npm install. The postinstall hook copies appkit + uikit llms.txt + AGENTS.md into docs/, and every Claude Code skill into .claude/skills/. Point your agent at the project root — it reads AGENTS.md first, then the package-specific docs. Agents generate correct code without guessing API shapes.
package.json — so agents never read stale guidance.