Leaf
Changelog
Release notes and notable changes. Current version: v1.4.19
v1.3.2
Drop pages.dev redirect
- Removed legacy *.pages.dev → leaf.minttstudio.com redirect and CANONICAL_HOST (Pages project deleted).
v1.3.1
Security hardening and demo fixes
- Dropped HTTP `?rebuild=true` on /api/mrr and /api/installs — cache rebuild is CLI-only.
- Stopped redirecting *.workers.dev (route disabled).
- Demo Revenue blank page fixed (byApp field + demoMode threaded through dashboard loaders).
- Docs: security review, partner tenancy plan; removed Mantle Brain comparison; Pages → Workers wording.
v1.3.0
Demo mode and D1 cache size fix
- Same Worker serves mocked dashboards on leaf-demo.minttstudio.com (or DEMO_MODE=1 / npm run demo) — no second Worker.
- Demo uses static partner analytics; Settings and mutating APIs are read-only.
- Cache rebuild fits D1 (~900KB): monthly series capped at 36 months, top 6 plan series, no duplicate history fields.
- All-time Churn falls back to yearly bars when monthly history is capped.
v1.2.1
Cloudflare Workers deploy
- Deploy target is Cloudflare Workers (`npm run deploy`); Astro 7 no longer supports Pages.
- *.workers.dev redirects to leaf.minttstudio.com (same as *.pages.dev).
- tsconfig extends the Astro strict preset via an explicit path so the IDE resolves it.
v1.2.0
Subscriptions page, churn sources, and all-time history fixes
- Plans is now Subscriptions (/subscriptions) with an active-subscriptions trend; /plans redirects.
- Homepage Retention shows one churn card for the last complete month; Churn page adds “Where churn came from” (frozen, deactivated, store closed, uninstalled, billing lapse).
- Install sync fetches deactivated relationships, frozen charges, and uninstall reasons (Timescale migration 004 + Installs re-sync).
- Churn trend is monthly %; all-time spans from first sale (rebuild cache to load full history, including 2018+).
- All-time Revenue hides MRR movement and period deltas; Revenue card deltas omit the “vs …” label; ARR removed from Revenue for now.
- Astro 7 + Cloudflare adapter 14; env via cloudflare:workers.
v1.1.0
ARR, subscription churn, and SemVer minors
- Revenue shows ARR (Gross MRR × 12).
- Homepage Retention adds 7-day subscription churn rate (merchants lost ÷ prior active); revenue churn card is labeled separately.
- Churn page avg rate label clarified as subscription (merchant) churn.
- Releases follow SemVer: new features bump minor (this is 1.1.0); patches stay for fixes and polish.
v1.0.18
Leaf brand mark
- Replaced the sidebar “L” mark and favicons with a Leaf logo (emerald leaf on dark tile).
- Added npm run favicon to regenerate PNG/ICO assets from public/favicon.svg.
v1.0.17
Listing→install, LTV, ARPU trend, and per-app live metrics
- Homepage Growth pillar shows listing → install conversion (Traffic listing visitors ÷ Partner installs) when BigQuery traffic is available.
- Homepage Retention pillar shows LTV as ARPU ÷ monthly churn rate (zero when churn is unknown).
- Revenue page adds an ARPU headline card and trend chart; by-app breakdown includes per-app ARPU.
- App filter on revenue, installs, churn, plans, and conversion uses live SQL-scoped streams on large accounts instead of the limited-view banner.
- Listing→install conversion rate rounds to two decimal places.
v1.0.16
ARPU metric and paginated changelog
- Homepage Monetization pillar shows ARPU (Gross MRR ÷ active subscriptions), with a 7-day comparison delta after cache rebuild.
- Changelog page paginates releases (10 per page) with Previous / Next navigation.
v1.0.15
Incremental Traffic refresh
- Traffic Refresh no longer forces a full 90-day BigQuery scan — uses incremental updates (3-day overlap), 7-day breakdown refresh, and the 24h cooldown to limit query cost.