Python 3.12 and FastAPI
Pydantic v2 models, SQLAlchemy 2.0 with an async session, served by Uvicorn. Swagger docs at /docs and a health endpoint at /api/v1/health.
A production-style full-stack skeleton for new projects: an async FastAPI backend with Pydantic v2 validation, a strict TypeScript Vue 3 client and PostgreSQL, with specifications and decision records in the repository from the first commit.
A request crosses the gateway and the application layer, which drive the domain and reach the database only through the repository. Business invariants live in the domain, not in the endpoints.
Pydantic v2 models, SQLAlchemy 2.0 with an async session, served by Uvicorn. Swagger docs at /docs and a health endpoint at /api/v1/health.
Composition API, strict TypeScript and Vite, with plain CSS and the NainDev suite bar for navigation.
PostgreSQL 16 for production. A SQLite async driver gives zero-dependency local development.
EARS requirements in docs/10-requirements.md and an ADR for the architecture. CI uses the shared reusable workflows.
Docker Compose starts the whole stack. The backend also runs on its own, with no Docker.
docker compose up --build
# client http://localhost:5173
# API docs http://localhost:8000/docs
# health http://localhost:8000/api/v1/health
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
cd backend
python -m pytest tests -v
cd frontend
npm install
npx tsc --noEmit
npm run build
Free serverless PostgreSQL on Neon or Supabase, the container on Render or Fly.io, and the static client on Cloudflare Pages or GitHub Pages.