Backend Framework
Pick the framework that serves your API or server-rendered app, when your frontend framework's own server routes aren't enough.
The real choice
Minimal router or batteries included. Minimal frameworks handle HTTP and leave the database, auth and admin to you; batteries-included frameworks give you ORM, migrations, auth and background jobs with one set of conventions, at the cost of learning them.
Pick by situation
Tap the ones that are you — the tools that fit light up below.- You need a small TypeScript API, possibly on an edge runtime
Hono - You want a Node.js API server with schema validation and good throughput
Fastify
Express - Your backend needs Python for AI or data work
FastAPI - The backend is the product — many models, an admin, jobs and emails
Django
Ruby on Rails
Laravel - Your TypeScript API will grow many domains and you want enforced structure
NestJS
The contenders
Grouped by the side of the choice they answer, not ranked. Open a row for when to use it, the trade-off and what makers say.
FastAPIframework · open source · free tierPython APIs with request validation and interactive docs generated from type hints.


29+319 open source128.7M/wk
Use it whenYour backend needs Python for AI or data work.
Trade-offNo built-in ORM, admin or auth; you assemble those from separate libraries.
Used by AiTerm, Atlas.co, Cure AI, DropIT, GAIA and 24 more · in 319 open-source projects.
We use FastAPI for our API written in Python. The tool is very easy to use and we believe this is part of the best combination for SaaS development.
Expressframework · open source · free tierNode.js servers where you want a widely documented default and a huge middleware catalog.3+361 open source124.8M/wk−26% vs npm
Use it whenYou're following a tutorial or need a specific Express middleware.
Trade-offOlder design; types, validation and structure are all up to you.
llms.txtUsed by Ghostboard, Pallyy, Scrapingdog · in 361 open-source projects.
Ghostboard started as an ExpressJS monolith in a $5 server on Digitalocean as a prototype for my blog: simple, low-cost, and with a few features.
Honoframework · open source · free tierSmall TypeScript APIs that run on Node, Bun, Deno or edge platforms like Cloudflare Workers.

3+120 open source55.9M/wk11.3× vs npm
Use it whenYou're deploying to an edge runtime or want one API that can move between runtimes.
Trade-offYou choose and wire the database, auth and validation yourself.
llms.txtCLIUsed by Bika.ai, Disco.dev, Enclosed · in 120 open-source projects.
We built Disco's MCP hub on Hono (leveraging the hono MCP package). DX is good and it's one of the more performant Typescript API framework. Works especially well with Cloudflare worker deployments
Fastifyframework · open source · free tierNode.js APIs that want low overhead, JSON-schema request validation and a structured plugin system.75 open source11.3M/wk+9% vs npm
Laravelframework · open source · free tierPHP apps with ORM, queues, auth scaffolding and an optional paid ecosystem for hosting and admin panels.
73★ 34.9k
Use it whenYou want first-party tools for deploying and running the app, not just the framework.
Trade-offThe smoothest path runs through Laravel's paid add-ons.
Used by Agiled, Amploo, browser extension, Built for Devs, ClearCheckbook Money Management and 68 more.
I use Bitbucket to manage my git repository and have Laravel Homestead running locally so I can test and work on my code in an environment that matches my production servers.
Djangoframework · open source · free tierPython apps that want an ORM, migrations, auth and an admin panel on day one.
37+58 open source11.7M/wk
Use it whenYou need an internal admin to manage data without building one.
Trade-offConventions to learn, and a modern interactive frontend is a separate piece.
Used by 3D AI Studio, Antiquoted, Baboo Travel, Badger Maps, Boondockers Welcome and 32 more · in 58 open-source projects.
Django makes my life easy. I've used it at least 4 projects. It's been around for a while so it's stable and LLMs have a ton of knowledge about it. It's a great project that I will continue to use for life.
Ruby on Railsframework · open source · free tierFull-stack Ruby apps where one developer builds models, views, jobs and emails with strong conventions.

