- β‘ FastAPI for the Python backend API.
- π§° SQLModel for the Python SQL database interactions (ORM).
- π Pydantic, used by FastAPI, for the data validation and settings management.
- πΎ PostgreSQL as the SQL database.
- π React for the frontend.
- π Using TypeScript, hooks, Vite, and other parts of a modern frontend stack.
- π¨ Chakra UI for the frontend components.
- π€ An automatically generated frontend client.
- π§ͺ Playwright for End-to-End testing.
- π¦ Dark mode support.
- π Docker Compose for development and production.
- π Secure password hashing by default.
- π JWT (JSON Web Token) authentication.
- π Google OAuth authentication.
- π« Email based password recovery.
- β Tests with Pytest.
- π Traefik as a reverse proxy / load balancer.
Update configs in the .env file to customize your configurations.
Before deploying, make sure you change at least the values for:
SECRET_KEYFIRST_SUPERUSER_PASSWORDPOSTGRES_PASSWORDGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET
You can (and should) pass these as environment variables from secrets.
Read the deployment.md docs for more details.
Some environment variables in the .env file have a default value of changethis.
You have to change them with a secret key, to generate secret keys you can run the following command:
python -c "import secrets; print(secrets.token_urlsafe(32))"Copy the content and use that as password / secret key. And run that again to generate another secure key.
Backend docs: backend/README.md.
Frontend docs: frontend/README.md.
Deployment docs: deployment.md.
General development docs: development.md.
This includes using Docker Compose, custom local domains, .env configurations, etc.






