Skip to report
2UP / Founder’s service & cost guide
The plan for your next milestone

The services behind
1,000 outlets.

A practical buying guide for your multi-tenant ordering CRM: what you already use, what to add, and how the monthly bill changes from a lean setup to a stronger operation.

Hotels · Restaurants · Cafes · KitchensPricing checked: 25 Oct 2026Target: 1,000 outlets by 31 Dec 2026

Project facts come from 2UP_PROJECT_HANDOFF_2026-10-21.md. They describe the last reported state, not a fresh code or billing audit. Actual paid plans, invoices and current usage were not supplied.

My recommendation

Keep your stack.
Control your usage costs.

Continue with Next.js, Vercel and MongoDB Atlas. Plan domestic phone verification, R2 media, managed order updates, reliable background jobs and monitoring. Buy upgrades as measured demand grows.

₹1,74,750 / monthRecommended service allowance at the default workload, before tax and contingency. Domestic OTP assumed; a login integration change is required.See the full breakdown ↓

Read the numbers correctly. These are planning allowances at 1,000 active outlets, not your current bill or guaranteed vendor quotes. The default is 30 orders per outlet per day. Restaurant payment-processing fees, WhatsApp campaigns, staff, maintenance and one-time work are shown separately. “Best” means the strongest of these three options; enterprise contracts can cost more.

Option 01 / minimum

Lean operation

₹1,10,020
per month · services before tax
Per active outlet
₹110
Annualized services
₹13,20,240
Cash provision¹
₹1,55,788

Lowest modeled spend. M20 database candidate, smaller log retention and less headroom. Conditional on load tests; move to M30 if critical-path performance needs it.

Option 03 / best of three

More resilience

₹3,66,650
per month · services before tax
Per active outlet
₹367
Annualized services
₹43,99,800
Cash provision¹
₹5,19,176

M40 database candidate, Ably Pro, production add-ons for cache/jobs, more recovery and observability budget. No automatic end-to-end SLA or full regional failover.

¹ Default cash provision = services × 1.18 tax provision × 1.20 contingency. The 18% field is an editable cash-planning assumption, not a statement that every invoice has the same tax treatment. Annualized = 12 months at steady state; it is not a forecast of the remaining 2026 spend. Per-outlet numbers are averages, not an outlet-specific vendor price.

02 / What exists today

Your current stack, with evidence labels.

Use the existing implementation as the starting point. A service being in the code does not prove its production payment plan or that every flow works end to end.

LayerReported serviceEvidence & next decision
Editor & sourceKiro · GitHub
Reported in handoff
Keep building the CRM in Kiro. GitHub hosts the source; paid seat counts and the latest branch/PR state need confirmation.
Application & deploymentNext.js / React · Vercel
Staging demonstrated
Production and Preview environment scopes exist. Staging merchant signup/admin/storefront were shown; production readiness is not verified.
DatabaseMongoDB Atlas
Reported in handoff
Atlas is the implemented database. Preview has a restricted database user and 34 critical indexes. Current tier, storage and bills are unknown.
Customer phone sign-inFirebase Authentication
Checkout blocked in handoff
Customer SMS OTP had an unresolved failure. Spark appeared in an older screenshot; the current billing plan is unconfirmed.
Merchant email verificationResend · notify.2up.in
Delivery demonstrated
Sending domain was verified and onboarding email arrived. Owner email verification and customer phone verification are separate flows.
Online paymentsRazorpay
Integrated; live proof missing
Per-merchant configuration and feature flags exist. Signed webhooks, retries, refunds and settlement reconciliation still need end-to-end proof.
Images & storageObject storage; R2 discussed
Provider not confirmed
Product-photo upload failed in the handoff. Inspect the configured adapter before choosing R2 or purchasing anything.
DNS & merchant domainsHostinger DNS · Vercel domains
One merchant host demonstrated
Sample staging subdomain worked. General wildcard onboarding had configuration issues and must be proven before bulk signups.
New operating servicesRealtime · cache · jobs · monitoring
Not established by handoff
Ably, Redis, QStash and observability tools below are recommendations. Do not assume they are already installed or being billed.
03 / Editable planning model

Change the workload. See the bill move.

All three options use the same workload. The calculator changes usage-dependent lines and keeps the reserved infrastructure allowances visible. No data leaves this file.

More assumptions: retries, email, media, active users and order traffic
9,00,000platform orders / month
1,98,000SMS attempts, including retries
46,000transactional emails / month
9.00 TBestimated visitor transfer / month
Domestic verification model · ₹90/USD · figures before tax unless labelled otherwise.

