ArchViz Studio is a deployment-ready interior design concept generator for architecture and construction interviews.
It demonstrates:
- A Next.js frontend with a polished, product-first interface
- A FastAPI backend that builds structured render prompts
- Replicate-based image generation through the HTTP API
- Practical construction metrics such as area and rough cost estimates
- Vercel and Render deployment paths that match real production workflows
frontend/Next.js app for the user experiencebackend/FastAPI service for prompt generation and model callsscripts/dev.shone-command local runner for both services.github/workflows/ci.ymlGitHub Actions build validation
Backend:
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp -n .env.example .env
# set REPLICATE_API_TOKEN in backend/.env
uvicorn main:app --reload --host 0.0.0.0 --port 8000Frontend:
cd frontend
npm install
cp -n .env.example .env.local
echo 'NEXT_PUBLIC_API_URL=http://localhost:8000' > .env.local
npm run devOne-command local runner:
bash scripts/dev.shSmoke test:
bash scripts/smoke.shTo include the sample /generate call as well:
RUN_GENERATE=1 bash scripts/smoke.sh- Root directory:
backend - Build command:
pip install -r requirements.txt - Start command:
uvicorn main:app --host 0.0.0.0 --port 10000 - Environment variables:
REPLICATE_API_TOKENALLOWED_ORIGINSset to your Vercel URL
The backend/render.yaml file mirrors this setup.
- Root directory:
frontend - Build command:
npm run build - Output: default Next.js app route
- Environment variable:
NEXT_PUBLIC_API_URLpointing to your Render backend URL
- Deploy backend to Render and confirm
/healthworks. - Deploy frontend to Vercel with the backend URL set in env vars.
- Open the frontend, submit a room spec, and verify the image and cost panel.
curl http://localhost:8000/healthcd frontend && npm run lint && npm run buildcd backend && . venv/bin/activate && python -m compileall app main.py- The UI is intentionally product-like instead of a generic demo screen.
- The backend keeps prompt logic isolated from the frontend.
- The app includes cost awareness, which gives it construction context.
- Deployment mirrors a realistic split between Vercel and Render.