Skip to main content

ADR-008: Phase 3 Architecture - Cost Estimation & Infrastructure Decision

Status: Accepted

Context

This ADR consolidates cost estimations and architectural decisions for three interdependent features: Payment Integration, Hardware Support, and Sharing Options. These features share infrastructure dependencies (cloud storage, payment processing) and must be architected together to optimize costs.

Important Business Model Clarifier: This is a one-time purchase business, not a subscription. Customers buy a lifetime license (Rp 8,000,000) and get full access. End-users do NOT pay per photo - they receive prints/downloads as part of the customer's service.

FeatureADRRFC
Payment IntegrationADR-003RFC-001
Hardware SupportADR-005RFC-003
Sharing Options (Softcopy)ADR-006RFC-004

Business Model Overview

Pricing Model Options

We evaluated three pricing models:

ModelDescriptionCustomer PaysWe Receive
SubscriptionMonthly recurringRp 100,000/moRecurring
One-Time PurchaseLifetime licenseRp 8,000,000 onceUpfront
Pay per VolumePay per printRp 500/printPer transaction

Model 1: Subscription (Monthly)

TierPriceTarget
StarterRp 100,000/moSmall events
ProRp 250,000/moRegular users
EnterpriseRp 500,000/moHeavy usage

Pros: Predictable recurring revenue, lower barrier to entry
Cons: Need continuous retention, slower revenue growth


Model 2: One-Time Purchase (Lifetime)

ProductPriceDescription
Lifetime LicenseRp 8,000,000/unitFull access, lifetime usage

Pros: Large upfront revenue, simpler billing
Cons: No recurring revenue, need constant new sales


Model 3: Pay per Volume (Per Print)

UsagePrice
Per PrintRp 500/print

Pros: Pay-as-you-go, lowest barrier to entry
Cons: Transaction-heavy, complex tracking, low margin per print


Cost Simulation Comparison

Scenario: 100 customers after 12 months

MetricSubscriptionOne-TimePay per Volume
Price/unitRp 100,000/moRp 8,000,000Rp 500/print
Per Customer RevenueRp 100,000/moRp 8,000,000Rp 50,000/mo
Customers100 active100 total100 active
Avg usage--100 prints/month
Monthly RevenueRp 10,000,000Rp 80,000,000Rp 5,000,000
Annual RevenueRp 120,000,000Rp 160,000,000Rp 60,000,000
Revenue after 2 yrsRp 240MRp 160MRp 120M

Break-Even Analysis

Assuming Rp 500,000/mo operational costs:

ModelBreak-Even Point
Subscription~5 customers
One-Time~10 customers
Pay per Volume~110 prints/month

Recommendation Matrix

FactorBest Choice
Fastest revenue (Month 1)One-Time (Rp 80M)
Long-term revenueSubscription or Pay per Volume
Simplest operationsOne-Time
Lowest barrier to entryPay per Volume
Best profit marginSubscription

Final Decision

Selected: One-Time Purchase (Rp 8,000,000)

Rationale:

  • Fastest upfront revenue to reinvest in growth
  • Simplest billing (no recurring complexity)
  • Matches typical hardware sales model
  • 10 units/month target = Rp 80M/month revenue

1. Payment Processing Costs (One-Time Purchase)

ItemCost
Xendit AccountFree
Payment Processing2.5% per transaction
Bank Transfer Fee~Rp 15,000-30,000 per disbursement

Key Insight: Each unit sale generates one Xendit transaction. With 10 units/month, this is low volume. One-time purchase means no recurring revenue, but higher upfront revenue per customer.

2. Cloud Storage Costs (Sharing Options)

ProviderStorage (10GB)Egress (50GB/month)Total
SupabaseRp 0Rp 70,000Rp 70,000/mo
Cloudflare R2Rp 0Rp 0Rp 0/mo
AWS S3Rp 5,500/GBRp 140,000/GBRp 150,000/mo

Recommendation: Cloudflare R2 (no egress fees) - aligns with ADR-001 decision

3. Hardware Support Costs

ItemCost
Printer SDKs/APIsFree (open source libs)
Bluetooth communicationFree
Testing devicesOne-time Rp 3,000,000-7,500,000

4. Operational Cost Analysis

Scenario: 10 new units sold/month

Cost ItemMonthlyAnnual
Tech (Infra + Monitor)< Rp 2,000,000< Rp 24,000,000
Payment Processing (2.5%)Rp 2,000,000Rp 24,000,000
Hardware COGSRp 30,000,000Rp 360,000,000
Customer SupportRp 5,000,000Rp 60,000,000
MarketingRp 3,000,000Rp 36,000,000
Development/MaintenanceRp 8,000,000Rp 96,000,000
MiscRp 5,000,000Rp 60,000,000
Total~Rp 55,000,000/mo~Rp 660,000,000/yr

Revenue: 10 units × Rp 8,000,000 = Rp 80,000,000/mo

Net Profit: ~Rp 25,000,000/mo (~31% margin)

Note: Assumed profit margin of 20-30%. Tech costs (infrastructure + monitoring + observability) kept under Rp 2,000,000/mo.

Combined Infrastructure Cost Model

Architecture Decision

Decision: Unified Infrastructure

We will implement a unified architecture where:

  1. Payment and sharing are tenant-facing features - Softcopy availability depends on tenant subscription/license state, not booth-user payment
  2. Cloudflare R2 for all storage - Zero egress fees, integrates with Workers for QR generation
  3. Xendit centralized account - Simplifies compliance, single dashboard
  4. Tenant dashboard on same domain - /dashboard subpath (not subdomain)

Combined Data Model

Photo Session Flow (Post-Purchase)

One-Time Purchase Flow

Storage Cost Comparison Chart

Final Recommendation

ComponentChoiceRationale
Payment GatewayXendit (centralized)QRIS support, one-time payments
Cloud StorageCloudflare R2Zero egress, R2 Workers for QR
DatabaseCloudflare D1 (SQLite)Single vendor, free tier, 5GB
HostingCloudflare Pages/WorkersFree tier, unlimited bandwidth
Tenant DashboardSame domain (/dashboard)Simpler auth, SEO friendly
Pricing ModelOne-time purchaseRp 8,000,000 lifetime license
Softcopy ModelIncluded in licensePart of lifetime purchase

Key Business Model Shifts

  1. One-time purchase - Customers pay Rp 8,000,000 once, get lifetime access
  2. No recurring revenue - Revenue is front-loaded per unit sold
  3. 10 units/month target - Aggressive sales target for growth
  4. Softcopy included - Not a separate revenue stream
  5. 2.5% payment processing - Xendit fee per transaction

Consequences

Positive

  • Zero storage egress costs with R2
  • Large upfront revenue per customer (Rp 8M)
  • Sustainable profit margin (20-30%)
  • Simple one-time payment flow
  • End-user experience is friction-free (no payment during events)
  • No recurring billing complexity

Negative & Risks

  • No recurring revenue - need continuous new sales
  • 10 units/month is an ambitious target
  • Hardware COGS is significant (~37.5% of revenue)
  • Need ongoing customer support capacity
  • Storage costs grow with total user base (mitigate with R2)