Capacity needs a new review. The workload exceeds the default planning envelope. Usage floors have been updated, but application/database budgets are still reservations. Re-size them after load tests before using these totals as a purchase plan.

04 / Every recurring service

The monthly bill, line by line.

Amounts below are INR monthly planning allocations. USD services use your selected exchange rate. A listed plan minimum and a realistic operating allowance are different things.

Swipe the table sideways to compare all three options.

ServiceMinimumRecommendedMore resilienceWhat the allowance buys
Application hostingVercel Pro₹9,000₹22,500₹54,000Allowance: platform fee, deploying seats, compute, CDN and usage. Reconcile with actual meters.
Production databaseMongoDB Atlas₹18,000₹45,000₹90,000Allowances for M20 / M30 / M40 candidates plus region, storage and network headroom. Backup is below.
Isolated stagingAtlas test cluster + previews₹1,350₹2,700₹7,200Separate project/cluster preferred. No production credentials or data in previews.
Database recoveryAtlas backups + recovery storage₹1,800₹4,500₹13,500Allowance for snapshot/oplog retention and independent recovery copies. Restore labour is excluded.
Menu images & filesCloudflare R2 Standard₹1,620₹1,620₹3,150Allowance for 250 GB media and API operations; upload-time image variants. CDN egress is not charged by R2.
Transactional emailResend₹1,800₹3,150₹8,100Pro 50k / Pro 100k / Scale 100k. More emails add overages. Higher plan supports more sender domains.
Live order & kitchen updatesAbly₹13,500₹18,000₹49,500Standard / Standard with headroom / Pro. Model includes publish + delivery fan-out and connection time.
Cache & abuse controlsUpstash Redis₹2,700₹4,500₹22,500Usage allowance; higher tier includes $200 production add-on for one DB. Durable orders remain in MongoDB.
Jobs & webhook retriesUpstash QStash₹2,700₹4,500₹22,500Usage allowance; higher tier includes $200 production add-on. Application execution is in hosting allowance.
Errors, uptime & logsSentry + Better Stack₹5,850₹10,800₹27,000Combined allowance, not a single vendor plan. One / one / two Better Stack responder seats, plus sampled errors/logs.
Build & maintenance toolingKiro₹1,800₹3,600₹9,000One developer: Pro / Pro+ / Pro Max. Extra seats and excess credits cost more.
Source control & CIGitHub₹0₹1,080₹1,800Free / 3 Team seats / 5 Team seats at listed $4. CI overages and security add-ons need separate checks.
Human business emailMailbox provider₹200₹600₹1,200INR allowance for support/admin mailboxes. Resend is application sending, not your staff inbox.
Platform domainsRegistrar renewal₹200₹200₹200INR monthly equivalent of ₹2,400/year; allowance, not a quoted renewal for 2up.in.
Customer support softwareShared inbox / helpdesk₹0₹2,500₹7,500INR allowance: manual mailbox / small helpdesk / more agents. Support staff salaries are separate.
DNS, TLS & basic product analyticsExisting DNS + included tools₹0₹0₹0No extra service budget. Includes no new premium WAF, maps API, AI API or per-outlet hosting charge.
Cloud, tooling & support software₹60,520₹1,25,250₹3,17,150Includes development tools and domain annual equivalents; excludes people.
Customer phone verificationPlanned domestic route₹49,500₹49,500₹49,500Same SMS workload in every option. Firebase selection includes modeled MAU charges.
Service subtotal / month₹1,10,020₹1,74,750₹3,66,650Before tax and reserve. No restaurant gateway or campaign spend.
Tax provisionEditable, default 18%₹19,804₹31,455₹65,997Cash allowance; confirm treatment against actual supplier invoices.
ContingencyEditable, default 20% after tax₹25,965₹41,241₹86,529Held for overages, exchange-rate movement and incidents.
Monthly service cash provision₹1,55,788₹2,47,446₹5,19,176Add entered maintenance/people and optional business costs in section 11.

All three are candidate configurations. MongoDB describes M10/M20 as suitable for smaller or non-critical workloads and M30+ for performance-critical traffic. That is why the balanced option starts with an M30 candidate. Cloud/region selections can change prices materially.[2][29]

