Keel pricing
Status: v0 draft. Pricing will be adjusted after the initial internal beta gives us real build-volume + Update MAU distribution.
Starting point
Keel is a dev tool — a developer-workflow product. Unlike Appunvs, which must ship an iOS app and eat the IAP cut, Keel goes primarily through web signup + WeChat Pay / Alipay at 0.6% fees; channel economics are much cleaner.
Anchors:
- EAS Pro $19/mo ≈ ¥135 → the domestic paid ceiling is too high
- EAS Free (30 builds/mo, 1k Update MAU) — learn from its tier structure
- Domestic dev-tool anchors: Feishu membership ¥39 / WPS ¥48 / Aliyun ECS starting ¥99 / GitHub Copilot $10
- Keel Pro ¥48 = the Feishu / WPS price band; ¥/year = ¥488 (two months off)
Three tiers (draft)
| Tier | Monthly | Builds / mo | Update MAU / mo | 5 first-class native modules | Private projects | Team seats | Submit pipeline | SLA |
|---|---|---|---|---|---|---|---|---|
| Free | ¥0 | 30 (Linux only) | 1,000 | ✅ All | Public projects (OSS) | 1 | Manual | — |
| Pro | ¥48 (annual ¥488) | 100 (incl. macOS for iOS) | 50,000 | ✅ All | Unlimited | 1 | iOS + Android | Ticket 24h |
| Team | ¥298 / seat / mo | Unlimited | 200,000 | ✅ All | Unlimited | Unlimited | + 5 Chinese Android stores | Ticket 4h |
| Enterprise | Custom | Unlimited + private build cluster | Unlimited | + custom module review | Unlimited + on-prem | Unlimited | All platforms | SLA contract |
Billing dimensions
Same approach as EAS — three orthogonal hard-walled dimensions:
1. Build — per invocation
Each keel build counts once. Failed builds also count (they consume
machine time).
- Average cost (v0 estimate): iOS build ~5–10 min ECI time ≈ ¥0.30–0.60 / build; Android ~3–5 min ≈ ¥0.20 / build; web ~1 min ≈ ¥0.05 / build
- The user pays not the direct cost — that’s marked up + amortized to cover queue scheduling / storage / “subsidy” for free users
2. Update MAU — per monthly active client
A client that hits the manifest endpoint at least once in a month counts as one MAU.
- Aliyun OSS + CDN actual cost (GB egress ¥0.40 + request count ¥0.001/10k) is very low; Update’s real cost is bandwidth — primarily bundle size × MAU
- Assume 5 MB per bundle, 50k MAU: 250 GB egress = ¥100/mo → Pro ¥48 leaves thin but real margins after amortizing
- Heavy users → Team ¥298 + 200k MAU quota matches the real cost curve
3. Submit quota — unlimited count but complexity-aware
- iOS Submit: each consumes 0.x of an Apple App Store Connect submission slot (account-bound, not shared)
- Android Submit: each goes through that market’s API credentials (user-provided / Keel-managed)
- Failed / re-submits don’t double-count
Orthogonal pricing vs Appunvs / Mortar
Three products bill independently — no bundle, no offset:
| User scenario | Real monthly cost |
|---|---|
| Standalone Keel Pro | ¥48 |
| Standalone Mortar Tiny tier (small SaaS) | ¥0 (Mortar bundles ¥99 free credit) |
| Standalone Appunvs Pro | ¥30 domestic / ¥48 iOS |
| All three (recommended combo) | ¥30 + ¥48 + ¥0 = ¥78/mo — 4–5× cheaper than a leading web builder’s Pro $25 + Cloud $25 = $50 ≈ ¥350 |
Why no bundle (same logic as Appunvs ↔ Mortar):
- Each product has independent, non-overlapping customer segments
- Bundles add sales complexity
- Users intuitively see “my app-building tool” / “my app’s backend” / “my app’s runtime” as three things
Things NOT to do
- ❌ Direct USD-to-CNY conversion ($19 → ¥135): paywall too high; domestic RN devs won’t pay
- ❌ Individual free + commercial jump to ¥298 (v0 → Team): skipping Pro loses ~80% of individual paying users
- ❌ Unlimited builds: Bolt got bitten early; 30/Free + 100/Pro is a fair split
- ❌ Update billed by MB: user decision granularity is MAU, not bandwidth
- ❌ Force IAP: Keel is a dev tool with no iOS app (
@keel-ai/cliis an npm package); no Apple IAP issue. Users just sign up + pay on the web - ❌ Bundle “everything” with Appunvs / Mortar: each product has independent, non-overlapping customers
Rollout cadence
| Phase | Status | Scope |
|---|---|---|
| Phase A | Initial internal beta | Free + Pro tiers; closed beta; build quota hard wall + Update MAU monitored (no hard wall) |
| Phase B | Early | Update MAU hard wall too; WeChat Pay / Alipay subscription integration |
| Phase C | Mid-roadmap | Team tier opens; B2B invoice workflow integration |
| Phase D | Later | Enterprise quoting + private-deploy SKU |
Implementation complexity
| Module | Current | Needed for launch |
|---|---|---|
| Build counter | Internal sandbox running = Appunvs internal quota not enforced | Add keel_users.builds_this_month field + pre-build gate |
| Update MAU counter | No Update yet | Manifest endpoint writes hit table (namespace + device_id + month) |
| Stripe / WeChat Pay / Alipay | Not integrated | WeChat Pay first (highest dev-segment coverage), Alipay added later |
| Cross-product SSO | Not done | Appunvs / Mortar / Keel share account (later) |
Instrumentation to drive pricing changes (mandatory at launch)
- Per-tier builds/mo distribution (does Free 30 / Pro 100 fit?)
- Ratio of users hitting Update MAU 1k / 50k / 200k caps
- Free → Pro conversion triggers (which dimension caused the upgrade — build count, Update MAU, private projects?)
- Churn: Pro → Free downgrade reasons (don’t need it / too expensive / moved to Expo / moved to native)