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
2026-01-24 20:16:01 +00:00
2025-12-30 15:54:34 +00:00
2025-12-27 19:10:11 +00:00

Sauci

Sauci is a couples connection product built as a full-stack npm/Turborepo workspace.

Applications

Path Surface
apps/mobile Expo React Native customer app
apps/admin Vite/React administration app
apps/web Next.js marketing and redemption app
apps/supabase database, auth, realtime, storage, and Edge Functions
apps/mcp authenticated internal MCP service
packages/shared shared TypeScript contracts

Bootstrap and run

Use Node 20.10.0 from .nvmrc, Docker-compatible containers, and tmux.

npm ci
scripts/dev-local.sh reset
scripts/dev-local.sh up

The launcher starts local Supabase, Edge Functions, web, admin, MCP, and Expo in one tmux session. See local stack documentation for ports, logs, native launch commands, and troubleshooting.

Verify

npm run verify:fast  # lint, typecheck, unit/contract tests
npm run verify:full  # fast checks, builds, Supabase integration
npm run verify:e2e   # running-stack Playwright journeys
npm run verify       # complete pre-PR gate

Native black-box flows use npm run test:mobile:e2e. Pull requests run static and full-stack gates and retain browser traces/screenshots/videos on failure.

Agent harness

Start with AGENTS.md and the documentation index. Task/risk agent routing lives in docs/agents/routing.md, repository skills live under .codex/skills, and verified lessons follow the learning promotion lifecycle.

Database schema changes must use committed files in apps/supabase/migrations. Remote migration tools and DDL through MCP SQL execution are forbidden.

S
Description
No description provided
Readme
73 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 79.3%
Python 7.6%
PLpgSQL 6.2%
HTML 2.8%
JavaScript 1.5%
Other 2.3%