Vendor prices used to anchor these allowances
ProviderPublic pricing anchorPlanning decision
Vercel[1]Pro: $20/month, one deploying seat and $20 usage credit. Extra deploying seats: $20 each. Current lowest CDN tier includes 1 TB and 1M requests.Reserve $100 / $250 / $600 total. Compute and other meters can still add cost; media is planned on R2.
MongoDB Atlas[2]Public base examples: M20 $0.20/hour; M30 $0.54/hour; M40 $1.04/hour. At 730 hours: $146 / $394.20 / $759.20 before applicable extras.Use $200 / $500 / $1,000 allowances; obtain the selected India-region estimate. Backups and staging have separate rows.
Resend[6]Free: 3,000/month, 100/day. Pro: $20/50k or $35/100k. Scale: $90/100k. These modeled tiers add $0.90 per 1,000 over-quota emails.4% email receipts plus 10,000 operations emails at 1,000 outlets. Pro has 10 domains; Scale has 1,000. Shared platform sending is cheaper than unique merchant senders.
R2 Standard[7]$0.015/GB-month, $4.50/M Class A and $0.36/M Class B operations; free 10 GB, 1M A and 10M B. Internet egress is free.250 GB + 50M origin reads + 0.1M writes ≈ $18 before other products. Operations round to full billing units. Pre-generate image sizes rather than assume free dynamic transformations.
Ably[8]Standard $29/month + usage; Pro $399 + usage. $2.50/M messages and $1/M connection minutes / channel minutes. Standard: 10k concurrent connections.Default model ≈ $134.30 Standard or $504.30 Pro, before payload overages and extras. Row budgets provide headroom.
Redis[9]Upstash pay-as-you-go $0.20 per 100k commands. Production add-on +$200/month per DB.Assume 15 commands/order. Higher option includes one production add-on. Check storage/bandwidth limits.
Background jobs[10]QStash pay-as-you-go $1 per 100k messages; production add-on +$200/month.Assume two billable messages/order before additional retries. A queue request is not free application compute.
Monitoring[15][16]Sentry advertises Team from $26/month and Business from $80 on annual billing. Better Stack responder: $34 monthly or $29 annual equivalent; usage/add-ons extra.Combined $65 / $120 / $300 allowances. Monitor representative tenant flows, not one paid monitor for every outlet. Confirm error volume and retention.
Development[13][14]Kiro: Pro $20, Pro+ $40, Pro Max $100 per user/month. GitHub Team lists $4/user/month; confirm renewal/promotion terms.One Kiro seat; GitHub 0 / 3 / 5 paid seats. These are company developer seats, not restaurant staff seats.
Human email & helpdesk[27]Use Zoho Mail or an equivalent business inbox provider; helpdesk seat/plan quotes depend on agents and billing term.INR row amounts are allowances. Obtain the actual India checkout quote before buying. Human support staff are not included.

The R2 row automatically rises from its $10 minimum allocation to $18 with the default usage assumptions. This is included in every total above. Published headline rates do not replace actual regional invoices.

05 / From first visit to completed order

One operating system. Clear responsibilities.

01 / ARRIVEMerchant domain → storefront

DNS + Vercel serve the tenant’s Next.js storefront. R2 serves compressed menu images.

Cache public menu data with tenant-specific keys. Keep customer/admin responses private.

02 / VERIFYCart → customer identity

Phone verification establishes a trusted session. Resend separately verifies merchant-owner email.

Reuse valid sessions, limit resends and preserve the cart during failures.

03 / COMMITPayment → server-verified order

Razorpay handles payment when enabled. The server verifies signatures and writes the authoritative order into MongoDB.

Use idempotency so repeated callbacks cannot create duplicate orders or charges.

04 / PREPAREOrder → merchant → kitchen

Ably notifies the tenant’s authenticated staff and KDS. The database remains the source of truth.

Reconnect and re-fetch after network failure; monitor order-acceptance lag.

05 / COMPLETEReady → pickup / delivery / room

Background jobs retry notifications, reconcile payments and produce receipts/reports.

Optional WhatsApp messages use an explicit tenant allowance or prepaid wallet.

06 / OPERATEBilling → support → recovery

Collect SaaS fees separately from restaurant food payments. Monitor failures and test database recovery.

Every record, staff role, cache key, media path and realtime channel needs tenant scoping.

Avoid adding a second main database just to gain realtime features. MongoDB is already implemented. Additional services are tools around it, not a recommendation to rewrite the CRM or switch editor.

06 / The most important cost decision

Resolve phone verification before scaling.

At the default workload, 20% of orders trigger a fresh OTP and 10% extra attempts are allowed: 9,00,000 × 20% × 1.10 = 1,98,000 attempts/month.

Planned domestic route

MSG91 or another qualified India provider

₹49,500
monthly phone-verification allowance before tax

