Account & Billing
Source: docs/account/billing.md
Generated: 01/09/2026
JoinGrove billing covers free Individual tier, PPP Team checkout, and Campus plans — with mobile money stubs for emerging markets.
Key Concepts
- What: Billing server stubs simulate PPP checkout (Paystack, M-Pesa) and Team tier subscriptions; Individual tier stays free forever.
- Why: Emerging-market teams need ~$1–3/mo pricing, not $15/mo Silicon Valley defaults — with local payment rails.
- Related: PPP pricing (
pricing.md), mobile money (../integrations/mobile-money.md), Global South hub.
API / Reference
| Tier | Standard | PPP (NG/KE/GH/SN) | Command |
|---|---|---|---|
| Individual | Free | Free | — |
| Team | $15/mo | ~$2/mo | joingrove.subscribeTeamTier |
| Campus | $49/mo | ~$10/mo | Contact / ambassador |
Billing server
| Item | Value |
|---|---|
| Dev URL | http://localhost:3747 |
| Production URL | joingroveBilling.productionServerUrl |
| Start stub | npm run billing-server |
| Config | product.json → joingroveBilling |
| Egress | Requires allowBillingRequests when zero egress on |
Commands
| Command | ID |
|---|---|
| Show PPP pricing | joingrove.showPricing |
| Subscribe Team (PPP) | joingrove.subscribeTeamTier |
| Show mobile money | joingrove.showPaymentProviders |
| Telemetry (checkout visibility) | joingrove.openTelemetryDashboard |
Setup & Installation
- Individual users — no billing setup; full IDE + Ollama + templates are free.
- For Team checkout testing →
npm run billing-serverin a terminal. - Command Palette → Subscribe to JoinGrove Team (PPP) (
joingrove.subscribeTeamTier). - If zero egress is on → billing requests are blocked until opted in via security wizard.
- Review tiers → Show JoinGrove Pricing (PPP) (
joingrove.showPricing).
Code Examples
Start billing stub:
npm run billing-server
Then in JoinGrove:
Command Palette → joingrove.subscribeTeamTier
View PPP tier table:
Command Palette → joingrove.showPricing
Next: Integrate real Paystack/M-Pesa keys in your deployment — never commit secrets to git.
How It Connects
- Pricing reference:
pricing.md - Mobile money:
../integrations/mobile-money.md - Billing service:
services/joingrove-billing/server.mjs - In-app command:
joingrove.showPricing