Cloud Cost Analysis
Drop — Cloud Deployment Cost Analysis
Date: 2026-02-11 Author: John (AI Director) Status: Research complete, pending decision
Current Tech Stack
| Layer | Tech | Production Note |
|---|---|---|
| App | Next.js 16 (App Router) | Monolith, ~7 pages + API |
| Frontend | React 19 + Tailwind v4 | SSR/SSG |
| DB | SQLite (better-sqlite3) | Must migrate to PostgreSQL for production |
| Auth | JWT (jose) httpOnly cookie | OK for production |
| Dependencies | bcryptjs, radix-ui, lucide, sonner | Lightweight |
| Dev server | Port 3001 (configured in project.json) | Currently running locally |
Key constraint: SQLite cannot handle concurrent writes (ADR-001). Must switch to PostgreSQL before launch.
Phase 1: MVP / Demo (now → 200 users)
| Provider | Plan | Price/mo | Notes |
|---|---|---|---|
| Vercel Pro | Next.js native | $20 (~215 NOK) | No persistent FS — SQLite won't work without Turso/Neon |
| Railway Starter | Next.js + persistent disk | $5 + usage (~160 NOK) | SQLite works here |
| Fly.io Hobby | LiteFS support | $5 + usage (~160 NOK) | Great for SQLite |
| Hetzner VPS (shared) | On same CPX41 | +~0 NOK | If already provisioned from system migration |
Recommended Phase 1 Stack
| Item | Provider | Cost/mo |
|---|---|---|
| App hosting | Hetzner VPS (shared) or Railway | 0-160 NOK |
| DB | SQLite (local) | 0 |
| Domain | getdrop.no (one.com) | ~100 NOK/yr |
| SSL | Let's Encrypt / Cloudflare | 0 |
| Total Phase 1 | ~10-170 NOK/mo |
Phase 2: Launch (200-3,000 users)
SQLite → PostgreSQL migration required. Need transactional email and SMS for auth.
| Item | Provider | Cost/mo |
|---|---|---|
| App hosting | Railway or Fly.io | $10-20 (~110-215 NOK) |
| PostgreSQL managed | Neon free→Pro $19 or Supabase free→$25 | 0-270 NOK |
| Transactional email | Resend (3,000 free/mo) → $20 | 0-215 NOK |
| SMS (OTP auth) | Twilio ~$0.05/SMS × 500/mo | ~270 NOK |
| CDN | Cloudflare Free | 0 |
| Monitoring | Sentry free tier | 0 |
| BaaS (Wise API) | Per-transaction fee | Covered by tx fees |
| Total Phase 2 | ~400-1,000 NOK/mo |
Phase 3: Scale (3,000-15,000 users)
Fintech = reliability, backups, WAF, logging required.
| Item | Provider | Cost/mo |
|---|---|---|
| App hosting (2 instances) | Railway Pro or Fly.io | $30-50 (~325-540 NOK) |
| PostgreSQL managed (HA) | Neon Pro $69 or Supabase Pro $25+usage | 270-750 NOK |
| Redis (caching/sessions) | Upstash free→$10 | 0-110 NOK |
| Transactional email | Resend Pro $20 | 215 NOK |
| SMS (OTP) | Twilio × 3,000/mo | ~1,600 NOK |
| CDN + WAF | Cloudflare Pro $20 | 215 NOK |
| Monitoring | Sentry Team $26 | 280 NOK |
| Logging | Betterstack free→$25 | 0-270 NOK |
| Backup storage | Backblaze B2 | 55 NOK |
| BaaS APIs (Wise/Thunes/Swan) | Per-tx, variable | Covered by tx fees |
| Total Phase 3 | ~3,000-4,000 NOK/mo |
Summary
| Phase | Users | Infra cost/mo | MRR (from business case) | Margin |
|---|---|---|---|---|
| MVP | 0-200 | 10-170 NOK | 0-12,000 NOK | — (pre-revenue) |
| Launch | 200-3,000 | 400-1,000 NOK | 12,000-130,000 NOK | 90%+ |
| Scale | 3,000-15,000 | 3,000-4,000 NOK | 130,000-650,000 NOK | 97%+ |
Infrastructure cost is negligible vs revenue. Fintech margins on infra are excellent — biggest costs are marketing (30-50K/mo) and compliance, not hosting.
Shared Hetzner VPS Option
Drop can run on the same Hetzner CPX41 (from system migration analysis) for +0 NOK incrementally:
- Next.js production build → Docker container
- PostgreSQL → share existing Docker Postgres or add new container
- Cloudflare tunnel: add new hostname for Drop
Only at 3,000+ users should Drop move to dedicated infrastructure.
Related
- System cloud migration analysis: ~/ALAI/finance/cloud-migration-analysis.md (MC #524)
- Drop business case: ~/ALAI/products/Drop/project/docs/zica-business-case-v2.md
- Drop architecture: ~/ALAI/products/Drop/project/architecture/architecture-document.md