MSG91’s public OTP packs range from ₹0.25 down to ₹0.18, with several bulk packs at ₹0.19. The model uses ₹0.25 as a conservative pre-tax assumption; confirm extra carrier/DLT charges and prepaid commitments.[5]

Existing code path, modeled at target

Firebase + Identity Platform

₹12,78,540
SMS plus assumed active-user billing, before tax

India SMS is $0.07 per sent message; the first 10/day are unbilled. At this scale, the standard 3,000-SMS/day cap is insufficient. Identity Platform has separate active-user tiers; the model assumes 1.2 lakh MAU.[3][4][28]

CalculationCurrent assumptionsInterpretation
Domestic attempts1,98,000 × ₹0.25 = ₹49,500One-message OTP; Unicode or long templates can change segments billed.
Firebase SMS1,97,700 billable × $0.07 × ₹90 = ₹12,45,510Assumes even traffic and the full daily allowance used on each of 30 days.
Identity Platform MAU1,20,000 active users ≈ $367 = ₹33,030Separate from SMS; confirm your enabled product and actual MAU.
Monthly difference₹12,29,040Usage-only difference; migration engineering and ongoing auth ownership are additional.

The ₹1.75 lakh recommendation assumes a changed phone-login integration. A domestic SMS API cannot simply be selected inside Firebase’s existing SMS flow. Kiro must implement provider verification on the server, secure session/token issuance, short-lived one-time codes, attempt limits, expiry, abuse protection and tenant-safe identities. If Firebase custom tokens are retained on an Identity Platform project, assess its MAU fees too; the domestic model assumes independently managed sessions.

First diagnose the existing staging failure; do not confuse a pricing decision with a proven bug fix. Blaze is required for real Firebase verification SMS. Billing alerts are not a hard spend cap. Do not disable verification or weaken session security to save money. Provider delivery, account ownership and a low-volume fallback must be tested.

Other verification routes worth evaluating

2Factor: the public domestic priority-OTP table advertises ₹0.17 below 100k/month, ₹0.14 between 100k–1M and ₹0.12 above 1M; its Growth page also lists ₹4,999/month including messaging credits. Treat this as a quote candidate and confirm wallet, route, carrier costs and delivery guarantees. Do not assume the headline applies to your account.[26]

WhatsApp authentication: quote separately with an SMS fallback; the user needs WhatsApp and the authentication flow needs approved templates and verification. Email/passkeys: useful for merchant staff and returning users where appropriate, but they do not independently prove a newly entered phone number.

07 / Vercel, VPS and alternatives

A cheap server is only one line of the bill.

My default is to keep Vercel while you finish production readiness. Moving a working Next.js stack also changes deployments, patching, scaling, observability and recovery ownership.

RoutePricing anchor / allowanceWhen it makes sense
Vercel + Atlas
Recommended
Application allowance: $100 / $250 / $600 per month; database and other services separate.Fastest continuation of the current code/deployment setup. Watch uncached calls, CPU, image processing and origin/network charges.
Hostinger VPS + Atlas
Cost-focused alternative
Use renewal rates below; keep the managed database and external services. A second app node, load balancer, monitoring and operations cost extra.Consider after profiling demonstrates meaningful savings and a named engineer owns OS updates, deploys, failover and backups.
Cloudflare Workers / other managed compute
Future quote candidate
Separate compatibility proof and provider estimate required. No invented “all-in ₹500” equivalent.Evaluate if sustained Vercel usage costs justify engineering work. Validate Node/Next.js features, database connectivity and worker/job support first.

Hostinger India VPS comparison

Public offer captured 25 October 2026. The displayed monthly number can require a prepaid term; verify the initial checkout total, tax, renewal term, available region and any backup add-ons. The page states the shown renewal is for two years.[12]

PlanvCPU / RAM / diskTransferIntro / monthRenewal / monthMy use case
KVM 11 / 4 GB / 50 GB4 TB₹599₹999Dev/staging or a tiny pilot; not a blanket 1,000-outlet promise.
KVM 22 / 8 GB / 100 GB8 TB₹779₹1,199Pilot app candidate with external DB and media.
KVM 44 / 16 GB / 200 GB16 TB₹1,099₹2,399App-node candidate after load tests.
KVM 88 / 32 GB / 400 GB32 TB₹2,199₹4,399More app headroom; one machine still has one-machine failure risk.

Illustrative VPS substitution: two KVM 4 nodes at renewal are ₹4,798/month before extras. Replacing the balanced Vercel allowance of ₹22,500 creates at most ₹17,702 of apparent monthly room at the default exchange rate—before load balancing, staging changes, backups, migration and extra engineering. It does not remove the ₹45,000 database allowance or phone-verification bill. Full regional failover is a separate architecture and quote.

