Commit Graph

101 Commits

Author SHA1 Message Date
Timo
e3a28b0a1c feat(billing): add weekly_pro subscription plan
Adds a 2.99 EUR/week plan with a 3-day free trial alongside the existing
monthly and yearly subscriptions.

Backend: weekly_pro joins the supported subscription products, the
available product list and the Discord sales label. No schema change --
weekly Pro grants the same 100 credits per calendar month as monthly Pro,
so no column is needed to tell the two apart.

Paywall: weekly and yearly are the two prominent cards, monthly is a
selectable row below them. Weekly is preselected. Cards only render when
their RevenueCat package exists, and the selection falls back to a
visible plan so the CTA can never buy a product that is not loaded.

Trial eligibility: checkTrialOrIntroductoryPriceEligibility now gates the
trial copy. Apple grants one intro offer per subscription group, so with
two trial products a second free-trial promise would otherwise be shown
to users who get charged immediately. Anything but a clear ELIGIBLE is
treated as no trial, as the RevenueCat SDK recommends.

Analytics: trial_started previously fired on every subscription purchase,
including monthly which never had a trial. It now fires only for products
that actually carry one. paywall_viewed distinguishes trial_enabled from
trial_eligible and reports selected_plan.

Tests: 9 new cases covering the entitlement path, credits, renewal period
and trial allowance.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 12:50:38 +02:00
5da8027b68 args umami 2026-08-09 05:01:01 -05:00
2708c04b59 umami 2026-08-09 04:39:17 -05:00
f525e79d22 umami 2026-08-09 04:31:00 -05:00
6071561ba4 feat(blog): resolve SEO cannibalization, update blog posts & clean up dev posts 2026-08-05 21:52:53 +02:00
cf05e60251 SEO blogpost 2026-08-05 19:39:22 +02:00
d7432fa65c Extension 2026-08-03 11:37:20 +02:00
c79e7b59ff Add developer tools page and secure guest scans 2026-08-02 00:10:51 +02:00
c9e776ae98 Press 2026-07-30 10:03:37 +02:00
018b751723 App copy 2026-07-27 16:42:04 +02:00
45a7704ea6 seo: sharpen title tags, meta descriptions and H1s for CTR 2026-07-27 11:48:15 +02:00
50c0f33dd7 verbesserte Copy 2026-07-26 23:16:29 +02:00
c7c1864fc6 Share funktion 2026-07-16 17:13:37 +02:00
52c9dfb472 Onboarding 2026-07-16 17:09:00 +02:00
5c09c50af9 TikTok V6 2026-07-13 18:52:14 +02:00
9ebe223873 Index Now 2026-07-13 15:13:03 +02:00
Timo
7c210524a9 Support authenticated GreenLens TikTok video uploads 2026-07-13 11:58:12 +02:00
eb6f5f2200 Download ping V1 2026-07-13 00:17:45 +02:00
824ad69bf2 Download ping 2026-07-13 00:03:28 +02:00
b9fd72d150 Bild Carousel V3 2026-07-12 12:31:51 +02:00
3dfed67539 TikTok V6 2026-07-11 22:34:31 +02:00
438b3dff7b TikTok V5 2026-07-11 22:04:38 +02:00
4fc7d332eb SEO V2 2026-07-10 21:53:30 +02:00
53bac4e2b4 SEO 2026-07-10 13:27:29 +02:00
5c48def4e1 TTikotok V4 2026-07-10 11:29:04 +02:00
1a9548cf25 TTikotok V3 2026-07-09 18:18:53 +02:00
d81938060b Bild Carousel V2 2026-07-09 17:03:49 +02:00
1a7ebdc3b6 Bild Carousel 2026-07-09 16:45:02 +02:00
9be9b2987b TTikotok 2026-07-08 22:07:59 +02:00
0b2305a3ad chore: remove .env from git tracking 2026-07-08 19:14:47 +02:00
cc28a157d4 TikTok api 2026-07-08 19:03:35 +02:00
6b57a2acfc Onboarding flow 2026-07-06 22:25:52 +02:00
99cd885833 Testflight 2026-07-06 15:33:53 +02:00
Timo Knuth
673ead2e3a feat(app): finish onboarding auth flow 2026-07-06 14:32:20 +02:00
Timo Knuth
a1a3367ce4 feat(app): Stitch question screens with shared layout, pre-auth answer buffering
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:04:48 +02:00
Timo Knuth
58b4ad9314 feat(app): personalizing progress screen, auto-advances to paywall
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:00:45 +02:00
Timo Knuth
3bad23c258 feat(app): benefit slides with native overlays
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:00:41 +02:00
Timo Knuth
3675f573e1 feat(app): Stitch welcome screen with social proof
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:51:26 +02:00
Timo Knuth
c24544a1b7 feat(app): buffer onboarding answers before auth, flush to profile after sign-up/login
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:50:22 +02:00
Timo Knuth
84624e50cf fix(app): free-tier billing management view, loading guard, dead paywall code cleanup
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:47:56 +02:00
Timo Knuth
91dddc5137 fix(app): restore tappable Privacy/Terms links on paywall
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:34:20 +02:00
Timo Knuth
30a2537eaa feat(app): Stitch paywall — single plan card with free-trial toggle
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:31:37 +02:00
Timo Knuth
b2dbd3e652 feat(app): paywall is param-driven and dismissible; onboarding context routes X to sign-up
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:31:02 +02:00
Timo Knuth
88b12aeb00 fix(app): review fixes — billing-unknown pre-check, free-user top-ups, pro out-of-credits copy
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:19:15 +02:00
Timo Knuth
4ddf16ed20 feat(app): scanner uses real credits for free users, demo mode only for guests
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:08:46 +02:00
Timo Knuth
396477660b feat(app): out-of-credits bottom sheet (Stitch design)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:06:40 +02:00
Timo Knuth
6e6041bb5b feat(app): remove hard-paywall redirect — signed-in free users reach the app
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:05:25 +02:00
Timo Knuth
eda0ac98d9 fix(server): pre-check credit balance before health-check AI analysis
The health-check endpoint runs the paid OpenAI analysis before charging
(failed analyses are intentionally not charged). Without a balance
pre-check, a user below HEALTH_CHECK_COST could trigger unlimited free
analyses with fresh idempotency keys.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:02:36 +02:00
Timo Knuth
3fea520317 fix(server): make npm test work on Windows (bare node --test)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 12:40:51 +02:00
Timo Knuth
e36628d49d feat(server): remove hard paywall — credits gate scans, guests stay blocked, free tier gets pro model
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 12:38:12 +02:00