New Open source and built for coding agents

The full‑stack template
your AI agent
can't break

FastAPI, React 19 and Postgres with auth, CRUD and 200+ end‑to‑end tests. Mocks and untested routes fail the build, so your agent can't fake a green check.

Quickstart uvx --from git+https://github.com/agusmdev/fullstack-ai-template ai-fsr init my-app
  • 161backend e2e tests
  • 42Playwright tests
  • 0mocks allowed
  • 1command to run

A modern stack, every version pinned

  • FastAPI
  • SQLAlchemy 2
  • Postgres 18
  • Pydantic 2
  • uv
  • React 19
  • TanStack Start
  • Tailwind 4
  • shadcn/ui
  • Bun
  • Docker
  • Sentry

Features

Everything a real app needs, on day one

Not a hello-world. A working product with auth, a full CRUD feature and the tests that prove it all works.

Auth that's already done right

Session auth with database-backed tokens, ready for real users.

  • Register, login, logout and logout from all devices
  • Google OAuth, password reset and email verification
  • Argon2 password hashing, 64-byte session tokens
  • Expired sessions sign out cleanly; a wrong password doesn't
  • Protected routes: drop a file in _authed/
The sign-in form of the generated app.

What's included

Production defaults, not boilerplate

Guards that catch shortcuts

The build fails on a mock, on a route no test calls, on a page no spec opens, and on a model change without a migration. Your agent can't skip the hard part.

  • A mock import
  • A route no test calls
  • A page no spec opens
  • A model without a migration
E2E route coverage: every app route needs at least one successful request.
  GET /items/export/summary: never requested

Clean architecture

Router, service and repository layers. A new repository is three lines.

Filters and pagination

Search, ilike, in, gte, sort and page-size limits on every list.

Wide-event logging

One structured event per request, with a request ID and secrets redacted.

Supply-chain rules

Exact pins only. Packages at least 7 days old with no open critical or high CVE.

For coding agents

Your agent reads the rules, then the tests check them

Agents are fast and confident, and they love a mock that makes a test pass. This template gives them clear instructions and takes the shortcuts away.

  • Nested AGENTS.md files for the repo, backend and frontend
  • A project-standards skill with step-by-step recipes for new entities and pages
  • An 8-point Definition of Done the agent must meet
  • One command, make ci, that checks everything
Works with Claude Code Cursor Codex any agent that reads AGENTS.md
## Definition of Done

A change is done only when all items are true:

1. The code follows the project-standards skill.
2. Every new or changed backend endpoint has an
   e2e test with at least one successful request.
3. Every new page and API endpoint is used by
   a spec in frontend/e2e/.
4. A model change has an Alembic migration.
5. make check passes.
6. make test passes.
7. New packages follow the supply-chain rule.
8. Docs say so when a command or rule changes.

Developer experience

Code you'd write yourself, on a good day

Real files from the template. Typed end to end, and short.

class Item(TimestampMixin, Base):
    __tablename__ = "item"
    __table_args__ = (Index("item_sku_idx", "sku"),)

    id: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=uuid.uuid4)
    user_id: Mapped[uuid.UUID] = mapped_column(
        ForeignKey("user.id", ondelete="CASCADE"), index=True
    )
    name: Mapped[str] = mapped_column(String(255))
    description: Mapped[str | None] = mapped_column(Text, default=None)
    quantity: Mapped[int] = mapped_column(default=0)

Why this template

Skip the weeks of setup

FeatureFrom scratchburntop / ai-fsr
Session auth, OAuth, reset, verificationYou build itIncluded and tested
CRUD with filters and paginationYou build itReference feature
End-to-end tests on a real databaseUsually mocks203 tests, zero mocks
Untested routes fail the buildNoYes
Missing migrations fail the buildNoYes
Instructions for coding agentsNoAGENTS.md and a skill
Docker, CI and pre-commitYou wire itReady

Quickstart

From zero to running in three steps

You need Docker and uv. That's it.

  1. 1

    Name your app

    Type a name. We apply the generator's own rules.

    Folder my-app/ · Postgres my-app

  2. 2

    Generate it

    One command creates the project.

    uvx --from git+https://github.com/agusmdev/fullstack-ai-template ai-fsr init my-app
  3. 3

    Start everything

    App on :3000, API on :9095.

    cd my-app && cp .env.example .env && docker compose up -d --build

Showcase

Built with burntop

Real apps built on this template by coding agents. Each one goes up when its test suites pass.

Live recordings

Linear clone

Issues, board, projects, cycles, documents, inbox and a command menu, built end to end by agents on this template.

View the code on GitHub

Your app here

Built something with the template? Open an issue and tell us.

Open an issue

FAQ

Questions, answered

Something missing? Open an issue on GitHub.

Is there AI inside the app?

No. The app has no LLM SDK. The "AI" part is for the agent that writes your code: AGENTS.md files, a standards skill with recipes, and guards that catch shortcuts. You can add any AI provider you want.

Which coding agents does it work with?

Any agent that reads AGENTS.md. The standards are plain Markdown, and Claude Code also loads them as a skill from .claude/skills.

Why only end-to-end tests?

A mock agrees with whatever the code does, including its bugs. A test against real Postgres and a real server can't be talked into passing, by a person or by an agent.

Does it send emails?

Not yet. Password reset and verification tokens are created and checked; you connect the email provider you use.

What do I need installed?

Docker and uv. Bun is only needed if you run the frontend outside its container.

How do I deploy it?

Both apps ship multi-stage Dockerfiles. The backend runs as a non-root user and applies migrations on boot, so any container host works.

Start your next app in one command

Free and open source. Your agent will thank you, and your tests will keep it honest.

uvx --from git+https://github.com/agusmdev/fullstack-ai-template ai-fsr init my-app