{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreigdpqxkv2htsh26nasrhwwy7n3duj46a2i54fnqov7r63zs5pw37a",
"uri": "at://did:plc:25rdn5elo5izoxrmtis34zuk/app.bsky.feed.post/3moocnjksyqa2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreifhxrpfw2rzpbhw4lhgm4frgkrq5jbdjzljep5jg6pxlh27r3ujqi"
},
"mimeType": "image/webp",
"size": 159616
},
"path": "/meghost_cfd3ab1dc3cca8ed9/i-built-an-open-source-self-hostable-toggl-alternative-with-built-in-invoicing-6nf",
"publishedAt": "2026-06-19T20:57:11.000Z",
"site": "https://dev.to",
"tags": [
"showdev",
"opensource",
"selfhosted",
"webdev",
"Logr"
],
"textContent": "As a designer who freelances on the side, I kept hitting the same two annoyances with time trackers:\n\n 1. The good ones are proprietary, cloud-only, and charge **per seat** the moment you grow.\n 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.\n\n\n\nSo I built **Logr** — a free, open-source, self-hostable time tracker where the timer, per-client rates, and invoicing all live on **one screen**.\n\n## What it does\n\n * ⏱️ One-click timer with an automatic, live day timeline\n * 💸 **Built-in invoicing** — turn unbilled sessions into an invoice in a couple of clicks\n * 🔗 Shareable invoice & report links (your client just opens a URL — no account)\n * 👥 Per-client / per-project billing rates\n * 📥 Import your history from Toggl (CSV)\n * 🤖 A built-in **MCP server endpoint** — so you can query your own time data from an AI assistant\n\n\n\n## Why open-source + self-hostable\n\nYour 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.\n\n## The stack\n\n * **Next.js 16** (App Router) + **React 19**\n * **Supabase** (Postgres + auth + RLS)\n * **Tailwind v4** + shadcn/ui\n * Deploys to **Vercel** (one click), **Docker** , Fly.io, or any Node host\n\n\n\n## Self-host it in ~5 minutes\n\n\n bash\n git clone https://github.com/zerox9dev/logr\n # create a free Supabase project, then set 3 env vars:\n # NEXT_PUBLIC_SUPABASE_URL\n # NEXT_PUBLIC_SUPABASE_ANON_KEY\n # SUPABASE_SERVICE_ROLE_KEY\n npm install && npm run build && npm start\n",
"title": "I built an open-source, self-hostable Toggl alternative with built-in invoicing"
}