Realtime, email and security alternatives

Realtime: Ably is the modeled choice. Pusher Pro is $99/month for 2,000 concurrent connections; Business is $299 for 5,000. The default assumption already uses 2,000 staff connections before customers, so Pro has little concurrency margin.[21] Vercel now supports WebSockets in public beta; evaluate its current limits and cross-instance state rather than relying on the old “Vercel cannot do sockets” rule.[22]

Email: Amazon SES à la carte is $0.10 per 1,000 outgoing emails plus data/add-ons. At 9 lakh email receipts it is about $90 in base sending; Resend Scale 1M is $650. SES needs its own approval, suppression, reputation and operational setup; keep Resend while onboarding volume is small.[17][6]

Security edge: Vercel already supplies CDN/TLS and firewall capabilities. Do not automatically buy a second proxy/WAF. If a VPS setup needs Cloudflare Pro, the public zone price is $25 monthly or $20/month billed annually; this add-on is outside the modeled stack.[24]

08 / Capacity without false promises

Count traffic and peak load, not just outlets.

Visits
45,00,000
menu visits / month at 5 visits per order
Visitor transfer
9.00 TB
at 2 MB per visit, decimal units
Average order writes
0.35 / sec
monthly average; peaks and polling are much higher

The default visitor-transfer estimate is 9,00,000 orders × 5 visits × 2 MB = 90,00,000 MB ≈ 9 TB/month. At 100 orders per outlet/day it becomes 30 TB using the same browsing assumptions. Admin dashboards, API payloads, backups, bots and video can add more.

Traffic treatmentImpact on the billRecommendation
Serve every byte from one app hostThe estimated visitor volume can exceed a 4 TB or 8 TB VPS allowance. A 16 TB allowance may fit the default case but is not a speed guarantee.Do not choose a server using bandwidth alone. CPU, database waits, request bursts and uptime matter too.
Serve images directly from R2/CDNMost image bytes can bypass the app host. R2 egress is free, while storage/operations and any other processing service still cost money.Use a production media domain, caching headers and compressed variants. Proxying images through another host can reintroduce its transfer/optimization bill.
Every staff screen polls every 5 seconds2,000 screens × 12 hours × 30 days ÷ 5 seconds = 51.84 million API calls/month, before customer traffic.Use scoped realtime events, reconcile on reconnect and keep occasional polling as fallback.
Order data accumulatesAt 10 KB per order including related records, 9 lakh orders ≈ 9 GB/month or 108 GB/year before indexes, audit logs and replicas.Measure real document sizes, define retention/archive rules and budget expanded storage. The DB allowance is not unlimited history.
Load-test acceptance targets before onboarding 1,000 outlets

These are suggested product targets, not verified capacity: test realistic menu browsing and authenticated order writes during a sustained busy period; model lunch/dinner bursts, 2,000 staff connections plus customer tracking, database pool pressure, payment callbacks and repeated notifications. Include a larger burst as an engineering stress test.

Track p95/p99 latency, order-creation error rate, kitchen update delay, queue age, cache hit rate and DB CPU/IOPS. A starting target is p95 order-write response below 1 second excluding external payment/OTP time, less than 0.1% unexpected server errors, and staff order visibility within 2 seconds. Verify zero duplicate paid orders under callback replay. Adjust requirements to observed merchant needs.

Use tenant-specific indexes/authorization, bounded connection pools and lightweight menu caches. Query plans and slow queries matter more than an unsupported “restaurants per VPS” figure. Run a real restore drill and document recovery time and possible data loss.

09 / Keep the money streams separate

Restaurant food payments are not your SaaS bill.

Keep merchant food receipts in the merchant’s approved payment account. Your company collects its SaaS subscription separately. Any marketplace/commission/split-settlement product needs its own provider agreement and quote.

Money streamMonthly amountWho normally pays it?
Total restaurant food GMV₹31,50,00,000Money for the outlets; it is not 2UP SaaS revenue.
Restaurant online-payment GMV₹9,45,00,000The chosen online percentage of total food GMV.
Food-payment processing fee₹18,90,000Merchant expense, unless you explicitly agree to subsidize it.
Food-payment fee + 18% GST₹22,30,200Outside all platform service totals in this report.
Illustrative monthly SaaS collections₹9,99,000Gross subscription example before SaaS output taxes, discounts, churn and refunds.
Your SaaS collection fee + 18% GST₹23,576Your company’s expense if all example subscriptions use this gateway; optional inclusion below.

