Docs / Stack Guides

Open documentation actions

Backend Frameworks

Compare Better Fullstack backend frameworks across runtimes, APIs, and fullstack modes to pick the right server.

The TypeScript --backend flag selects the server framework that hosts your API, auth, and integrations. This guide groups the options by how they run; see the Compatibility Matrix for any exact pairing.

Backend options

BackendCharacterNotes
honoSmall, fast, runs on Bun, Node, and Workers.The scaffolded default; broadest runtime support.
expressThe classic Node framework.Largest ecosystem, Node runtime.
fastifyHigh-throughput Node framework with schemas.Good for JSON APIs.
elysiaBun-first framework with end-to-end types.Best on the Bun runtime.
fetsFetch-API framework with OpenAPI.Standards-based handlers.
effectEffect-based HTTP platform.Pairs with the --effect capability flags.
nestjsOpinionated, decorator-driven framework.Requires --runtime node.
adonisjsFull MVC framework with its own tooling.Requires --runtime node.
nitroUniversal server toolkit.Deploys to many targets.
encoreBackend framework with built-in infra.Encore.ts workflow.
convexReactive backend-as-a-service.Replaces backend-owned database/API choices.
selfThe frontend serves its own API.Requires --runtime none and a fullstack frontend.

Runtime and API interactions

  • Runtime. Most backends run on bun or node; hono also targets workers. nestjs and adonisjs require --runtime node. self requires --runtime none.
  • API layer. tRPC is React-oriented. oRPC works across frontends. GraphQL (garph, graphql-yoga, apollo-server) and openapi are available where templates support them.
  • Convex. Selecting convex auto-adjusts the stack because it owns the database and API surface.
  • Effect. Choose effect as the backend, or layer Effect onto another backend with --effect effect / --effect effect-full.

Choosing a backend

Start with hono for portability, elysia if you are all-in on Bun, nestjs/adonisjs for a structured Node app, or convex when you want managed realtime data. For fullstack frameworks like Next.js or TanStack Start, --backend self avoids running a second server.

Next steps

Patreon