Startup BuildFlagship
Recallink · Core & Docs
Not a contacts app but a personal relationship CRM that remembers "what happened with this person." Web, app, and local DB all share the same model.
PersonalDuration 4wContribution 100%2026-03 → 2026-04
★Key Metric: Web, Android, and iOS share one 6-table model
Engineering Role
FullstackEnd-to-EndMobile

Startup Build
Recallink · Core & Docs
WEB
#Product#Mobile#Web#Personal
Overview
A personal network CRM that remembers conversations, meetings, follow-up actions, and relationship context. The web PWA, Android/iOS apps, local DB, and optional Supabase sync share one 6-table domain model with per-row LWW merge and a 30-day soft-delete purge.
My Work
- ▸Documented the SSoT: PRD, architecture ADRs, Supabase DDL/RLS, E2E scenarios
- ▸Implemented the 6-table schema consistently across web, Android, and iOS
- ▸Local-first design with full offline support
- ▸Designed the sync engine with per-row LWW merge and cursor pagination
- ▸Designed the business model: premium subscription, 14-day trial, local-only fallback
Features
- 6-table domain: Contact, ContactChannel, Log, Event, Attachment
- Triple storage: SQLite (mobile), IndexedDB (web), Supabase (optional cloud)
- Stripe subscription at $9.99/month or $79/year, 14-day trial
- Android Glance widgets / Share Sheet / system contacts sync
- iOS Quick Log, Feed, Upcoming, Settings
Highlights
- Local-first plus optional cloud sync
- Per-row LWW merge plus cursor pagination
- 30-day soft-delete purge
- Phase 1: full web routes, Stripe subscription, 100+ tests
- Android 8 Screen + Glance widgets (3 types)
Timeline
2026-03 → 2026-04
Role: Architect, solo developer
Contribution: 100%
Collaboration: Personal
Tech Stack
</>Local-first, KMP, optional Supabase sync
Markdown (SSoT)Kotlin MultiplatformNext.jsSupabaseStripe