Pricing
Free, Plus, Sync Starter, Sync Pro, plus three lifetime tiers.
Last updated: 2026-05-25 Source of truth. All copy on the marketing site, in the registry's
payment_productsseed, and in Stripe Dashboard must trace back here. If you change pricing, change THIS doc first and propagate from it.
TL;DR
FREE $0/mo base launchpad + 1 sticky note window + basic colors
PLUS $1.99/mo + multi-window notes + full color customization
SYNC STARTER $3.99/mo Plus + 5 GB cloud sync
SYNC PRO $9.99/mo Plus + 20 GB + version history +
multi-device licensing (up to 10) + priority support
(E2E encryption included; same as Sync Starter)
LIFETIME (one-time, no cloud sync — sync requires ongoing infra)
$49 Lifetime Plus multi-window + colors forever
$129 Lifetime Plus + name on supporter wall
Custom Pay-what-you-want min $49
CLOUD SYNC ADD-ONS (contextual — for users who ALREADY own Plus or a Lifetime
license. A pure infrastructure fee; NO Plus features re-sold.
NOT shown on the public /pricing grid — surfaced only in
/account/upgrade once the user already holds Plus features.)
$2/mo Sync 5 GB add-on 5 GB cloud sync, up to 3 devices
$8/mo Sync 20 GB add-on 20 GB + version history + E2E + 10 devices + priorityFeature matrix
| Feature | Free | Plus | Sync Starter | Sync Pro | Lifetime |
|---|---|---|---|---|---|
| Local app | |||||
| Quick-launch hotkey (rebindable) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create note from launcher query | ✓ | ✓ | ✓ | ✓ | ✓ |
| Recent notes | ✓ | ✓ | ✓ | ✓ | ✓ |
| Sticky Markdown editor | ✓ | ✓ | ✓ | ✓ | ✓ |
| Basic per-note theme color (3 presets) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Built-in utilities (calc, timer, color picker, clipboard) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Local Markdown / JSON storage | ✓ | ✓ | ✓ | ✓ | ✓ |
| ICS calendar sync | ✓ | ✓ | ✓ | ✓ | ✓ |
| Discord webhook | ✓ | ✓ | ✓ | ✓ | ✓ |
| Local plugins | ✓ | ✓ | ✓ | ✓ | ✓ |
| Paid unlock | |||||
| Multi-window notes (more than 1 sticky open) | – | ✓ | ✓ | ✓ | ✓ |
| Full color customization (custom hex + text color) | – | ✓ | ✓ | ✓ | ✓ |
| Always-on-top per note | – | ✓ | ✓ | ✓ | ✓ |
| Fade-on-blur per note | – | ✓ | ✓ | ✓ | ✓ |
| Cloud (monthly only) | |||||
| Cloud sync | – | – | 5 GB | 20 GB | – |
| End-to-end encryption | – | – | ✓ | ✓ | – |
| Version history (rollback) | – | – | – | ✓ | – |
| Multi-device licensing | 1 | 1 | 3 | 10 | 1 |
| Support | |||||
| Community Discord | ✓ | ✓ | ✓ | ✓ | ✓ |
| Priority support (24h response) | – | – | – | ✓ | – |
| Early access channel | – | ✓ | ✓ | ✓ | ✓ |
| Supporter badge in-app | – | – | – | – | ✓ |
Rationale
- Cloud sync is monthly only. Sync has ongoing infra cost (Supabase storage + bandwidth). A lifetime "sync forever" deal puts unbounded liability on the company. Lifetime tier is feature-unlock only.
- Pay-what-you-want lifetime with $49 minimum. $129 is a suggested anchor; users can enter any amount ≥ $49. Anchors generosity without forcing it.
- Plus at $1.99 is a low-friction unlock. The free tier is generous enough that Plus is genuinely optional, not crippleware.
- Sync Starter at $3.99 is the upsell path from Plus. 5 GB is enough for ~50k notes (text only) or several thousand notes with attachments. Bumped from 1 GB → 5 GB per the 2026-05-30 unit-economics analysis (
panels/pricing-unit-economics-2026-05-30/analysis.md) — 1 GB was unsellable next to Google Drive 100 GB at $1.99 and Obsidian Sync 10 GB at $4. - Sync Pro at $9.99 is the prosumer tier: 20 GB, version history, 10 devices, priority support. E2E encryption is shared with Sync Starter — it's the floor for any sync tier, not a Pro differentiator. Priced like Notion Plus / Bear Pro / Things.
- E2E encryption is standard for all sync tiers (technical: every chunk is client-encrypted before upload, the registry only sees ciphertext). The 2026-05-30 implementation made this the only practical model; the original "E2E for Sync Pro only" claim in the feature matrix was aspirational at write-time but didn't survive contact with the threat model. /security page reflects this.
- Free tier ships every local feature. The paid tiers exist for power-user surface (multi-window, custom colors) and cloud (sync, history, encryption). This is honest — no crippleware in the free tier.
Cloud sync add-ons (contextual SKUs)
Problem they solve — the "Lifetime Tax." A Lifetime Plus owner already owns the Plus paid-unlock features forever. The only way to get cloud sync, though, is a Sync tier (Starter/Pro) that bundles Plus — so they'd pay $1.99/mo for features they already bought. That's a goodwill burner for your most loyal buyers.
Fix — sell sync as a standalone infrastructure add-on, decoupled from the Plus bundle:
| Add-on | Price | Grants | = existing tier minus Plus |
|---|---|---|---|
sync_addon_5gb | $2.00/mo | 5 GB sync, 3 devices, E2E | Sync Starter ($3.99) − Plus ($1.99) |
sync_addon_20gb | $8.00/mo | 20 GB, version history, E2E, 10 devices, priority | Sync Pro ($9.99) − Plus ($1.99) |
Prices are derived, not arbitrary: each add-on is exactly the bundled sync tier minus the $1.99 Plus portion the owner already paid for. Honest by construction.
No Plus features in the add-on's features array. The buyer gets Plus
from their Lifetime/Plus license; the entitlement union (boolean OR across
active licenses) stacks the add-on's cloudSync/versionHistory on top. Sync
quota is the max sync_gb across active licenses. Both already implemented
(/me/entitlements, SyncQuotaBytes) — so the add-on needs no billing-logic
change, only catalog rows + two Stripe prices.
Visibility — contextual only. Add-ons carry marketing_group = 'addon' and
are excluded from the public /pricing grid. They surface only in
/account/upgrade, and only when the user already holds Plus or a Lifetime
license ("Add cloud sync to the license you own — no re-buying Plus"). New
visitors never see them, so the public funnel stays the simple 4-tier grid.
Who buys which:
- New user, wants sync → bundled Sync Starter/Pro (unchanged).
- Plus or Lifetime owner, wants sync → the matching add-on (no Plus re-sold).
Related: Plus → Lifetime redundancy (notify, don't auto-cancel)
If a user paying $1.99/mo Plus buys a Lifetime license (Plus forever), their
Plus subscription is now redundant. We do not auto-cancel it from a webhook
(a destructive billing action with refund/race edge cases). Instead the
dashboard detects has_lifetime && has_active_monthly_plus and shows a banner:
"You own Plus for life now — cancel your monthly Plus so you're not billed
again," linking to the Stripe portal. User stays in control; no destructive
backend logic.
Stripe price-id mapping
After creating the products in Stripe Dashboard (test mode first):
plus_monthly_v1 price_xxx $1.99/mo recurring
sync_starter_v1 price_xxx $3.99/mo recurring
sync_pro_v1 price_xxx $9.99/mo recurring
lifetime_plus_v1 price_xxx $49 one-time
lifetime_supporter_v1 price_xxx $129 one-time
lifetime_custom (no Stripe Price; Checkout uses unit_amount custom_amount)
sync_addon_5gb_v1 price_xxx $2.00/mo recurring (contextual add-on)
sync_addon_20gb_v1 price_xxx $8.00/mo recurring (contextual add-on)Paste each price_xxx into payment_products.stripe_price_id for the
matching row via the admin UI. lifetime_custom requires a custom
Stripe Checkout flow (Stripe supports it via price_data with
unit_amount at session creation).
What is NOT in the model
- AI features (none shipped)
- Plugin marketplace revenue share (plugin model is local-only today)
- Team / business plans (consumer product; revisit at 1000+ paid users)
- Educational discount (revisit Q4)
- Currency localization (USD only at launch; EU customers see USD)
Change log
- 2026-05-30 added contextual cloud-sync add-on SKUs (
sync_addon_5gb$2/mo,sync_addon_20gb$8/mo) to fix the "Lifetime Tax" — Lifetime/Plus owners can buy sync without re-paying for Plus. Add-ons are excluded from the public grid (marketing_group='addon'), surfaced only in /account/upgrade. No billing-logic change — relies on the existing entitlement union + max-quota resolver. Plus→Lifetime redundancy handled by a notify banner, not auto-cancel. - 2026-05-25 initial honest pricing established after Peach Note → QuickPeach Launchpad rebrand. Previous "Pro $9 with sync" tier was a hallucination (sync didn't exist); replaced with this 4-tier monthly + 3-tier lifetime model.