Skip to main content

Overview

Conformly.ai has two frontend projects:
ProjectPurposeLocal PortProduction URL
conformly-frontendPlatform app (dashboard, workflows, analysis)8080https://beta.conformly.ai
conformly-webMarketing site (landing, pricing, signup CTAs)5173https://www.conformly.ai
Both are React + TypeScript apps built with Vite.

Environment Variables

conformly-frontend

VariableDescriptionLocal DevProduction
VITE_API_BASE_URLBackend API base URLhttp://localhost:8000/api/v1https://beta-api.conformly.ai/api/v1
VITE_SUPABASE_URLSupabase project URLhttps://xxx.supabase.coSame
VITE_SUPABASE_ANON_KEYSupabase anon keyeyJ...Same
VITE_WEB_URLMarketing site URL (for pricing links)http://localhost:5173https://www.conformly.ai

conformly-web

VariableDescriptionLocal DevProduction
VITE_API_BASE_URLBackend API base URLhttp://localhost:8000/api/v1https://beta-api.conformly.ai/api/v1
VITE_APP_URLPlatform app URL (for login/signup links)http://localhost:8080https://beta.conformly.ai
VITE_SUPABASE_URLSupabase project URLhttps://xxx.supabase.coSame
VITE_SUPABASE_ANON_KEYSupabase anon keyeyJ...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

  1. Push code to GitHub
  2. Import the repository in Vercel
  3. Configure:
    • Framework: Vite
    • Build Command: yarn build
    • Output Directory: dist
  4. Add the environment variables above in Vercel’s dashboard
  5. Deploy
Deploy conformly-frontend and conformly-web as separate Vercel projects with their own environment variables.

Netlify

  1. Create new site from Git
  2. Build settings:
    • Build command: yarn build
    • Publish directory: dist
  3. Add environment variables in Netlify dashboard
  4. 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