DEV Community

Cover image for I built an open-source, self-hostable Toggl alternative with built-in invoicing
meghost
meghost

Posted on

I built an open-source, self-hostable Toggl alternative with built-in invoicing

As a designer who freelances on the side, I kept hitting the same two annoyances with time trackers:

  1. The good ones are proprietary, cloud-only, and charge per seat the moment you grow.
  2. 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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)