Overview
Conformly.ai has two frontend projects:
Project Purpose Local Port Production URL conformly-frontend Platform app (dashboard, workflows, analysis) 8080https://beta.conformly.aiconformly-web Marketing site (landing, pricing, signup CTAs) 5173https://www.conformly.ai
Both are React + TypeScript apps built with Vite.
Environment Variables
Variable Description Local Dev Production VITE_API_BASE_URLBackend API base URL http://localhost:8000/api/v1https://beta-api.conformly.ai/api/v1VITE_SUPABASE_URLSupabase project URL https://xxx.supabase.coSame VITE_SUPABASE_ANON_KEYSupabase anon key eyJ...Same VITE_WEB_URLMarketing site URL (for pricing links) http://localhost:5173https://www.conformly.ai
Variable Description Local Dev Production VITE_API_BASE_URLBackend API base URL http://localhost:8000/api/v1https://beta-api.conformly.ai/api/v1VITE_APP_URLPlatform app URL (for login/signup links) http://localhost:8080https://beta.conformly.aiVITE_SUPABASE_URLSupabase project URL https://xxx.supabase.coSame VITE_SUPABASE_ANON_KEYSupabase anon key eyJ...Same
The marketing site navigation and hero section use VITE_APP_URL to link users to the platform for login and signup. If this is not set, links will be broken.
Deployment Options
Vercel (Recommended)
Push code to GitHub
Import the repository in Vercel
Configure:
Framework : Vite
Build Command : yarn build
Output Directory : dist
Add the environment variables above in Vercel’s dashboard
Deploy
Deploy conformly-frontend and conformly-web as separate Vercel projects with their own environment variables.
Netlify
Create new site from Git
Build settings:
Build command : yarn build
Publish directory : dist
Add environment variables in Netlify dashboard
Deploy
Docker
FROM node:18-alpine AS build
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY . .
RUN yarn build
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
CMD [ "nginx" , "-g" , "daemon off;" ]
Build and run:
docker build -t conformly-frontend .
docker run -p 8080:80 conformly-frontend
SPA Routing
Both apps use client-side routing. Configure your hosting to redirect all routes to index.html:
Vercel — add vercel.json:
{
"rewrites" : [{ "source" : "/(.*)" , "destination" : "/index.html" }]
}
Nginx — add to server block:
location / {
try_files $ uri $ uri / /index.html;
}
Build Configuration
Both projects use Vite with the same general setup in vite.config.ts:
export default defineConfig ({
plugins: [ react ()] ,
build: {
outDir: "dist" ,
sourcemap: true
} ,
server: {
port: 8080 // 5173 for conformly-web
}
})
Cross-Project URL References
The two frontends reference each other:
conformly-web links to ${VITE_APP_URL}/login and ${VITE_APP_URL}/signup via the navigation bar and hero CTA buttons.
conformly-frontend links to ${VITE_WEB_URL}/#pricing from the subscription page when users need to upgrade.
Make sure these environment variables are set correctly in each deployment environment.
Backend Docker Deployment Deploy the backend with Docker Compose