2025Full-Stack Developer
Time Tracker
Productivity timer with gamified tree-planting and a GitHub-style contribution graph.
A full-stack time tracking app built on a Turborepo monorepo. React + Vite frontend, Bun + Hono backend, and PostgreSQL with Drizzle ORM. Track sessions, plant a tree per tracked hour, and visualise your consistency via a contribution heatmap.
Case Study
Challenge
Most time trackers feel like spreadsheets — start, stop, log, repeat. Nothing about the experience makes you want to come back the next day.
Approach
Built a monorepo with a React/Vite frontend and a Bun + Hono API backed by Drizzle and PostgreSQL. Added gamification (plant a tree per hour) and GitHub-style contribution graphs so consistency becomes visible at a glance.
Impact
- Daily, weekly, and monthly calendar views with contribution heatmap.
- Bun-native password hashing + JWT auth — no bcrypt dependency.
- Shared TypeScript types across the monorepo via a packages/shared workspace.
Learnings
- Drizzle's type-safe query builder is a cleaner mental model than Prisma's generated client for small schemas.
- Turborepo caching cut dev startup time significantly once shared packages stabilised.
