Turn rough business context into a credible financial planning brief, complete with transparent assumptions, scenario-ready runway math, and saved investor-grade dossiers.
Users need a clearer way to act on financial planning without starting from a blank product spec.
+------------------+ +---------------------+ +--------------------+
| | HTTP | | HTTP | |
| Next.js 15 +------->+ FastAPI Backend +------->+ DO Inference |
| Frontend | REST | Python 3.12 | AI | (oss-120b model) |
| (port 3000) +<-------+ (port 8000) +<------+ |
| | JSON | | JSON | |
+------------------+ +----------+----------+ +--------------------+
|
+--------v--------+
| PostgreSQL |
| (psycopg 3.2) |
+-----------------+
| Method | Path |
|---|---|
GET |
/health |
GET |
/ |
| Layer | Technology | Version |
|---|---|---|
| Runtime | Python | 3.12+ |
| Backend | FastAPI + uvicorn | 0.115.0 |
| Frontend | Next.js + React | 15.5.12 / 19.0.0 |
| Database | PostgreSQL + psycopg | 3.2.3 |
| AI | DO Serverless Inference | anthropic-claude-4.6-sonnet |
| Styling | Tailwind CSS | 3.4.17 |
- Python 3.12+
- Node.js 22.x
# Backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # fill in your keys
uvicorn main:app --reload --port 8000
# Frontend (new terminal)
cd web
npm install
npm run devCopy .env.example to .env and fill in values:
API_BASE_URLENVIRONMENTLOG_LEVEL
This app is designed for DigitalOcean App Platform:
name: build-web-app
services:
- name: api
github:
repo: Two-Weeks-Team/build-web-app
branch: master
build_command: pip install -r requirements.txt
run_command: uvicorn main:app --host 0.0.0.0 --port $PORT
http_port: 8080
instance_size_slug: apps-s-1vcpu-0.5gb
envs:
- key: GRADIENT_MODEL_ACCESS_KEY
scope: RUN_TIME
type: SECRET
- key: DIGITALOCEAN_INFERENCE_KEY
scope: RUN_TIME
type: SECRET
static_sites:
- name: web
github:
repo: Two-Weeks-Team/build-web-app
branch: master
source_dir: web
build_command: if [ -s package-lock.json ]; then npm ci || npm install; else npm install; fi && npm run build
output_dir: web/.nextGenerated by vibeDeploy | Vibe Score: not available