spin0 portfolio
Purposeful Daily Routine
A simple routine app designed to bring structure and rhythm to my days
Open the app
App features
- Supports both a local mode and an optional login mode for syncing routines across devices.
- Lets users add daily routine items with optional time and duration.
- Displays a weekly calendar strip to visualize progress throughout the week.
- Offers a simple, uncluttered interface with seasonal background themes.
- Includes a playful action button to make daily tracking feel lighter and more enjoyable.
Tech Stack
- Frontend: Vite, React, TypeScript
- Storage: Supabase, LocalStorage
- Deployment: Vercel
Motivation
- During a period when weekdays and weekends felt indistinguishable, I wanted a gentle way to regain a sense of rhythm.
- I needed something calm and intentional — not a task manager, not a habit tracker, just a simple daily flow.
Early exploration
- I looked for existing apps, but Google Tasks and other schedulers didn’t match what I needed.
- Most similar apps on the Play Store were cluttered with ads.
- I realized I needed to build something quiet and supportive, without notifications or pressure.
Prototyping
- Started with a minimal data model: a list of routine sections, each with a title and optional times and duration.
- Designed the layout mobile‑first, since the app is meant to be checked throughout the day.
- Added a weekly calendar strip to show the day of the week and how far the week had progressed.
- Built the first version entirely in local mode to keep the workflow simple.
Development process
- Built with Vite + React for a lightweight, responsive experience.
- Added sign‑in and Supabase sync to keep data consistent between desktop and mobile.
- Added seasonal themes with subtle wallpapers and a themed Add button.

Challenges
- Troubleshooting Supabase took time — from schema adjustments to row‑level security rules to syncing logic.
- Implementing the weekly calendar required several iterations with different calendar libraries.
- Balancing simplicity with convenience: keeping the app minimal while still making it cheerful and useful.
What I learned
- How to integrate Supabase for cross‑device sync while keeping the local‑only mode simple and reliable.
- How to design a mobile‑first layout that still scales gracefully to desktop.
Future enhancements
- A smoother way to reorder routine sections (currently reordering happens implicitly by time).
- While the app isn’t meant to be a habit tracker, I’m exploring a lightweight weekly view to show how consistently the routine is followed.