Commit Graph
19 Commits
Author SHA1 Message Date
jjbrunton 0f9c9c2e15 fix(acquisition): use recognized privacy markers 2026-09-06 13:24:39 +01:00
jjbrunton 4a57f31615 fix(acquisition): close invite privacy gaps 2026-09-06 13:18:11 +01:00
jjbrunton dd1a47ecfa fix(web): scrub invite tokens before analytics 2026-09-06 12:49:32 +01:00
jjbrunton 49a9cd270f fix(web): clarify open answer visibility 2026-09-06 12:47:29 +01:00
jjbrunton ade2c42d51 fix(web): redact invite analytics URLs 2026-09-06 12:45:28 +01:00
jjbrunton ff2cf09170 feat(web): improve invite landing recovery 2026-09-06 12:31:48 +01:00
jjbrunton 02aa6e4a75 security(web): upgrade Next to 15.5.24 2026-08-30 21:14:33 +01:00
jjbruntonandClaude Fable 5 d48b44baa8 feat(invite-funnel): add web join page and mobile deep-link hand-off
Adds a shareable https://sauci.app/join/{code} link as an alternative to
manually typing an 8-character invite code:

- apps/web: /join/[code] page that validates the code shape client-side,
  attempts the app.sauci:// scheme link, and falls back to a large code
  display with copy button plus App Store/Play Store links; PostHog events
  for page view, code copy, and store-button clicks.
- apps/web: apple-app-site-association and assetlinks.json under
  /.well-known so iOS Universal Links and Android App Links can verify
  sauci.app for /join/*. The Android release cert SHA-256 fingerprint is a
  placeholder pending the real value.
- apps/mobile: associated domains (iOS) and an intent filter (Android) for
  https://sauci.app/join/*, alongside the existing app.sauci scheme.
- apps/mobile: parse incoming join links, pre-fill and highlight the code on
  the pairing screen, stash the code for signed-out/mid-onboarding users and
  apply it once they reach pairing, and offer a once-per-session clipboard
  hand-off that is never auto-applied.
- apps/mobile: share message now leads with the join link, keeping the raw
  code visible as a fallback.
- Analytics: invite_link_opened, pairing_code_prefilled (mobile);
  join_page_viewed, join_page_code_copied, join_page_store_button_clicked
  (web).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 17:58:43 +01:00
jjbrunton 9514835bf2 fix(web): add account deletion page 2026-08-30 16:07:19 +01:00
jjbrunton be20391788 Merge remote-tracking branch 'origin/master' into task/self-hosted-backend
# Conflicts:
#	apps/mobile/app/(app)/onboarding.tsx
#	apps/mobile/src/__tests__/stores/packsStore.test.ts
#	apps/mobile/src/features/profile/hooks/useProfileSettings.ts
#	apps/mobile/src/store/packsStore.ts
2026-08-28 14:44:51 +01:00
jjbrunton 006761d3b0 feat(backend): add standalone data plane
Replace the Supabase application data plane with the Node/PostgreSQL API, migrate mobile, admin, web, and MCP callers, add controlled cutover tooling, and define hardened Dokploy infrastructure.
2026-08-28 14:42:11 +01:00
jjbrunton b43804d8fd fix(redemption): show custom validation error 2026-08-27 22:57:27 +01:00
jjbruntonandClaude Opus 4.5 a6b3b6a251 Reposition app as relationship improvement tool
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:30:42 +00:00
jjbrunton 1f0201ec5f Improve web landing page design and UX
- Add FAQ section with accordion-style questions
- Enhance hero with stronger copy and App Store badge
- Add hover animations to features and phone mockups
- Add pricing display (£4.99/month) to Pro section
- Add step icons to How It Works section
- Improve accessibility with focus states and reduced-motion
- Add exit animation to mobile navigation menu

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-06 18:43:07 +00:00
Jamie Brunton e7379ccdb1 Update 2025-12-31 12:28:26 +00:00
Jamie Brunton d1a2032724 Update 2025-12-30 23:08:41 +00:00
Jamie Brunton cdbe08ad84 Update 2025-12-30 22:30:50 +00:00
Jamie Brunton 0f229211ea update 2025-12-30 22:18:12 +00:00
Jamie Brunton 1b3f1d9409 Update 2025-12-30 20:48:14 +00:00