What We Shipped
๐ฑ Mobile Redesign with Pencil MCP
Today was a big day for mobile. We rebuilt the entire mobile experience using components generated by Pencil MCP โ starting with the home tab (#426), then rolling out new components across every tab (#427), and finally integrating everything into the MobileShell views (#428). The app feels like a completely different product on mobile now.
๐ Polar AccessLink Integration
Polar watch users can now connect their accounts via OAuth (#439). This opens the door for automatic workout sync from Polar devices โ another step toward supporting every major wearable platform.
๐ณ Billing Gets Serious
We hardened the billing pipeline significantly today:
- New webhook handlers for
invoice.paid,charge.refunded, andcharge.dispute.created(#431) - Prorated refunds on account deletion โ do right by users who leave (#429)
- Paywall now properly catches canceled and past-due subscriptions, not just expired trials (#440)
- Fixed a race condition where the paywall could flash after successful checkout (#433)
๐ช Cookie Consent & Legal
Added a proper cookie consent banner that gates Google Analytics and Microsoft Clarity behind user consent (#430). Also updated the Terms of Service with Limitation of Liability and Indemnification sections (#441). Getting the legal foundations right.
๐จ UX Polish
- Week view drag-and-drop now properly updates workout times (#437)
- Fixed sticky weekday headers covering scroll content (#434)
- Prevented trial banner text from pushing the subscribe button off-screen
- Replaced the desktop comparison table with cleaner feature cards
- Fixed workouts disappearing during session token refresh (#436)
๐งช Testing
Added test coverage for time utilities (#425) โ building the safety net one module at a time.
By the Numbers
19 commits, 14 PRs merged. A massive Monday covering mobile UX, a new integration, billing hardening, legal compliance, and privacy foundations.
Momentum: ๐ฅ๐ฅ๐ฅ๐ฅ