Outcomes
- Google OAuth login flow working end-to-end
- Journal entries persisted in Supabase
- PWA installable on mobile with offline-capable shell
- Light and dark mode with theme persistence
- Deployed to Vercel with environment-based config
Problem
I needed a calm, mobile-first space to capture daily reflections and breathwork sessions — something faster than a notes app but more structured than scattered text files. The input was messy (quick thoughts, mood, session context); the output needed to be searchable, persistent, and always available on phone.
Goal
Build a installable PWA that feels native on mobile, authenticates users securely, and stores journal history in a real database — not localStorage.
System
Open PWA
Google OAuth
Create entry
Save to Supabase
Review history
Architecture
Next.js PWA
React UI + service worker
Supabase Auth
Google OAuth provider
Supabase DB
Journal entries table
Vercel
Edge deployment
Key features
Mobile-first UI
Designed for thumb reach and single-hand use on phone.
Google OAuth
Frictionless sign-in without managing passwords.
Theme switching
Light/dark modes with persisted preference.
PWA behaviour
Install prompt, manifest, and app-like shell.
Visual proof
Result
Raíz proves I can ship a full-stack mobile product solo: auth, database, deployment, and UX polish. It’s a real app people can install — not a prototype mockup.
What I’d improve next
- Push notifications for daily journal reminders
- Rich text / markdown in entries
- Export to PDF or Obsidian
- Improved offline sync conflict handling