Welcome to Conformly.ai
Get up and running with Conformly.ai in just a few steps. The platform consists of three projects:| Project | Purpose | Local URL |
|---|---|---|
| conformly-core | FastAPI backend (Docker) | http://localhost:8000 |
| conformly-frontend | Platform app (React/Vite) | http://localhost:8080 |
| conformly-web | Marketing site (React/Vite) | http://localhost:5173 |
Prerequisites
- Docker and Docker Compose (for backend)
- Node.js 18+ and Yarn (for frontends)
- Supabase account with project configured
- Google API key (for AI services)
- Stripe account (for payment integration)
Quick Start
1. Backend Setup (Docker)
--reload enabled so code changes are picked up automatically.
2. Platform Frontend Setup
http://localhost:8080 with Vite HMR.
3. Marketing Site Setup (Optional)
http://localhost:5173.
4. Verify Everything
Environment Configuration
Each project has its own.env file. The key cross-references:
| Variable | Project | Local Dev Value |
|---|---|---|
VITE_API_BASE_URL | conformly-frontend | http://localhost:8000/api/v1 |
VITE_WEB_URL | conformly-frontend | http://localhost:5173 |
VITE_API_BASE_URL | conformly-web | http://localhost:8000/api/v1 |
VITE_APP_URL | conformly-web | http://localhost:8080 |
ALLOWED_ORIGINS | conformly-core | http://localhost:5173,http://localhost:8080 |
STRIPE_SUCCESS_URL | conformly-core | http://localhost:8080/payment-success?session_id={CHECKOUT_SESSION_ID} |
STRIPE_CANCEL_URL | conformly-core | http://localhost:5173/#pricing |
User Signup and Subscription Flow
- New users sign up at
/signupon the platform frontend. - The Supabase
handle_new_user()trigger creates a profile row withsubscription_status = 'inactive'. - On login, the frontend calls
POST /auth/syncwhich activates the free plan automatically (setssubscription_status = 'active',subscription_plan = 'free'). - For paid plans, users go through Stripe Checkout from the marketing site pricing section. After payment, the Stripe webhook updates the profile or creates a
pending_subscriptionthat is claimed on next login. - The
ProtectedRoutecomponent checkssubscription_statusviaGET /auth/meand redirects to/subscribeif the user has no active subscription.
Next Steps
Backend Configuration
Configure environment variables
API Reference
Explore the API endpoints
Docker Deployment
Deploy using Docker Compose
Run Your First Analysis
- Upload a standard and a work product in the app.
- Start a gap analysis (multi-standard supported) from the workflow or via the API:
- Track progress by listing analyses for your workspace and open the latest run.
- Open Reports to triage findings. Use filters for severity, status, and standard.
- Click View in history to open the Gap Analysis Viewer:
- Click findings to highlight matching text in the document
- Export a structured report and “Save as PDF” from the browser print dialog
- Update gap status inline (Open / In progress / Resolved / Accepted) to track remediation.