Caso de estudo Espejo, por dentro
Quería un diario dixital onde ninguén puidese ler as miñas entradas. Nin o servidor, nin a base de datos, nin eu se perdo o contrasinal. Así naceu Espejo.
As apps de journaling presionan con rachas e gamificación. E ningunha ofrece privacidade real: as túas entradas viven en texto plano en servidores alleos.
Offline-first con sync opcional. O servidor nunca ve o contido.
- IndexedDB (Dexie) como fonte de verdade: funciona sen conexión
- Cifrado AES-256-GCM + PBKDF2 (310k iteracións) no cliente
- Supabase para sync opcional entre dispositivos (só blobs cifrados)
- Soft-delete + last-write-wins para resolución de conflitos
Deseñada desde a psicoloxía do benestar.
- Check-in emocional antes de escribir, menos fricción en días difíciles
- Modo contemplación: lectura inmersiva con tipografía serif
- Favoritos semánticos (claridade, semente, áncora, vitoria, cicatriz)
- Year in Review estilo Spotify Wrapped
- Nudges con prioridade: coidado > insight > celebración
- Next.js 16 (App Router) + React 19 + TypeScript
- TipTap (rich text), Tailwind 4, shadcn/ui (Radix)
- Vitest + Testing Library (unit) / Playwright (E2E)
- Vercel (deploy) + Sentry (errors) + CSP/HSTS headers
Cando a xente o usa de verdade, pensas o código doutra maneira.
Offline-first con E2EE non é trivial. Migrar esquemas en IndexedDB, resolver conflitos de sync sen ver os datos, xestionar a perda do contrasinal cando é a clave de cifrado. Cada problema obrígache a pensar máis alá do happy path.
Todo o anterior soa ben na teoría. Pero non tes que crerme — próbao ti mesmo.