24★ 58.8k
Use it whenYou know Ruby and are building a CRUD-heavy web app end to end.
Trade-offA smaller hiring and library pool than JavaScript or Python.
Used by 3D Bust Maker, AI Form Fill, Billingrails Sandbox, Calm Jobs, Campana and 19 more.
For development, I use my favorite web framework Ruby on Rails , with Bulma for the front-end, as it’s so beautiful and easy to use, it makes me look like I actually know front-end design.
NestJSframework · open source · free tierLarger TypeScript backends organized into modules, with dependency injection and decorators.
21+62 open source14.4M/wk−29% vs npm
Use it whenYour API will grow many domains and you want Angular-style structure.
Trade-offMore boilerplate and ceremony than a solo project usually needs.
llms.txtCLIUsed by BountyHub, Cockpit, Exstats, JustBackend, JustCMS and 16 more · in 62 open-source projects.
NestJS powers the Exstats backend. Crawlers for Chrome, Edge, and Firefox stores, the GraphQL API behind the dashboard, and the scheduled jobs for alerts and aggregations all run on it.
Who switches to what
Public pull requests on GitHub since Oct 2024 whose title says "X to Y" — real code changes, by developers in general rather than makers only. Pick a flow to see its pull requests.
- feat(api): migrate HTTP layer from Express to Fastify 5Aman-Org/node-express-realworld-example-app · 2026-09-28
- docs: update architecture guide from Express to Fastifyopenhoat/rag-hub-mcp · 2026-09-12
- Feature/migrate express to fastify prismaResearchPulse/sjs-be · 2026-09-02
- Migrate MCP app from Express to Fastify and add MCP resources/promptslarrybwosi/scryme · 2026-08-28
- docs: add Express to Fastify migration guideNiema-121/fastify · 2026-08-25
- docs: add Express to Fastify migration guidefastify/fastify · 2026-08-20
- Revert "feat(nestjs): switch the HTTP adapter from Express to Fastify"rolling-scopes/rsschool-app · 2026-08-12
- feat(nestjs): switch the HTTP adapter from Express to Fastifyrolling-scopes/rsschool-app · 2026-08-12
- perf(server): migrate from Express to FastifyRushdiJa/LogForge · 2026-08-11
- docs: add Express to Fastify migration guidelawgems/newtest3 · 2026-08-05
- feat: migrate from Django to FastAPIjoaoprocopio/rastro · 2026-09-30
- Enhacement django to fastapidooa-ansari/personal-knowledge-graph-LLM · 2026-08-23
- Enhacement django to fastapidooa-ansari/personal-knowledge-graph-LLM · 2026-08-22
- Migrate project foundation from Django to FastAPILeoAlvesBahia/finance-tracker · 2026-08-16
- Migrate application stack from Django to FastAPI + Reacttschuelia/finance-website · 2026-08-14
- feat(backend): migrate the API from Django REST Framework to FastAPIAkash29may/webapp_project · 2026-08-06
- feat(backend): migrate the API from Django REST Framework to FastAPIAkash29may/webapp_project · 2026-08-06
- refactor: migrate backend from Django to FastAPIKok321416/Apoinment_sistem_with_Anatoli · 2026-07-20
- Migrate Douyin Cloud template from Django to FastAPIjy951126/douyincloud_python3_django_demo · 2026-06-13
- feat: Migrate Checkix from Django to FastAPI + Ant Design Pro frontendlHumaNl/Checkix · 2026-06-01
- refactor(backend): migrate Express HTTP stack completely to Honovoltcrash/oxytype · 2026-10-01
- Migrate from Express to Hono frameworkahmadsayed/arbesk · 2026-09-27
- changed express to honoipx12/SnakeMonorepo · 2026-09-22
- Migrate from Express to Honoremotebrowser/page-turner · 2026-09-09
- Migrate from Express to Honoremotebrowser/headline-hub · 2026-08-31
- refactor: use zod instead of express middleware; migrate to honoswrlab/ard-eventhub · 2026-08-10
- Convert Express backend to Hono on Cloudflare Workerscodingclubgcoerc/College_tech_backend · 2026-08-09
- Migrate frontend SSR from Express to Hono (+ Cloudflare Workers)HiEventsDev/Hi.Events · 2026-07-27
- vscode-inproc-mcp: migrate in-proc HTTP server from Express to Honomicrosoft/vscode-containers · 2026-07-23
- DevOps: migrate API runtime from Express to HonoGlory42/Interis · 2026-07-19
- refactor: migrate backend from FastAPI to Djangobowl1/Behaviour-Aware-Federated-Wind-Power-Forecasting-System-demo · 2026-10-01
- refactor(backend)!: switch from FastAPI to Django + DRF (ADR-006)kingblessolivier/PharmaCore · 2026-08-04
- Migrate backend framework from FastAPI to Django (#7)gab-25/mtg_deck_tester · 2026-06-30
- Update README to reflect change from FastAPI to DjangoRam-Bhagat/Ram-Bhagat · 2026-06-16
- Migrate web app from FastAPI to Django + Channelscytsaiap-xyz/stock-analysis · 2026-06-10
- feat: migrate from FastAPI to Django for multi-user SaaS architectureKrAsH-CoD3/PriceDiffs · 2026-05-30
- Migrate backend FastAPI to Django REST Frameworkroilt532/App-Cafeteria-PioBaroja · 2026-05-26
- feat: migrate backend from FastAPI to Django REST Framework with ML integrationMartaAguilarMorcillo/BuloCheck · 2026-05-20
- refactor: migrate from FastAPI+Vue to Django monolithiclobster-xiaozhua/novel-reader · 2026-05-18
- Migrate from FastAPI to Django and enhance testing and deploymentLukeHeffAI/Voice-To-The-Dark · 2026-03-17
- Rewrite local service from FastAPI to Node.js Express.liuhanhui/npu-conquer-probe · 2026-09-12
- Switch backend/frontend stack from FastAPI+Next.js to Express+ReactAnkit-07-chy/BusinessIntelligence_AI · 2026-08-24
- Migrate backend from FastAPI to Express and port solver to Node.jschiranjeeviugowda/EQNSOLVER · 2026-04-12
- feat: migrate Python FastAPI endpoints to Node.js ExpressWilcolab/Anythink-Market-p9a8k88b · 2026-02-19
- Rewrite backend from FastAPI to Express.jssb224sc-HT22-VT27/4dt907 · 2026-02-17
- feat: Migrate Python FastAPI endpoints to Node.js ExpressWilcolab/Anythink-Market-worofjem · 2026-01-15
- Migrate Python FastAPI to Express.js with Jest testing & GitHub Actions CI/CDWilcolab/Anythink-Market-worofjem · 2026-01-15
- Migrate Python FastAPI to Node. js ExpressWilcolab/Anythink-Market-ssnlwke6 · 2026-01-14
- Update README.md to reflect migration from Python FastAPI to Node.js Express serverWilcolab/Anythink-Market-igaddo1h · 2026-01-13
- Migrate FastAPI server to Node.js Express using GitHub CopilotWilcolab/Anythink-Market-diyph0aj · 2026-01-12
- feat(api): migrate Express backend to FastAPI with users module and test suiteSidewalk-Works/Sidewalk · 2026-09-26
- Port the API from Node/Express to FastAPIraushan7999/sarkariworld-backend · 2026-09-05
- Automated backend migration: Express to FastAPI (20260813_003054)naveensnsgroups/N8N_Claude_Code_Test_Cloud · 2026-08-13
- refactor: migrate backend from Node/Express to Python FastAPI + SQLAl…Oshri-Zalman/GarageClick · 2026-06-02
- feat(translation-helper): port chat + audio + prompts backend from Node/Express to FastAPIshemaobt/shema-api · 2026-05-16
- Cut over Express to FastAPIBlakeMatthews-dev/canvas-studio-poc · 2026-05-09
- feat: Rewrite Express Backend to Python FastAPI with Cachingsadik004/ELEVATE-Premium-Luxury-Boys-Fashion · 2026-04-17
- Migrate backend from Express to FastAPIBaBaKaM870/TrombiFlow · 2026-03-31
- Migrate Express backend to FastAPIThaFishDance/mtg_agg · 2026-03-19
- Migrate Express backend to FastAPI — split api/index.py into modulesTigerwang30/DeisBike · 2026-03-09
- Migrate the API from Fastify on Render to Hono on Cloudflare Workerstrylinky/linky · 2026-09-16
- Migrate API from Fastify to Hono on Cloudflare Workersalexrr20/mooligan · 2026-07-25
- feat: Phase 1 — Fastify to Hono migration (all 14 route domains)Terrastories/terrastories-api · 2026-06-26
- Convert API server from Fastify to Honokevinclarkadstech/latest-greatest-starter · 2026-04-08
- feat: move from fastify to hono and enable bun supportmarkeejs/markee · 2026-03-22
- feat(backend): migrate from Fastify to Hono and reorganize architectureSellio-Squad/sellio_metrics · 2026-03-20
- Migrate HTTP stack from Fastify to Hono and add Fastify compatibility bridgePawleN-D/bloom-api · 2026-03-13
- refactor(typescript): migrate from Fastify to Honolizy-lab/backend-interview-assignments · 2026-02-26
- feat: migrate fastify to honoPoliNetworkOrg/backend · 2025-04-13
- Swapped From Django Backend to Prisma and Express Backendbincent0929/brainrot-or-not-extension · 2026-05-22
- Claude/django to express conversion 1 el mtHazeeb-95/cmconversion · 2026-05-13
- Claude/django to express conversion 1 el mtHazeeb-95/cmconversion · 2026-05-13
- Initial web interface port: Django templates to Express.js/EJSshelbeely/generative_agents · 2026-02-03
- Convert Django backend to Node.js Express with DrizzleORMalhasnalshrif/clinic · 2025-08-03
- migrate backend django to expresskimimhdzr/FinSight · 2025-05-28
- migrate backend django to expresskimimhdzr/FinSight · 2025-05-28
Before you choose
If your frontend framework already has server routes, you may not need a separate backend at all. When you do, choose within the language you picked: a minimal router for a small API, a batteries-included framework when the backend is the product (many models, an admin, jobs, emails). Batteries-included frameworks save a solo maker the most time on CRUD-heavy apps.
- Building a separate API server when your frontend framework's server routes would cover the handful of endpoints you need, doubling what you deploy.
- Assembling auth, validation, ORM and jobs from separate libraries on a minimal router for a CRUD-heavy app that a batteries-included framework gives you on day one.
- Doing slow work — AI calls, emails, file processing — inside the request handler instead of a background job, so requests time out under load.
Other options
Real choices most makers here won't need to weigh.
Decided alongside
What the 195 makers' products here chose for their other decisions.