Deployment
All four Neko Singa repos deploy automatically to Vercel on every push to main.
Overview
| Repo | Vercel Project | Live URL |
|---|---|---|
web | nekosinga-web | nekosinga.vercel.app |
app | nekosinga-app | app-nekosinga.vercel.app |
api | nekosinga-api | api-nekosinga.vercel.app |
docs | nekosinga-docs | docs-nekosinga.vercel.app |
Deploy a Repo to Vercel
- Push the repo to GitHub
- Go to vercel.com/new
- Import the GitHub repo
- Set environment variables (see below)
- Deploy
Vercel auto-detects Next.js and sets the build command to next build.
Environment Variables
Set these in the Vercel project settings under Settings → Environment Variables.
api
| Variable | Description |
|---|---|
ELFA_API_KEY | Elfa API key from elfa.ai |
DATABASE_URL | Neon Postgres connection string |
UPSTASH_REDIS_REST_URL | Upstash Redis REST URL |
UPSTASH_REDIS_REST_TOKEN | Upstash Redis REST token |
JWT_SECRET | Secret for signing JWT tokens |
app
| Variable | Description |
|---|---|
NEXT_PUBLIC_API_URL | Full URL of the deployed api, e.g. https://api-nekosinga.vercel.app |
Vercel Serverless Constraints
Vercel functions are stateless and ephemeral — they spin up per request and shut down after. This means:
- No persistent in-memory state between requests
- BullMQ / RabbitMQ are incompatible (require a persistent listener process)
- Upstash QStash is used instead — HTTP-based, no persistent connection needed
See Decisions → Scope Notes for full rationale.