32 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
cf05e60251 SEO blogpost 2026-08-05 19:39:22 +02:00
c79e7b59ff Add developer tools page and secure guest scans 2026-08-02 00:10:51 +02:00
018b751723 App copy 2026-07-27 16:42:04 +02:00
c7c1864fc6 Share funktion 2026-07-16 17:13:37 +02:00
5c09c50af9 TikTok V6 2026-07-13 18:52:14 +02:00
Timo
7c210524a9 Support authenticated GreenLens TikTok video uploads 2026-07-13 11:58:12 +02:00
824ad69bf2 Download ping 2026-07-13 00:03:28 +02:00
438b3dff7b TikTok V5 2026-07-11 22:04:38 +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
3ebcc94349 feat(server): free tier with 3 monthly credits
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 12:37:33 +02:00
Timo Knuth
4b79bbcbc9 test(server): add node --test harness with failing free-tier billing tests
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 12:37:11 +02:00
538344ca0c Kalibrierte Scan-Confidence + Cross-Model-Bonus 2026-07-05 20:00:45 +02:00
c40531b6ae Bug fixes 2026-07-05 17:52:43 +02:00
41327f9557 Fehler webhook discod 2026-07-02 23:28:30 +02:00
3505bc149d Webhook Discord 2026-07-02 18:38:04 +02:00
34fe0b461e TikTok api 2026-07-02 13:10:19 +02:00
9386ae1be7 Onboarding 2026-05-08 13:00:30 +02:00
d37b49f1f6 Harte Paywall 2026-04-29 21:17:49 +02:00
86631a9bc0 Hard paywall 2026-04-28 20:35:53 +02:00
77b98a3ebf Not a Plant Fehlermeldung 2026-04-17 13:12:36 +02:00
8a9533c520 feat: implement plant identification result card component and initialize backend server infrastructure 2026-04-08 22:13:36 +02:00
09078c3c20 feat: implement plant health check functionality with AI analysis, credit management, and UI integration 2026-04-08 21:27:50 +02:00
8d90d97182 feat: initialize project with docker-compose infrastructure and server application logic 2026-04-08 00:11:24 +02:00
1b40f1eb1b feat: implement billing and subscription management screen with RevenueCat integration 2026-04-04 21:33:51 +02:00
363f5f60d1 feat: implement billing system with credit tracking and RevenueCat integration 2026-04-04 12:15:16 +02:00
439f5a44c9 feat: implement billing account management and cycle synchronization logic with accompanying tests 2026-04-03 22:26:58 +02:00
c13eb331be feat: add data privacy settings screen and initialize backend service infrastructure 2026-04-03 19:41:04 +02:00
08483c7075 Slefhostet und postgres 2026-04-02 11:39:57 +02:00
b1c99893a6 Launch 2026-03-29 10:26:38 -05:00
Timo Knuth
05d4f6e78b Initial commit for Greenlens 2026-03-16 21:31:46 +01:00
Timo Knuth
98e5bfbafd fix: add auth endpoints to server, fix auth bypass and registration
- server/: commit server code for the first time (was untracked)
  - POST /auth/signup and /auth/login endpoints now deployed
  - GET /v1/billing/summary now verifies user exists in auth_users
    (prevents stale JWTs from bypassing auth → fixes empty dashboard)
- app/_layout.tsx: dual-marker install check (SQLite + SecureStore)
  to detect fresh installs reliably on Android
- app/auth/login.tsx, signup.tsx: replace Ionicons leaf logo with
  actual app icon image (assets/icon.png)
- services/authService.ts: log HTTP status + server message on auth errors

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 11:08:32 +01:00