Appearance
Infrastructure Cost Projections
Projected monthly costs to run the DoCurious platform at different scales, broken down by service category. All prices are monthly estimates in USD based on current (2026) pricing from major providers.
How to Read This Document
Costs are broken into three tiers based on the number of active users:
| Tier | Active Users | Typical Stage |
|---|---|---|
| Launch | 0 -- 1,000 | Beta, pilot schools, early adopters |
| Growth | 1,000 -- 10,000 | Multiple schools, expanding user base |
| Scale | 10,000 -- 100,000 | Regional/national adoption |
"Active users" means people logging in and using the app regularly — not just registered accounts.
What We Need to Run (and Why)
Running a modern web app is not just "a server." It is a collection of services, each handling a different job. Here is what each one does in plain English:
| Service | What It Does | Real-World Analogy |
|---|---|---|
| Frontend Hosting | Serves the app to users' browsers | The storefront window |
| Backend Server | Processes requests, handles logic | The kitchen in a restaurant |
| Database | Stores all user data, challenges, schools | The filing cabinet |
| File Storage | Stores photos, videos, documents users upload | The photo album |
| Email Service | Sends password resets, notifications, welcome emails | The mailroom |
| Payment Processing | Handles purchases and vendor payouts | The cash register |
| CDN | Makes the app load fast everywhere in the world | Local copies of the menu at every table |
| Error Tracking | Alerts us when something breaks | The smoke detector |
| Analytics | Tells us how people use the app | The security cameras (but friendly) |
| Search | Powers challenge and content search | The card catalog at a library |
| Monitoring | Checks if the app is up and healthy | The night watchman |
| CI/CD | Automatically tests and deploys new code | The assembly line |
| Caching | Remembers common data so it loads faster | The waiter who remembers your usual order |
| Feature Flags | Controls which features are on or off | The light switches |
| Security | Protects against spam, bots, and attacks | The bouncer |
Cost Breakdown by Service
1. Frontend Hosting
Serves the React app (HTML, CSS, JavaScript) to users' browsers.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Cloudflare Pages | $0 | $0 | $0 | Generous free tier, great performance |
| Vercel | $0 | $20 | $20+ | Free tier works for small teams, Pro for more |
| Netlify | $0 | $19 | $19+ | Similar to Vercel |
Recommendation: Cloudflare Pages — free, fast, no bandwidth limits.
Estimated cost: $0 -- $20/mo
2. Backend Server (API)
The Express/Node.js server that handles all business logic — user accounts, challenge data, school management, payments.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Railway | $5 | $20 | $50--100 | Simple, pay for what you use |
| Render | $7 | $25 | $85+ | Easy deploys, auto-scaling |
| Fly.io | $5 | $25 | $50--100 | Great global performance |
| DigitalOcean App Platform | $12 | $24 | $48--96 | Predictable pricing |
| AWS (ECS/Fargate) | $30 | $60 | $100--300 | Most flexible, most complex |
Recommendation: Railway or Render for Launch/Growth. AWS when you need enterprise control at Scale.
Estimated cost: $5 -- $100/mo
3. Database (PostgreSQL)
Stores everything — users, challenges, schools, orders, track records. The project already has a PostgreSQL database with 50+ tables.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Neon | $0 | $19 | $69+ | Serverless Postgres, scales to zero |
| Supabase | $0 | $25 | $75+ | Postgres + extras (auth, storage, realtime) |
| Railway | $5 | $15 | $40--80 | Simple managed Postgres |
| DigitalOcean | $15 | $30 | $80+ | Reliable managed database |
| AWS RDS | $15 | $50 | $100--400 | Enterprise-grade, automatic backups |
Recommendation: Neon or Supabase for Launch (generous free tiers). Move to RDS at Scale if needed.
Estimated cost: $0 -- $75/mo
4. File Storage and Media (Images, Videos, Documents)
Users will upload challenge photos, verification evidence, profile pictures, and potentially videos. Cloudinary is already configured.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Cloudinary | $0 | $89 | $224+ | Image/video transforms, optimization, CDN included |
| AWS S3 + CloudFront | $1 | $10 | $50--200 | Cheapest raw storage, more setup |
| Cloudflare R2 | $0 | $5 | $15--50 | S3-compatible, no egress fees |
Recommendation: Cloudinary for convenience (already configured). Add Cloudflare R2 for bulk storage at Scale.
Estimated cost: $0 -- $224/mo
5. Email Service
Password resets, welcome emails, notification digests, parent consent emails, teacher invitations, marketing campaigns.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Resend | $0 | $20 | $100 | Modern, developer-friendly, React email templates |
| SendGrid | $0 | $20 | $50--90 | Industry standard, good deliverability |
| Postmark | $15 | $25 | $80+ | Best deliverability, especially transactional |
| AWS SES | $0 | $1 | $10 | Cheapest by far, more setup required |
Recommendation: Resend for Launch/Growth (great developer experience). SES at Scale for cost savings.
Estimated cost: $0 -- $100/mo
6. Payment Processing (Stripe)
Challenge purchases, vendor payouts, gift challenges, subscriptions (if applicable). Stripe is already configured.
| Fee Type | Rate | Example |
|---|---|---|
| Per transaction | 2.9% + $0.30 | $10 purchase = $0.59 fee |
| Stripe Connect (vendor payouts) | +0.25% + $0.25 per payout | Per vendor payout |
| Monthly platform fee | $0 | No base fee |
This is a variable cost. Example projections:
| Scenario | Monthly Transactions | Revenue | Stripe Fees |
|---|---|---|---|
| Launch | 100 | $1,000 | ~$59 |
| Growth | 1,000 | $10,000 | ~$590 |
| Scale | 10,000 | $100,000 | ~$5,900 |
Note: Stripe fees come out of revenue, not out-of-pocket.
Estimated cost: Variable (percentage of revenue)
7. CDN (Content Delivery Network)
Makes the app load fast for users everywhere — caches static content at servers around the world.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Cloudflare | $0 | $0 | $0--$20 | Free tier covers most needs |
| Vercel | included | included | included | If using Vercel for hosting |
| AWS CloudFront | $0 | $5 | $20--50 | Pay per GB transferred |
Recommendation: Cloudflare — free, excellent performance, DDoS protection included.
Estimated cost: $0/mo
8. Error Tracking
Catches application errors in real-time, shows exactly what went wrong, which user was affected, and how to reproduce it.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Sentry | $0 | $26 | $80+ | Industry standard, great React integration |
| LogRocket | $0 | $99 | $250+ | Error tracking + session replay combined |
| Highlight.io | $0 | $0 | $150+ | Open source, generous free tier |
Recommendation: Sentry — free to start, best error context, widely supported.
Estimated cost: $0 -- $80/mo
9. Analytics
Tracks how people use the app — which features get used, where users drop off, what drives engagement.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| PostHog | $0 | $0 | $450+ | Analytics + feature flags + session replay in one |
| Mixpanel | $0 | $28 | $190+ | Best for event-based analytics |
| Plausible | $9 | $19 | $69+ | Privacy-focused, simple pageview analytics |
| Google Analytics | $0 | $0 | $0 | Free, widely used, privacy concerns |
Recommendation: PostHog — combines analytics, feature flags, and session replay. Generous free tier (1M events/mo). If you build your own feature flags, Mixpanel is a strong alternative for pure analytics.
Estimated cost: $0 -- $450/mo
10. Search
Powers challenge discovery, content search, user lookup. Important as the content library grows.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| PostgreSQL full-text search | $0 | $0 | $0 | Already included in the database — works well up to ~50K records |
| Meilisearch Cloud | $0 | $30 | $60+ | Fast, typo-tolerant, easy to set up |
| Typesense Cloud | $0 | $30 | $60+ | Similar to Meilisearch |
| Algolia | $0 | $50 | $250+ | Most powerful, most expensive |
Recommendation: Start with PostgreSQL full-text search (free, already there). Add Meilisearch when search quality becomes a priority.
Estimated cost: $0 -- $60/mo
11. Monitoring and Uptime
Checks if the app is running, alerts the team if something goes down, tracks response times.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| UptimeRobot | $0 | $0 | $7 | Simple uptime checks, free for 50 monitors |
| Better Uptime | $0 | $20 | $52+ | Status pages, on-call scheduling |
| Datadog | $0 | $15 | $150+ | Full observability platform (overkill early on) |
Recommendation: UptimeRobot free tier for Launch. Better Uptime when you need a public status page.
Estimated cost: $0 -- $52/mo
12. CI/CD (Continuous Integration / Deployment)
Automatically tests code when developers push changes, then deploys it if everything passes.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| GitHub Actions | $0 | $0 | $0--$4 | 2,000 free minutes/mo on private repos |
| Vercel | included | included | included | Auto-deploys on push |
| Railway | included | included | included | Auto-deploys on push |
Recommendation: GitHub Actions (already using GitHub) — free for most teams.
Estimated cost: $0/mo
13. Caching (Redis)
Speeds up the app by remembering frequently accessed data — user sessions, popular challenges, leaderboards.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Upstash | $0 | $10 | $40+ | Serverless Redis, pay per request |
| Redis Cloud | $0 | $5 | $30+ | Traditional managed Redis |
| Railway | $5 | $10 | $20+ | Simple add-on to existing setup |
Recommendation: Upstash — generous free tier, serverless, scales automatically.
Estimated cost: $0 -- $40/mo
14. Feature Flags
Controls which features are visible to which users — essential for safe deployments and A/B testing.
| Provider | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Custom (building now) | $0 | $0 | $0 | Full control, no vendor fees |
| PostHog | $0 | $0 | included | If using PostHog for analytics |
| LaunchDarkly | $10/seat | $10/seat | $10/seat | Most powerful, expensive for teams |
| Unleash | $0 | $0 | $0 | Self-hosted, open source |
Recommendation: Custom build (already in progress) — no ongoing cost, full control.
Estimated cost: $0/mo
15. Security Services
Spam prevention, bot protection, DDoS defense.
| Service | Launch | Growth | Scale | Notes |
|---|---|---|---|---|
| Google reCAPTCHA | $0 | $0 | $0 | Free up to 1M assessments/mo (already configured) |
| Cloudflare (WAF/DDoS) | $0 | $0 | $20+ | Free tier includes basic protection |
| Google OAuth | $0 | $0 | $0 | Free authentication service |
Estimated cost: $0 -- $20/mo
16. Google Maps
Location features for challenges — showing where challenges can be completed, mapping nearby activities.
| Usage | Free Tier | After Free Tier |
|---|---|---|
| Maps JavaScript API | $200/mo credit (~28K loads) | $7 per 1,000 loads |
| Geocoding | included in credit | $5 per 1,000 requests |
| Places | included in credit | $17--32 per 1,000 requests |
Recommendation: The $200/mo free credit from Google covers most Launch/Growth usage.
Estimated cost: $0 -- $50/mo
17. SMS (Text Messages)
COPPA parental consent verification, two-factor authentication, urgent notifications.
| Provider | Per SMS | Launch (500/mo) | Growth (5K/mo) | Scale (50K/mo) |
|---|---|---|---|---|
| Twilio | $0.0079 | $4 | $40 | $395 |
| AWS SNS | $0.0075 | $4 | $38 | $375 |
Recommendation: Twilio — better developer experience, reliability matters for consent.
Estimated cost: $4 -- $400/mo
Total Monthly Cost Summary
Launch Tier (0 -- 1,000 users)
| Category | Low Estimate | High Estimate |
|---|---|---|
| Frontend Hosting | $0 | $0 |
| Backend Server | $5 | $12 |
| Database | $0 | $15 |
| File Storage | $0 | $0 |
| $0 | $15 | |
| CDN | $0 | $0 |
| Error Tracking | $0 | $0 |
| Analytics | $0 | $9 |
| Search | $0 | $0 |
| Monitoring | $0 | $0 |
| CI/CD | $0 | $0 |
| Caching | $0 | $0 |
| Feature Flags | $0 | $0 |
| Security | $0 | $0 |
| Google Maps | $0 | $0 |
| SMS | $0 | $4 |
| TOTAL | $5 | $55 |
Plus Stripe fees on any revenue (2.9% + $0.30 per transaction)
Growth Tier (1,000 -- 10,000 users)
| Category | Low Estimate | High Estimate |
|---|---|---|
| Frontend Hosting | $0 | $20 |
| Backend Server | $20 | $50 |
| Database | $19 | $50 |
| File Storage | $5 | $89 |
| $20 | $25 | |
| CDN | $0 | $0 |
| Error Tracking | $26 | $26 |
| Analytics | $0 | $28 |
| Search | $0 | $30 |
| Monitoring | $0 | $20 |
| CI/CD | $0 | $0 |
| Caching | $0 | $10 |
| Feature Flags | $0 | $0 |
| Security | $0 | $0 |
| Google Maps | $0 | $0 |
| SMS | $10 | $40 |
| TOTAL | $100 | $388 |
Plus Stripe fees on revenue
Scale Tier (10,000 -- 100,000 users)
| Category | Low Estimate | High Estimate |
|---|---|---|
| Frontend Hosting | $0 | $20 |
| Backend Server | $50 | $300 |
| Database | $69 | $400 |
| File Storage | $15 | $300 |
| $10 | $100 | |
| CDN | $0 | $20 |
| Error Tracking | $80 | $250 |
| Analytics | $0 | $450 |
| Search | $0 | $60 |
| Monitoring | $7 | $52 |
| CI/CD | $0 | $4 |
| Caching | $10 | $40 |
| Feature Flags | $0 | $0 |
| Security | $0 | $20 |
| Google Maps | $0 | $50 |
| SMS | $40 | $400 |
| TOTAL | $281 | $2,466 |
Plus Stripe fees on revenue
The Big Picture
| Tier | Users | Monthly Cost Range | Per-User Cost |
|---|---|---|---|
| Launch | 0 -- 1K | $5 -- $55 | $0.01 -- $0.06 |
| Growth | 1K -- 10K | $100 -- $388 | $0.01 -- $0.04 |
| Scale | 10K -- 100K | $281 -- $2,466 | $0.003 -- $0.025 |
Key takeaway: Infrastructure costs are very manageable. At every tier, the per-user cost is measured in pennies. The biggest costs at scale will be file storage (user uploads) and analytics — both of which grow with engagement, which is a good problem to have.
One-Time and Setup Costs
These are not monthly, but should be budgeted for:
| Item | Cost | Notes |
|---|---|---|
| Domain name | $12/year | Already have one (probably) |
| SSL certificate | $0 | Free via Cloudflare or Let's Encrypt |
| Apple Developer Account | $99/year | If building a native iOS app |
| Google Play Developer | $25 (one-time) | If building a native Android app |
| Stripe Atlas (incorporation) | $500 (one-time) | If not already incorporated |
What Is NOT in This Estimate
These costs are separate from infrastructure:
| Category | Examples | Notes |
|---|---|---|
| People | Developers, designers, support staff | Your biggest cost by far |
| Third-party licenses | Stock photos, font licenses, paid libraries | Varies widely |
| Legal | COPPA compliance review, terms of service | Budget separately |
| Insurance | Cyber liability, general business | Depends on coverage |
| Marketing spend | Paid ads, events, content creation | Not infrastructure |
| Office / tools | Slack, Figma, GitHub, Notion | Team tooling costs |
Cost Optimization Tips
Use free tiers aggressively — most services have generous free tiers. You can run a real app for under $50/mo at launch.
Do not over-provision — start with the smallest plan that works. You can always scale up in minutes.
Consolidate vendors — PostHog can replace separate analytics + feature flag + session replay tools. Supabase can replace separate database + auth + storage services.
Cloudflare everything — their free tier includes hosting (Pages), CDN, DDoS protection, and DNS. That is 4 line items at $0.
File storage is the sleeper cost — if users upload lots of photos/videos, this grows fastest. Set upload size limits and compress/optimize images automatically.
Stripe fees are revenue-correlated — they only cost money when you are making money. That is the best kind of expense.
Monitor actual usage — set up billing alerts on every service. Surprises come from services you forgot about, not the ones you are watching.
Recommended Starting Stack (Launch Tier)
If you were to deploy tomorrow, here is the simplest, cheapest path:
| Service | Provider | Cost |
|---|---|---|
| Frontend hosting | Cloudflare Pages | $0 |
| Backend server | Railway | $5 |
| Database | Neon (free tier) | $0 |
| File storage | Cloudinary (free tier) | $0 |
| Resend (free tier) | $0 | |
| CDN + DNS + DDoS | Cloudflare | $0 |
| Error tracking | Sentry (free tier) | $0 |
| Analytics | PostHog (free tier) | $0 |
| CI/CD | GitHub Actions | $0 |
| Feature flags | Custom (building now) | $0 |
| Monitoring | UptimeRobot | $0 |
| Monthly total | $5 |
Yes — you can run a real, production application for $5/month. It will not handle 100K users at that price, but it absolutely can handle your first 1,000.