Proofly complements traditional resumes with a connected professional identity, linking technical profiles, open-source work, and project accomplishments into a single, shareable profile.
This workspace is cleanly split into frontend and backend applications:
Proofly/
├── backend/ # FastAPI (Python 3.11+) backend service
│ ├── api/index.py # Vercel Serverless Function entrypoint
│ ├── app/ # FastAPI source code (routes, schemas, config)
│ ├── vercel.json # Vercel backend rewrite rules
│ ├── .env.example # Backend environment configuration template
│ └── requirements.txt # Python dependencies
└── frontend/ # Next.js 15 (TypeScript + Tailwind CSS) client app
├── src/ # Next.js App Router source & API client
├── vercel.json # Vercel frontend project configuration
├── .env.example # Frontend environment configuration template
└── package.json # Node dependencies
cd backend
python -m venv .venv
# Activate environment:
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS / Linux
pip install -r requirements.txt
python -m uvicorn app.main:app --reload --port 8000- Backend Health API:
http://localhost:8000/api/v1/health - Swagger Documentation:
http://localhost:8000/docs
cd frontend
npm install
npm run dev- Frontend Web App:
http://localhost:3000
To ensure high performance, isolated logs, and zero runtime conflicts between Node.js and Python, deploy as 2 separate Vercel projects linked to the same Git repository.
+----------------------------+
| Vercel Project 2 |
| (Frontend - Next.js) |
| Root: /frontend |
+--------------+-------------+
|
NEXT_PUBLIC_API_BASE_URL
|
v
+----------------------------+
| Vercel Project 1 |
| (Backend - FastAPI) |
| Root: /backend |
+----------------------------+
- In Vercel Dashboard, click Add New Project and import this repository.
- Under Root Directory, click Edit and select
backend. - Keep Framework Preset as Other.
- Set Environment Variable:
FRONTEND_URL=https://<your-frontend-domain>.vercel.app(Supports multiple comma-separated URLs for preview/production domains).
- Click Deploy. Note your deployed backend URL (e.g.
https://proofly-backend.vercel.app).
- Click Add New Project again and import this repository.
- Under Root Directory, click Edit and select
frontend. - Ensure Framework Preset is Next.js.
- Set Environment Variable:
NEXT_PUBLIC_API_BASE_URL=https://proofly-backend.vercel.app(URL from Step 1).
- Click Deploy. Your app is now live!
- API Requests: The frontend uses
NEXT_PUBLIC_API_BASE_URLconfigured insrc/config/env.tsto direct all client-side and server-side requests to the backend service. - CORS Handling: Backend's
app/config.pyautomatically parsesFRONTEND_URL(supporting comma-separated values for local development, production domains, and preview deployments). - Backend Changes: When a developer adds new FastAPI routes, endpoints, or settings in
backend/app/, Vercel automatically deploys them via serverless functions. Frontend developers simply referenceNEXT_PUBLIC_API_BASE_URLwithout code refactoring.