Startup Build
Recallink · macOS Menubar
Recallink's read-only macOS companion: one click on the menu bar shows only the people who are due for a reconnect — same cloud data, same rlkenc:v1 encryption as web and mobile.
PersonalDuration 3wContribution 100%2026-07 → 2026-08
★Key Metric: Read-only · zero cloud writes · the web encryption recipe verified against a shared fixture
Engineering Role
FrontendEnd-to-End
Startup Build
Recallink · macOS Menubar
WEB
#Product#Frontend#Personal#Tauri 2
Overview
The PWA is the full desktop experience; this is the glanceable surface that is always one click away. A Tauri 2 tray + WKWebView popover (360×480) with no Dock icon, Google sign-in that finishes in the system browser and returns the PKCE code through a recallink:// deep link, and a sync passphrase asked once per run with the AES key derived in memory only. The app never writes to the cloud.
My Work
- ▸Tauri 2 Rust tray (Accessory policy) + deep-link and single-instance plugins
- ▸Cloud scans bounded by immutable-id keyset pagination and a decryption work cap
- ▸Latest-only single-flight refresh · decrypt-error classes · unlock probe
- ▸CSP pinned to self + *.supabase.co · brand v4.1 icon set
Features
- Tray `RL` click toggles the popover; it hides when it loses focus
- Tray due-count badge · last-refreshed time
- System-browser Google sign-in → recallink://auth/callback PKCE exchange
- Cancellable sign-in wait — Cancel/Retry · copy link · 45-second timeout
- "Today" computed in the user's pinned timezone
Highlights
- Web Today panel's reconnectDueList logic ported 1:1 — rows deep-link into the web app
- PBKDF2-SHA256/250k → AES-256-GCM, wire-identical with web · cross-platform fixture test
- Passphrase never stored — the key lives in memory and dies with the app
- Visibility, manual, and 15-minute tray refreshes coalesce per unlocked vault
- Fails closed above 100,000 contacts or 250,000 candidate links — no unbounded scans
Timeline
2026-07 → 2026-08
Role: Desktop, solo
Contribution: 100%
Collaboration: Personal
Tech Stack
</>Tauri 2 · React 19 · supabase-js · rlkenc:v1
Tauri 2RustReact 19TypeScriptVitesupabase-jsWeb Crypto (AES-256-GCM)Vitest