mrkeyoor.com_
Sat 17 Oct 13:33 UTC
Webevaluationupdated 26 Aug 2026

full-stack-fastapi-template review

Full Stack FastAPI Template is a starter repository for an authenticated web product with a FastAPI backend, React frontend, PostgreSQL database, tests, email recovery, and deployment configuration. It supplies the plumbing that a product team would otherwise assemble before writing its own features.

+64stars / 7d
Verdict

Our template install consumed 1,118 MB, and its Playwright authentication setup failed before 61 tests could run, so this is a substantial starter that still needs an application-level shakedown. Use it when FastAPI, React, PostgreSQL, Bun, and token authentication are already firm choices. Start smaller if you would replace more than one of those foundations, because removing inherited machinery can cost more than writing the required plumbing.

We ran it

Lab card: what happened when we ran full-stack-fastapi-templateScreenshot of full-stack-fastapi-template (github.com/fastapi/full-stack-fastapi-template)
Install✓ · 49s723 packages · 1118 MB
Buildn/ano build script
Tests✗ · 11sran, no count parsed
Repo252 files~14,489 lines of source · 1.8 MB · 15 CI workflows

Answers from our run

Does full-stack-fastapi-template build from source?

Dependencies installed in 49 seconds (723 packages), and the project has no separate build step. We cloned commit 68adb40 into a clean Debian container with 3 CPUs and no project-specific setup.

Do full-stack-fastapi-template's tests pass?

No. The project's own test command exited unsuccessfully after 11 seconds, and its output did not expose an individual test count.

Who should not use full-stack-fastapi-template?

Backend-only services that need a few FastAPI routes: this template also brings React, Bun, Vite, Tailwind, shadcn/ui, Playwright, and email tooling.

What are the alternatives to full-stack-fastapi-template?

Cookiecutter Django, FastAPI Vue, Create T3 App. Our template install consumed 1,118 MB, and its Playwright authentication setup failed before 61 tests could run, so this is a substantial starter that still needs an application-level shakedown.

Setup3/5Clear guides, but Bun, uv, Docker, PostgreSQL, and secrets all matter
Docs5/5Separate guides cover each app layer, testing, and deployment
Community5/545,159 stars, recent release, and active focused pull requests
Maturity4/5Well-developed starter, with current local and E2E workflow issues

Who it’s for

Small teams already committed to Python, React, TypeScript, and PostgreSQL.
Developers who want authentication, migrations, generated API clients, email templates, and CI in the starter.
Products that can use FastAPI Cloud or maintain the included Docker Compose deployment.
Teams willing to delete the sample Items feature and own every copied line afterward.

Who it’s NOT for

Backend-only services that need a few FastAPI routes: this template also brings React, Bun, Vite, Tailwind, shadcn/ui, Playwright, and email tooling.
Projects standardized on MySQL, SQLite, MongoDB, or a non-React frontend: the included models, migrations, client, and deployment assume this stack.
Teams expecting the starter's end-to-end suite to run without a configured application: our authentication setup failed and 61 tests did not run.
Organizations wanting a vendor-neutral turnkey deployment: the documented choices are FastAPI Cloud or a self-managed Docker host with PostgreSQL, Traefik, DNS, and secrets.

Setup reality

Our Bun install succeeded in 49 seconds, adding 723 packages and occupying 1,118 MB on disk. The monorepo exposed no root build script or target, so build was skipped. Tests exited 1 after 11 seconds: Playwright's authentication setup failed, and 61 tests did not run.

Local development needs Bun, uv, Docker Compose, PostgreSQL, and Mailpit or another mail setup. Backend and frontend run as separate processes during the fast editing loop. Deployment needs strong secrets, a reachable database, and either FastAPI Cloud credentials or a prepared Docker server.

The test log points to tests/auth.setup.ts:6:1 and an error-context file, but the supplied tail does not show the underlying authentication error. It supports the failure outcome, not a cause.

The template commits to 1 full product stack

Full Stack FastAPI Template answers the questions left after choosing FastAPI. SQLModel connects the API to PostgreSQL, Pydantic handles validation and settings, and migrations track schema changes. The browser application uses React, TypeScript, Vite, Tailwind CSS, and shadcn/ui. Authentication, password recovery, an admin screen, sample item management, generated API calls, local mail capture, backend tests, Playwright tests, and CI are already connected. That can remove weeks of setup when these are the same choices your team would make.

The repository is source code, not an updatable dependency. Once copied and customized, every authentication route, migration, workflow, and container definition belongs to the adopter. Upstream improvements will not arrive automatically. The sample Items model and screens demonstrate the intended pattern, but they should be removed early if the product does not need them. Waiting until real migrations and client calls depend on the sample makes cleanup harder.

A 1,118 MB install reflects the frontend toolchain