Razorpay’s public standard pricing is generally 2% plus applicable GST, with ₹0 setup/maintenance; some payment methods differ (the page lists 2.15% + GST for credit-card UPI). Zero bank MDR on standard UPI does not automatically remove a gateway platform fee. New-customer promotions are not used in the steady-state budget.[11]

For a negotiated price, use the actual payment mix and merchant agreement. Refunds, disputes, instant settlement, subscription add-ons and Route/split settlements may add charges. Never treat a customer’s “payment successful” screen as proof: verify server-side and reconcile provider webhooks.

10 / Optional messaging & extras

Make WhatsApp a priced feature.

Quote automated messaging separately from unlimited CRM access. The volume across 1,000 merchants is what changes the economics.

Utility templates
₹1,35,000
per month, before tax and BSP fees
Merchant campaigns
₹90,000
per month, before tax and BSP fees
Optional combined cash
₹2,65,500
including 18% tax provision; BSP excluded

Rate-card limitation: Meta’s detailed pricing page was rate-limited during research, so this report does not certify current category/window discounts or exact Meta message rates. Use ₹0.15 and ₹0.90 only as editable planning assumptions, then replace them from the current account rate card. MSG91 lists a ₹500/month WhatsApp platform subscription after its introductory period, plus rate-card usage; confirm whether a SaaS reseller or per-merchant account requires different fees.[18][19]

A shared platform sender and 1,000 merchants each using their own WhatsApp account are different products. Embedded signup, business/number verification, template approval, per-merchant identity, messaging limits and BSP commercial terms must be agreed. Do not multiply a single-account ₹500 plan into a universal SaaS quote—or assume one account price includes every merchant.

Additional serviceMinimum approachPaid alternative / cost treatment
Maps & deliveryStructured address + map links; no paid maps API assumed. Pickup/table/room service initially.Address validation, autocomplete, route optimization and delivery partners: quote by SKU / trip. Merchant-funded and outside core totals.
QR codes, PDF receipts & reportsGenerate inside the application; ₹0 additional vendor licence.Hosting, file storage and development still cost money. Printing and physical table cards are outlet/onboarding expenses.
AnalyticsBasic internal reports and available free/included analytics.Paid event analytics/session replay: add a capped allowance only when there is a clear product question. Never capture OTP/payment secrets.
AI menu import / assistantNot needed for order correctness; ₹0 external AI budget in base case.If added, start with an explicit small monthly cap and per-tenant usage limits; model/provider choice and quote remain open.
Customer domainsMerchant subdomains of your owned root: no new domain registration for each outlet.Merchant-owned custom domain annual renewal is normally paid by the merchant. Cert/domain onboarding must be automated and tested.
Bot checks & secret handlingProvider firewall, rate limits, MFA and existing secret stores; no new paid security suite assumed.Turnstile has a free plan but hostname/widget limits matter for 1,000 merchant origins. Use an architecture that fits those limits or obtain an enterprise quote.[25]
Premium support / guaranteesNamed internal incident owner and documented response/recovery process.24/7 outsourced engineers, contractual SLAs, audit certifications and regional failover are quote-based, outside the service subtotal.

Vercel Pro’s documented soft domain limit is 100,000/project, so 1,000 domains is not inherently a reason for Enterprise. Your existing staging wildcard issue still needs an actual fix and onboarding tests.[23]

11 / From software spend to cash required

The company budget needs a few more lines.

Your earlier project discussions mentioned roughly ₹1 lakh/month for maintenance and future work. This is a historical planning input, not a verified current invoice. It is separate from cloud vendors and may already include engineering staff.

These additional cash inputs are treated as tax-inclusive. The tech contingency does not automatically cover salaries, optional messaging or acquisition. Unentered costs remain zero, not “free”.

Monthly cash planningMinimumRecommendedMore resilience
Service cash provision₹1,55,788₹2,47,446₹5,19,176
Entered maintenance + other business costs₹1,00,000 maintenance; other fields ₹0₹1,00,000₹1,00,000₹1,00,000
Entered monthly cash requirement₹2,55,788₹3,47,446₹6,19,176
Three-month operating cashBefore one-time work, hardware and debt repayments₹7,67,365₹10,42,338₹18,57,529

Not a complete company forecast: founder salary, recruitment, office, support shifts, sales commissions, discounts, professional services, output tax remittances and historical build-cost instalments need your actual inputs. Do not treat restaurant GMV as cash available to pay your company’s bills.

