- ⚡ 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.






