You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: raise Patterns Pro to $39.99 across the site and store assets
The rise was scheduled for 15 August 2026 and did not go through. It was
applied manually in App Store Connect on 16 August and confirmed live on a
device reading the real storefront, so the copy now states $39.99 as the
current price rather than announcing it as upcoming.
The app needs no change for this. It renders whatever StoreKit returns, so
existing installs pick the new price up on their next launch with no build,
no update and no review. Only hand-written copy could go stale, which is
what this commit fixes:
- JSON-LD priceSpecification and the FAQ answer, both of which feed
structured data that search engines repeat back as the current price
- the roadmap card, moved out of "Almost ready" now that it has shipped
- the pricing paragraph in the between-therapy-sessions post
- the Pro value card in the App Store screenshot source
The FAQ now says $39.99 in the US with local pricing elsewhere, because
Apple generates the other storefronts from the US base and they are not all
equivalents.
copy-guards.test.ts is inverted to match: it required $14.99 and required
$39.99 be described as upcoming, and now asserts the opposite and that the
retired figure appears nowhere quotable. PUBLISHING_GUIDE.md records the
switch-over procedure, the two traps that made this hard to verify (a local
Patterns.storekit masks the live price, and flutter run does not apply the
scheme's StoreKit config), and why Pro stays a one-time purchase.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
-**Patterns Pro:** US$14.99 one-time purchase through August/September 2026.
70
-
-**Planned price:** US$19.99 one-time purchase after the introductory period.
71
-
- Present US$14.99 as the current price, not as a guaranteed permanent or discounted price, unless a formal store promotion is configured.
69
+
-**Patterns Pro (iOS, Android):****US$39.99** one-time purchase, with local pricing elsewhere (Apple generates those from the US base price, so they are not all $39.99 equivalents). Raised from US$14.99 on 16 August 2026. The rise was first scheduled for 15 August 2026 and did not go through; it was applied manually the next day.
70
+
-**Patterns Desktop Pro (macOS, Windows, Linux):** US$9.99 one-time licence via Lemon Squeezy. Unchanged.
71
+
- Pro is a **one-time purchase and stays one**. There is no subscription, and no annual plan. Do not describe it as one anywhere.
72
+
- Present the price that is actually being charged right now, which is US$39.99. Do not quote US$14.99 anywhere, and never announce a future price change with a date attached. A date the store has not honoured reads as though the rise already happened, and dangles a deadline discount nobody can take.
73
+
- Existing Pro owners keep their access and are never charged again. Say so wherever the new price is mentioned.
74
+
75
+
#### How the rise to US$39.99 is made
76
+
The product ID **`com.maskedsyntax.patterns.pro` never changes**. It is a
77
+
non-consumable, so raising its price does not affect anyone who already owns it:
78
+
neither store re-charges for a non-consumable, and restore keeps returning it.
79
+
80
+
- Apply the price change to the existing product in **App Store Connect** and **Google Play Console**.
81
+
-**Never** delete, deactivate or rename the product. That is the one action that would strand every existing purchaser, because restore would stop returning it.
82
+
- No new in-app product is created. There is nothing to migrate.
83
+
-**Pro stays a one-time purchase.** No subscription tier, annual or otherwise. This was reconsidered and rejected on 16 August 2026: "never a subscription" is stated in the app paywall, four pages of the site and four blog posts, and `website/src/lib/data/copy-guards.test.ts` fails the build on any per-year price string. Adding one would cost more in trust than it returns.
84
+
85
+
#### Switching the copy over (done 16 August 2026)
86
+
Completed for the rise to US$39.99. Kept as the procedure for any future change.
87
+
Do not run it until the paywall shows the new price on a device with **no local
88
+
StoreKit config**, which is the only check that reads the real storefront. A
89
+
simulator using `ios/Patterns.storekit` shows that file's price regardless of
90
+
the live storefront, so it proves nothing. `flutter run` does not apply the
91
+
scheme's StoreKit config either, because it installs via simctl.
92
+
93
+
1.`website/src/routes/+page.svelte` - the JSON-LD `priceSpecification.price`. This is the figure search engines repeat, so it goes stale most visibly.
94
+
2.`website/src/lib/data/faq.ts` - the cost answer. Also feeds FAQPage structured data.
95
+
3.`website/src/routes/roadmap/+page.svelte` - move the pricing card between columns so it is not still sitting in "Almost ready" after it has shipped.
96
+
4.`website/src/content/blog/between-therapy-sessions.md` - the pricing paragraph.
97
+
5. This file: the two Pricing bullets above.
98
+
6.`website/src/lib/data/copy-guards.test.ts` - invert the date-sensitive guards so they assert the new price is current and the old figure appears nowhere. They are written to fail while the copy is stale, which is the point; update them last so they gate the rest.
99
+
100
+
The site is a deploy, not a release. It does not wait for App Review, and it
101
+
must not be held back to ship alongside an app update: that would leave the site
102
+
quoting a price lower than the store actually charges for the length of a review
103
+
cycle. Deploy it as soon as the live price is confirmed.
Copy file name to clipboardExpand all lines: website/src/content/blog/between-therapy-sessions.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,7 +114,7 @@ Proper OCD treatment is not equally available to everyone. Therapy is expensive
114
114
115
115
Entries stay on the device. No account, no sign-up wall, nothing sent to a server for the app to be useful. I made that decision for myself first, because I knew I would not write honestly otherwise.
116
116
117
-
On price: the core features are free. Pro is a one-time purchase with lifetime access, $14.99 through the launch period and $39.99 from 15 August 2026, still one time, still lifetime. There is no subscription and there is not going to be one. If you already own Pro, nothing changes and you are never charged again.
117
+
On price: the core features are free. Pro is a one-time purchase with lifetime access, $39.99, one payment, kept for good. There is no subscription and there is not going to be one. If you already own Pro, nothing changes and you are never charged again.
118
118
119
119
The reasoning is not complicated. I wanted the basic tools to stay accessible without another monthly bill attached to someone's recovery, and I wanted Pro to stay a single payment, because I know how it feels when every useful mental health tool turns into a recurring charge. Pro is what funds continuing to build the thing.
'Patterns is free to download, and the journal, the OCD log, the Y-BOCS self-check, guided ERP, the compulsion delay tool, and the emergency toolkit are all free with no time limit. Patterns Pro is an optional one-time unlock for the deeper ERP tools: exposure ladders, exposure materials, urge surfing, response prevention, structured programs, and the extra insights. Pro is currently $14.99 on iPhone and Android, and rises to $19.99 when the next update lands. If you buy it before then you keep it at the lower price and are never charged again. One payment, no subscription, nothing to renew. Patterns is open source, and optional tips and GitHub Sponsors are there if you would like to contribute beyond that.'
46
+
'Patterns is free to download, and the journal, the OCD log, the Y-BOCS self-check, guided ERP, the compulsion delay tool, and the emergency toolkit are all free with no time limit. Patterns Pro is an optional one-time unlock for the deeper ERP tools: exposure ladders, exposure materials, urge surfing, response prevention, structured programs, and the extra insights. Pro is $39.99 in the US on iPhone and Android, with local pricing elsewhere. It is one payment, never a subscription and nothing to renew. If you already own Pro, nothing changes and you are never charged again. Patterns is open source, and optional tips and GitHub Sponsors are there if you would like to contribute beyond that.'
Copy file name to clipboardExpand all lines: website/src/routes/roadmap/+page.svelte
+6-6Lines changed: 6 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -59,6 +59,11 @@
59
59
icon: Eraser,
60
60
title: 'Clearing a day you wrote by mistake',
61
61
body: 'If an entry went onto the wrong date, open that day, tap the bin, and confirm. The day goes blank again and nothing else is touched.'
62
+
},
63
+
{
64
+
icon: Crown,
65
+
title: 'What Pro costs',
66
+
body: 'Pro is now $39.99 in the US, with local pricing elsewhere. Still one payment, still lifetime, still no subscription. If you already own Pro, nothing changes and you pay nothing again.'
62
67
}
63
68
];
64
69
@@ -122,12 +127,7 @@
122
127
icon: HeartHandshake,
123
128
title: 'Kinder wording when something is missing',
124
129
body: 'A pass over every screen that can stop you saving, so the message reads like a nudge rather than a telling-off. Nobody needs that from an app about OCD.'
125
-
},
126
-
{
127
-
icon: Crown,
128
-
title: 'What Pro costs from the next update',
129
-
body: 'Pro on your phone moves to $19.99, paid once. If you already own Pro, nothing changes and you pay nothing again.'
0 commit comments