Problem
Freelancers manage project status, time logs, and invoicing across disconnected spreadsheets and apps. Context switching compounds with every client, and rounding errors in time tracking silently erode billable revenue.
Approach
- — Unified dashboard: executive overview, project directory, live timer, and invoice generation in one split-pane workspace.
- — Supabase Auth with row-level security isolating each user's business data at the database layer.
- — High-fidelity live timer logging precise fractional hours instead of rounded blocks.
- — Status-driven invoice automation from tracked time entries.
- — PostHog analytics integration for business performance visibility.
- — Playwright E2E tests in CI/CD covering authentication and database connectivity.
Outcome
- Single interface covers project inception through final billing.
- Core workflow (projects, time, invoices) integrated with split-pane design system.
- Automated CI/CD pipeline stabilised with Playwright for critical paths.
- RLS enforces data isolation without application-layer permission logic.
Metrics
- Core modules
- 4
- Overview, projects, time, invoices
- Time precision
- Fractional
- No rounding on billable hours
- Auth
- RLS
- PostgreSQL row-level security
- Testing
- Playwright
- E2E CI/CD on critical paths
Architecture
Trade-offs
Backend
Chosen
Supabase (Postgres + Auth)
Alternative
Custom Express API + JWT auth
RLS eliminates an entire class of authorization bugs. Built-in auth and migrations keep the solo-developer stack lean.
UI layout
Chosen
Split-pane dense workspace
Alternative
Card-based layout with modals
Freelancers scan status and revenue quickly. A split-pane surfaces projects, time, and invoices without navigation overhead.
Deployment
Chosen
Vercel + Supabase
Alternative
Self-hosted infrastructure
Zero-ops deployment for a solo freelancer tool. Rapid iteration without managing servers or database backups.
Next project
0%