Skip to content

feat: add python react starter - #1

Closed
anish-sahoo wants to merge 2 commits into
mainfrom
feat/starter
Closed

anish-sahoo wants to merge 2 commits into
mainfrom
feat/starter

Conversation

@anish-sahoo

@anish-sahoo anish-sahoo commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Starter template for teams: React + Vite frontend, FastAPI backend, Postgres, all run through Docker Compose and mise.

  • mise.toml pins Node, pnpm, Python, uv and ruff, and holds every task (dev, check, db:*, client:generate, deploy:check)
  • Backend: async FastAPI and SQLAlchemy with psycopg 3, Alembic, pydantic settings, mypy --strict. Routes live under /api/v1, with /health (no DB, never blocked) and /notes
  • Code is split into routes/, models/, schemas/ and core/, so new resources follow the notes example
  • Logging adds a request id to every line: text locally, JSON when deployed, uvicorn logs included. A shared httpx.AsyncClient is available as HttpClientDep
  • One notes table. The first migration seeds example rows, and db:revision autogenerates migrations from models (it skips empty ones)
  • backend/openapi.json is the contract. The frontend client is generated from it with hey-api and committed
  • compose.yaml is the deployed stack, with nginx serving the build and proxying /api. compose.override.yaml adds local hot reload
  • CI runs 4 jobs via jdx/mise-action: lint+typecheck and format for each side. The lint jobs also fail if the contract or generated client is stale
  • AGENTS.md (CLAUDE.md symlinks to it) and .agents/rules/ hold short code-cleanliness rules

anish-sahoo and others added 2 commits October 19, 2026 18:41
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant