- Extract buildApp() from server.ts into app.ts for reuse
- Create api/index.ts as Vercel serverless function entry point
- Add vercel.json with rewrites (static assets + catch-all to API)
- Build script now copies static assets to public/ and templates to dist/
- Include src/templates/** in serverless function bundle
- Local dev and tests continue to work unchanged (60/60 passing)
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3