Project Structure
Conformly.ai is a monorepo-style workspace with three projects:Development Setup
Backend (Docker — recommended)
The backend runs in Docker with hot-reload enabled:- backend — FastAPI on port 8000 (with
--reload) - redis — Message broker on port 6379
- celery-worker — Background task processing
- celery-beat — Scheduled tasks
.env changes:
Backend (Local Python — alternative)
Platform Frontend
Marketing Site
CORS Configuration
The backend must allow requests from both frontend dev servers. Inconformly-core/.env:
Running Tests
Backend
Frontend
Code Formatting
Backend
Frontend
Hot Reload
All three projects support hot reload:- Backend (Docker): The
docker-compose.ymlpasses--reloadto uvicorn. Source files are volume-mounted, so changes take effect immediately. - Backend (local):
run.pystarts uvicorn withreload=Truein development mode. - Frontend: Vite HMR (Hot Module Replacement) — instant updates in the browser.
- Marketing site: Vite HMR — same behavior.
Environment Variable Cross-References
The three projects reference each other via environment variables. See the Quickstart for the full mapping table.Debugging
Backend
- Interactive API docs:
http://localhost:8000/docs - Container logs:
docker compose logs -f backend - Celery task monitor (Flower):
docker compose --profile monitoring up -d, thenhttp://localhost:5555
Frontend
- Browser DevTools + React DevTools extension
- Network tab to inspect API calls and auth headers
- Console for auth events logged by
ProtectedRoute
Contributing Guide
Learn about contributing to Conformly.ai