// Gig DossierWhenWe
// Brief
A privacy-first group scheduling app that shows couples, families and friend groups when everyone is free, without anyone sharing what is on their calendar. Each phone scrubs its calendar events down to busy start and end times before anything is uploaded; the server folds every member's busy blocks into a heatmap of who is free in each 30-minute slot and suggests the best times, and the group proposes, votes on and confirms a plan, while friends without the app RSVP from a web link. Built as a Bun monorepo: an Expo (React Native) app with an offline vote queue and live WebSocket updates, an Elysia API on MongoDB and Redis with passwordless email sign-in and rotating refresh tokens, and Next.js guest and admin sites, all built on one shared TypeScript package that holds the overlap engine, the bilingual English/Thai copy and the design tokens. Currently in pre-beta, running on Railway.
// Timeline
Accessibility — VoiceOver & TalkBack QA
NowSep 2026
Tested the app with real screen readers across English and Thai, light and dark, large text and reduced motion, fixing focus, keyboard and input issues as they surfaced.
Realtime — live updates over WebSockets
Sep 2026
Connected live plan updates on mobile over WebSockets, with jittered reconnects and a fresh socket before each token expires.
Circles — invite links & account deletion
Sep 2026
Added shareable invite links with member caps, and account deletion that hands circle ownership to the next member.
Design system — tokens, contrast maths & EN/TH
Sep 2026
Designed a token-driven light and dark theme with in-house WCAG contrast checks, shared by the app and both sites in English and Thai.
Plans — heatmap, votes & guest RSVP
Sep 2026
Built the free-time heatmap, plan proposals with suggested times, atomic votes that queue while offline, and a public guest page that shows vote counts, never names.
Deploy — Railway services & rotating sessions
Sep 2026
Deployed the API, guest site and admin to Railway from Dockerfiles, and added rotating refresh tokens that revoke a session when an old token is replayed.
Platform — API, guest site & mobile app
Sep 2026
Stood up the Elysia API with passwordless email codes, a Next.js guest site and admin console, and the Expo app that scrubs calendar events on the phone before upload.
Kickoff — Bun monorepo & overlap engine
Sep 2026
Set up a Bun workspaces monorepo around one shared TypeScript engine that merges every member's busy blocks into 30-minute free-time slices.