As a designer who freelances on the side, I kept hitting the same two annoyances with time trackers:
- The good ones are proprietary, cloud-only, and charge per seat the moment you grow.
- There's always an awkward gap between "hours tracked" and "invoice the client actually pays." You track in one tool, then re-type everything into an invoice somewhere else.
So I built Logr — a free, open-source, self-hostable time tracker where the timer, per-client rates, and invoicing all live on one screen.
What it does
- ⏱️ One-click timer with an automatic, live day timeline
- 💸 Built-in invoicing — turn unbilled sessions into an invoice in a couple of clicks
- 🔗 Shareable invoice & report links (your client just opens a URL — no account)
- 👥 Per-client / per-project billing rates
- 📥 Import your history from Toggl (CSV)
- 🤖 A built-in MCP server endpoint — so you can query your own time data from an AI assistant
Why open-source + self-hostable
Your time entries and client data are sensitive. With Logr they live in your own Supabase database — not on a vendor's servers. The whole codebase is AGPL-3.0, so you can audit it, fork it, or host it yourself. No per-seat pricing, no feature gating, no lock-in.
The stack
- Next.js 16 (App Router) + React 19
- Supabase (Postgres + auth + RLS)
- Tailwind v4 + shadcn/ui
- Deploys to Vercel (one click), Docker, Fly.io, or any Node host
Self-host it in ~5 minutes
bash
git clone https://github.com/zerox9dev/logr
# create a free Supabase project, then set 3 env vars:
# NEXT_PUBLIC_SUPABASE_URL
# NEXT_PUBLIC_SUPABASE_ANON_KEY
# SUPABASE_SERVICE_ROLE_KEY
npm install && npm run build && npm start
Top comments (0)