Deployment
Production URLs
| Service | URL |
|---|---|
| Frontend | setula.vercel.app |
| Backend | ideal-alignment-production-912d.up.railway.app |
| ArcScan proof | 0xd033…b2afec |
Hosting platforms
| Layer | Platform |
|---|---|
| Frontend | Vercel |
| Backend | Railway |
Build and start commands
| Platform | Build command | Start command |
|---|---|---|
| Railway (backend) | npm install && npm run build:web | npm run start:prod |
| Vercel (frontend) | npm run build:landing | Next.js default |
Environment variables
Values are intentionally omitted.
Backend (Railway)
env
CIRCLE_API_KEY= CIRCLE_ENTITY_SECRET= CIRCLE_WALLET_A_ID= CIRCLE_WALLET_A_ADDRESS= CIRCLE_WALLET_B_ID= CIRCLE_WALLET_B_ADDRESS= CIRCLE_BLOCKCHAIN=ARC-TESTNET CIRCLE_USDC_TOKEN_ID= PAYOUT_CALLBACK_SECRET= HOST=0.0.0.0 DATA_FILE=.setula-data.json POLL_INTERVAL_MS=2000 POLL_TIMEOUT_MS=180000 CORS_ORIGIN=...
Frontend (Vercel)
env
DEMO_BACKEND_ORIGIN=https://ideal-alignment-production-912d.up.railway.app
All Circle credentials and the payout callback secret are server-side only. The Vercel frontend receives only DEMO_BACKEND_ORIGIN.
CORS configuration
The backend sets CORS headers for origins listed in CORS_ORIGIN (comma-separated):
http://localhost:3001— landing page devhttp://localhost:4000— backend devhttps://setula.vercel.app— production
The Next.js proxy makes CORS unnecessary in the normal browser flow — all requests are same-origin.
Validation evidence
The deployed environment was validated with a full golden-path run:
| Check | Result |
|---|---|
| Five consecutive deployed runs | All passed: DRAFT → DELIVERED |
| Circle transaction status | COMPLETE |
| ArcScan HTTP status | 200 |
| Duplicate settlement protection | Passed (recipient delta 0) |
| Insufficient-balance failure | Passed (SETTLEMENT_FAILED, no ArcScan link) |
| Invalid payout callback | Rejected |
| Desktop QA (1440 px) | No overflow, values readable |
| Mobile QA (390 px) | No overflow, navigation adapted |
| Secret scan | Passed — no credentials in tracked files or client assets |
| Field | Value |
|---|---|
| Payment reference | INV-SETULA-775E5BEC |
| Amount settled | 0.01 USDC |
| Transaction hash | 0xd033f753ccae0b55585a94a754657a6154f2a6690748b55adbdbb469e2b2afec |
| Receipt ID | 1aabd12a-26c0-4f7e-98c6-080b2c07a952 |
| References match | Yes |
Verdict: STABLE_DEPLOYMENT_READY. See the full validation record.