Our Bun installation put 723 packages on disk and used 1,118 MB. That is a large dependency footprint for a 1.8 MB checkout, although it includes the frontend build and browser-testing ecosystem rather than the Python backend environment. Teams should plan dependency caching in CI and keep lockfiles under review. The repository has 252 files, about 14,489 lines of source, 15 CI workflow files, Compose configuration, and monorepo workspaces.

Local work uses several tools. The development guide runs PostgreSQL and Mailpit through Docker Compose, the backend through uv, and Vite through Bun. Swagger UI, the frontend, and captured mail each use separate local ports. Compose can run the assembled application, but contributors still need to understand which process owns the database, migrations, API, asset server, and email preview. The setup is well documented; it is not a one-command minimal project.

What happened when we ran it

Our sandbox cloned commit 68adb40 into an unprivileged container with 3 CPUs and 8 GB of RAM. The Bun install succeeded in 49 seconds, adding 723 packages and taking 1,118 MB on disk. The root monorepo had no build script or target, so our harness skipped build rather than recording a pass. That matters because installation alone does not prove either application compiles.

The test command stopped after 11 seconds with exit 1. Playwright reported 1 failed setup test at tests/auth.setup.ts:6:1, named authenticate, and 61 tests did not run. The log references test-results/auth.setup.ts-authenticate-setup-retry2/error-context.md, but its supplied tail does not contain the underlying error. We can say the suite could not establish its authenticated state in our sandbox; we cannot say whether configuration, startup, credentials, or code caused it.

Generated clients keep 2 codebases in sync

The strongest architectural choice is the generated TypeScript client. Backend schemas and routes can feed frontend request types, reducing hand-copied payload definitions. TanStack Query manages server data and TanStack Router handles frontend routes. On the Python side, SQLModel keeps Pydantic-style models close to SQLAlchemy behavior, with Alembic migrations included. This arrangement gives a small team clear places for models, routes, CRUD code, components, queries, and tests.

It does not make the API and UI one codebase. A schema change can still require a migration, regenerated client, frontend adjustment, and updated end-to-end test. The root package offered no single build target in our run, so teams should define an explicit verification command for their fork. A template is safer when CI proves backend formatting and tests, frontend compilation, client generation, and Playwright behavior together.

Authentication is a starting point, not an account platform

The included application has secure password hashing, JWT authentication, email password recovery, and a first superuser. Those basics are useful and testable. Product requirements such as multi-factor authentication, social identity, organizations, billing roles, session revocation, and detailed authorization remain adopter work. Current pull requests discuss password recovery behavior and database-session cleanup, which are exactly the kinds of edges an inherited account system needs reviewed.

Our Playwright run failed at the authentication setup before 61 tests executed. That makes the auth path the first thing to validate after generating a project. Use real development secrets, run database preparation, confirm mail settings or local fallbacks, and exercise login in the same Compose topology CI will use. Do not build product features on top of the sample account flow until that baseline passes consistently.

Deployment offers 2 opinionated routes

FastAPI Cloud is the hosted route described by the project. The self-hosted route uses Docker Compose and Traefik, with DNS, HTTPS, environment variables, a persistent PostgreSQL database, and deployment automation left to the operator. Either route still needs backups, secret rotation, monitoring, mail delivery, migration safety, and rollback. A Compose file is a useful production starting point, but it is not an operations team.

Release 0.12.0 shipped on 2026-08-12, and the repository was pushed on 2026-08-25. GitHub listed only 8 open issues and PRs, with recent proposals focused on Docker dependency drift and local test behavior. The project is current and unusually well documented. Adopt it when nearly every stack decision is already settled. If PostgreSQL, React, Bun, or the deployment shape is still disputed, a smaller FastAPI skeleton leaves fewer assumptions to unwind.

Alternatives

ProjectWhat it isPick it when
Cookiecutter DjangoA configurable Django project generator with production service choices.pick this instead when Django's admin, ORM, and integrated server framework matter more than FastAPI's API style.
FastAPI VueA smaller example stack pairing FastAPI, Vue, and containerized services.pick this instead when Vue is the frontend choice and a tutorial-sized starting point is preferable.
Create T3 AppA generator for a type-safe full-stack TypeScript application.pick this instead when one TypeScript stack and Next.js fit better than a separate Python API.

What people are saying

  1. [github-trending] fastapi/full-stack-fastapi-template

Sources

  1. Full Stack FastAPI Template README
  2. Full Stack FastAPI Template 0.12.0 release
  3. Development guide
  4. Docker Compose deployment guide
  5. Local Playwright test PR #2395
  6. Password recovery PR #2370

More web reviews

dioramas · elpis · deepseek-whale-girl · floorplan-3d · taro · driver.js · the whole board →