quickpeach

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_products seed, 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 + priority

Feature matrix

FeatureFreePlusSync StarterSync ProLifetime
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 sync5 GB20 GB
End-to-end encryption
Version history (rollback)
Multi-device licensing113101
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-onPriceGrants= existing tier minus Plus
sync_addon_5gb$2.00/mo5 GB sync, 3 devices, E2ESync Starter ($3.99) − Plus ($1.99)
sync_addon_20gb$8.00/mo20 GB, version history, E2E, 10 devices, prioritySync 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).

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.

On this page