Technology Selection
This template streamlines building APIs with FastAPI and dynamic frontends with Next.js. It integrates the backend and frontend using @hey-api/openapi-ts to generate a type-safe client, along with automated processes to keep the OpenAPI schema and client updated, ensuring a smooth and synchronized development workflow.
- Next.js: Fast and SEO-friendly frontend framework.
- FastAPI: High-performance Python backend.
- SQLAlchemy: Powerful SQL toolkit and ORM for Python.
- PostgreSQL: Advanced open-source relational database.
- Pydantic: Data validation and settings management using Python type annotations.
- Zod + TypeScript: End-to-end type safety and schema validation.
- fastapi-users: Complete authentication system with:
- Secure password hashing by default.
- JWT (JSON Web Token) authentication.
- Email-based password recovery.
- Shadcn/ui: Beautiful and customizable React components.
- @hey-api/openapi-ts: Fully typed client generation from the OpenAPI schema.
- fastapi-mail: Efficient email handling for FastAPI applications.
- uv: An extremely fast Python package and project manager.
- Pytest: Powerful testing framework for Python.
- Code quality tools:
- Ruff: Fast Python linter.
- ESLint: JavaScript/TypeScript code quality.
- Hot reload watchers:
- Backend: Watchdog for file change monitoring.
- Frontend: Chokidar for live updates.
- Docker and Docker Compose: Consistent environments for development and production.
- MailHog: Email server for development.
- Pre-commit Hooks: Enforce code quality with automated checks.
- OpenAPI JSON Schema: Centralized API documentation and client generation.
With this setup, you'll save time and maintain a seamless connection between your backend and frontend, increasing productivity and reliability.