One-time work and prepaid cash

ItemPlanning treatmentWhen to fund it
DLT registration & sender/template setupProvider guidance lists operator registration ₹5,000 + GST; optional MSG91 assistance ₹1,500 + GST. Confirm current portal charges and the required entity model.[20]Before domestic OTP launch. Merchant marketing identities may need additional onboarding.
OTP integration, production hardening & load testingReserve ₹50,000 / ₹1,50,000 / ₹3,00,000 for the three options as internal project allowances, not supplier quotes. Ask whether existing maintenance already covers this work.Before the corresponding scale gate. Include auth, webhook replay, domain onboarding, image uploads, isolation and recovery tests.
Independent security assessmentQuote required. For planning, ring-fence ₹50,000–₹2,00,000 based on test scope and remediation; not a confirmed market price.Before broad rollout of the paid platform; repeat after material changes as needed.
Domains, annual tools and prepaid SMS walletsAnnualized rows are not the invoice due today. A ₹20,000 prepaid wallet purchase is cash paid now and consumed later; do not add it again as a second monthly expense.At checkout/top-up. Use expiry and minimum-commitment terms from the actual provider.
Tablet, kitchen printer, network and QR materialMerchant/onboarding quote per outlet. No hardware purchase assumed in the cloud subtotal. Contract clearly who supplies/replaces each device.Onboarding and replacement cycles.
Company/legal/accounting work and past build instalmentsSeparate professional quotes and a repayment schedule. Previously invested development money is not a new recurring cloud bill.Per agreed business schedule; outside this service model.
12 / Start to end

Buy in stages. Prove each stage.

The 1,000-outlet goal is a commercial target for 31 December 2026, not proof that the current staging system can safely carry it. These are readiness gates, not promised calendar delivery dates.

Resolve the present blockers

First: inspect the current Kiro workspace and deployed staging configuration. Diagnose customer phone OTP and product-image upload. Verify the actual Firebase plan and configured storage provider. Preserve existing changes.

Exit: a real/test customer can verify, place an order, and the merchant can upload and display a menu image. No unrelated production changes.

Make a small paid pilot reliable

Stay on Vercel Pro; choose a small paid Atlas production tier from measured demand. Keep preview isolated, start the necessary Resend tier and enable backups, alerting and reliable retries before relying on order notifications.

Exit: merchant signup → menu → cart → verified payment/order → kitchen → completion/refund all work. Replay callbacks, restore a backup and test cross-tenant access.

Standardize onboarding for 50–100 outlets

Automate tenant/subdomain creation, owner access, payment-account validation and media scoping. Decide and implement the domestic auth route if its measured economics justify it. Document operational ownership.

Exit: a support person can onboard an outlet with a repeatable checklist; usage and costs are visible per tenant.

Measure peak behaviour around 100–300 active outlets

Profile slow queries, database pools, caching, message fan-out, queue retries and lunch/dinner bursts. Compare modeled SMS attempts and CPU with the real bill. Upgrade from evidence.

Exit: acceptable latency and notification delay under realistic peak load; no duplicate paid orders; tested escalation and recovery.

Reserve the balanced budget for 1,000 active outlets

Use the recommended column as the first target allowance. Select the actual Atlas region/tier and storage retention, set spend alerts and safe app-level limits, and hold operating cash for incidents and onboarding.

Exit: a load/recovery test at the planned workload, evidence of tenant isolation, support coverage and clear contracts for messaging, payments and hardware.

Improve resilience only where the business needs it

Add stronger service support, independent recovery copies, more monitoring and tested failover when customer commitments justify it. Agree RPO (possible data loss) and RTO (time to restore) first.

Exit: documented proof that the chosen recovery architecture meets the promise; a higher spend alone is not proof of reliability.

Simple rules that keep the bill under control

Cache menus, compress images and use tenant-scoped invalidation. Keep paid receipts/notifications intentional. Preserve valid customer sessions instead of requesting an OTP on every visit. Use signed asynchronous jobs and deduplicate callbacks. Limit media uploads and log retention. Give merchants message quotas or a wallet. Keep promotional sending optional. Attribute costs to active outlets and publish a clear overage policy.

Set vendor spend notifications and application-level safeguards. Treat spend-triggered automatic shutdown carefully: stopping the app during dinner service has a real merchant cost. Google billing alerts alone do not stop usage. Review the actual bill weekly during growth and re-forecast after material volume changes.

13 / Five inputs will make this precise

What to confirm next.

You do not need all of this to use the guide. These inputs turn the estimate into a purchase-ready plan.

  1. Current invoices and paid tiers: Vercel, Atlas region/tier/storage, Firebase, Resend, registrar, configured image storage and Kiro seats.
  2. Real activity: expected orders per outlet/day, peak concurrent staff/customers, menu traffic, unique monthly customers, OTP sends/retries and media usage.
  3. Commercial model: your SaaS price, whether outlets pay their own gateway fees, and whether messaging is included, metered or prepaid.
  4. Delivery commitments: support hours, acceptable downtime/data loss, merchant hardware, delivery integrations and which countries launch first.
  5. Existing maintenance scope: whether ₹1 lakh/month still applies and covers auth work, onboarding automation, testing, support and incident response.

Best next action: collect the current plan names and last-month totals from the vendor billing pages, without sharing credentials, OTPs or full card details. Keep engineering changes in Kiro and make provider purchases only after reviewing the required integration and quote.

14 / Research and calculation notes

Sources you can check before buying.

Primary provider pages were checked on 25 October 2026. Prices can change, vary by region and billing term, and exclude taxes unless specified. Checkout and signed contracts control actual charges. Links remain usable when this file is opened locally.

  1. Vercel Pro: platform fee, credit and seats
  2. MongoDB Atlas: public pricing and cluster tiers
  3. Google Identity Platform: India SMS and active-user pricing
  4. Firebase: phone-auth limits and Blaze requirement
  5. MSG91: domestic OTP price packs
  6. Resend: transactional plans, quotas and overages
  7. Cloudflare R2: storage, operations, rounding and egress
  8. Ably: packages, messages and connection minutes
  9. Upstash Redis: commands and production add-on
  10. Upstash QStash: message pricing and production add-on
  11. Razorpay: gateway charges and payment-method differences
  12. Hostinger India: VPS prices, renewal rates and resources
  13. Kiro: development plans and credits
  14. GitHub: Free and Team pricing
  15. Sentry: error-monitoring plans
  16. Better Stack: monitoring, responder and logging pricing
  17. Amazon SES: à la carte outbound email
  18. Meta: WhatsApp pricing and rate cards
  19. MSG91: WhatsApp platform subscription
  20. MSG91: DLT setup and assistance charges
  21. Pusher Channels: plans and concurrency limits
  22. Vercel: WebSocket support, currently public beta
  23. Vercel: multi-tenant domain limits
  24. Cloudflare: zone plans and billing terms
  25. Cloudflare Turnstile: free plan and hostname limits
  26. 2Factor: alternative domestic SMS rates
  27. Zoho Mail: business mailbox editions
  28. Firebase: Identity Platform upgrade and MAU billing
  29. MongoDB Atlas: cluster sizing guidance
Transparent model formulas and limits

Core: orders = outlets × orders/day × days; SMS attempts = ceil(orders × OTP share × (1 + retry share)); emails = ceil(orders × email share + outlets × 10). Fixed option allowances are not automatic capacity guarantees.

R2: max(0, ceil(GB − 10)) × $0.015 + ceil(max(0, A operations in M − 1)) × $4.50 + ceil(max(0, B operations in M − 10)) × $0.36. The row is the greater of the option allowance and this estimate. Assumes Standard class, account free allowances fully available, and no paid transformation service.

Realtime: 6 order events × (one publish + two deliveries); two staff connections per outlet for 12 hours/day; one tenant channel for 12 hours/day. $29/$399 package + messages × $2.50/M + connection/channel minutes × $1/M. Payload-size multipliers, history/presence and other traffic may add cost. Staff concurrency is modeled; customer tracking connections are extra.

Other usage floors: Redis 15 commands/order at $0.20/100k; QStash two billable messages/order at $1/100k. Higher options add $200 production packs. Resend uses its selected tier’s included emails and $0.90/1,000 overages. Usage floors can raise reserved rows. Billing free allowances assumed available; consolidate account usage before procurement.

Firebase: SMS free quantity is estimated as 10 × model days with evenly spread traffic. MAU tiers: first 50k free, next 50k $0.0055, next 900k $0.0046, next 9M $0.0032, remainder $0.0025. The Firebase comparison includes modeled Identity Platform MAU fees because default traffic exceeds base daily SMS capacity. Actual project quotas still require validation.

Cash: subtotal × (1 + tax provision) × (1 + contingency). Optional WhatsApp and gateway calculations use a separate 18% provision; additional business inputs are tax-inclusive. Annualization is 12 identical months and does not model growth, credit eligibility, discounts, refunds, failed-charge policy or acquisition churn. Figures are rounded only for display.