TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Your tasks. Your devices. Nobody else's. A free task manager with no account, no cloud and no subscription.
ProductivityTypeScript · SvelteGitHub @hrach-gevorgyanOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Local-first task manager for Windows and Android. Kanban, list, and agenda views; your phone syncs to your PC over your own Wi-Fi. No account, no subscription, no cloud.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Your tasks. Your devices. Nobody else's.
Off the cloud, still logged.
A free, open-source, local-first task manager. No account, no telemetry,
no subscription, ever. Runs in the browser, as a native Android app, and
as a Windows desktop app — all three share the exact same codebase and
sync with each other over your own network.
Real captures of the Windows app — no mockups, no Lorem Ipsum. On a phone
the same data gets its own layout, with Home, Today, Agenda and Search tabs.
Dashboard — every project at a glance, pinned and overdue tasks up frontRead the full README ↗Your tasks. Your devices. Nobody else's. Off the cloud, still logged.
A free, open-source, local-first task manager. No account, no telemetry, no subscription, ever. Runs in the browser, as a native Android app, and as a Windows desktop app — all three share the exact same codebase and sync with each other over your own network.
Jump to: Screenshots · Why · What it does · Status · Install · Build from source · FAQ · Docs · Contributing
Real captures of the Windows app — no mockups, no Lorem Ipsum. On a phone the same data gets its own layout, with Home, Today, Agenda and Search tabs.
Every task manager I tried wanted a subscription for things that should be free — a due date, a reminder, more than three projects. The ones that didn't were overloaded instead, buried under features built for a growth chart rather than for me. And all of them wanted my data on their servers.
That last one has no workaround. A task list is a fairly complete map of a person's life, and I didn't want mine living on a company's infrastructure, one business-model change away from becoming their asset.
Offlog is the opposite of all three: the basics are free because everything is free, the feature list stays small on purpose, and your data never leaves the machines you own. Your phone and your PC talk to each other directly over your own Wi-Fi — no cloud in the middle, no account, nothing held back behind a paywall. It works fully offline either way.
It's a personal tool, given away as-is. The same model works for a small trusted group on one network — a family, a couple of people in one office — but it is not a multi-tenant product: no per-user permissions, no accounts, and sync only ever happens on your own local network.
Organizing
Tasks that hold real detail
Finding things
#tags,
!priority and @project out of what you typeNot losing things
Sync — the actual point
Most local-first apps stop at "sync works if you run your own server." That's a real barrier for anyone who doesn't want to. Offlog's Windows app is the server: it bundles NyxDB — a small CouchDB-protocol server written for this project — configures itself on first launch, and your phone finds it automatically over the network.
Pairing is a six-digit code shown on the PC. No typed IP addresses, no credentials sent before pairing, and if your PC's address changes the phone re-finds it instead of making you pair again.
Synced tasks are end-to-end encrypted (AES-256-GCM). The key is made by your PC and handed over inside the pairing, so there is nothing to remember. The sync server stores only scrambled data. The Wi-Fi connection itself is plain HTTP; a server you run yourself gets readable data. Details in docs/security.md §3.
Everywhere else
Ctrl+Alt+O from anywhere, native
notifications and save dialogs, automatic updatesIn daily use since 1 August 2026, and actively maintained.
The plan it was built to is complete — that was the goal, not a stopping point. Bugs found in real use get fixed, dependencies get updated, security reports get answered.
Every release runs a zero-warning build, a clean type check and 1325 tests through CI. It has been through 30 structured maintenance audits against a written checklist of blind spots earned from real shipped bugs — what each one found.
What's next: the phone layout gets a final check on a real phone before it is released, and the Play Store listing is waiting on Google's review. Peer-to-peer sync between phones was investigated and closed — Android blocks every route to it, and the reasoning is written down in docs/decisions.md so it does not get reopened on a hunch. Sync still runs through a self-hosted host on your own network.
New features aren't planned in advance, but they aren't refused either. The bar is "does daily use actually demand this", which usually has to be answered by living with the app rather than imagining it. Open an issue before building one.
Download the latest Windows installer and Android APK from GitHub Releases.
Windows will warn you on first install because the installer isn't code-signed. Paid certificates aren't a path this project will take; desktop updates are verified by cryptographic signature instead, so a tampered or corrupt download is rejected. Android shows its own side-loading warning until the Play Store listing is live. Download from this repo's own Releases page, not a mirror.
Windows is the intended app for daily use — it bundles its own sync server, needs nothing else installed, and updates itself with an in-app changelog and an explicit restart prompt. Android works the same way via the APK today, Play Store once published. The web build is a development surface, not the primary way to use the app.
Everything runs from a terminal.
| Target | Needs |
|---|---|
| Web | Node.js 22+ |
| Android | above, plus Android Studio |
| Windows desktop | above, plus Rust and Tauri's prerequisites |
cd offlog-app
npm ci
npm run dev # http://localhost:5173
That's the whole setup — the app works fully offline with no sync
configured. To point it at a sync server, create offlog-app/.env.local:
VITE_SYNC_URL=http://192.168.x.x:5984/offlog
VITE_SYNC_USER=youruser
VITE_SYNC_PASS=yourpass
Build for web with npm run build, or for Android with
npx cap sync android followed by a build in Android Studio.
The Windows app is a sibling project that wraps the same web build and embeds its own sync host — nothing separate to install, even in development:
cd offlog-desktop
cargo tauri dev
Full architecture, including how discovery and pairing work, is in docs/tech.md.
Is any of my data sent anywhere? No. There is no account, no telemetry, and no server this project runs. The only network traffic is sync between your own devices on your own network, and a desktop update check you can turn off.
Two phones and no PC — can they sync to each other? No. Only the Windows app acts as the host that phones connect to. Android blocks every route to a phone hosting sync itself; the reasoning is in docs/decisions.md. Use Backup and Restore to move data between phones.
Can I sync when I'm away from home? No, by design. Sync only happens on the same local network. Remote sync would mean either a hosted service or exposing a server to the internet, and both are out of scope.
Why does Windows warn me when installing? The installer isn't code-signed. Paid certificates aren't a path this project will take. Updates are verified by signature instead.
I'm moving to a new computer — how do I bring everything?
Copy one folder, %APPDATA%\com.offlog.app\, to the new PC before opening
Offlog there. It holds the PC's sync identity and its sync server's full
copy of your data, and every phone that was already paired reconnects on
its own. You don't need this for a reinstall on the
same machine.
Do I have to use sync at all? No. The app is fully usable on one device with sync off, and that needs no setup whatsoever.
| Document | What's in it |
|---|---|
| docs/decisions.md | Manifesto, and why non-obvious choices were made |
| docs/tech.md | Architecture, data model, sync internals, theme tokens |
| docs/roadmap.md | Open work, and what is waiting on someone else |
| docs/changelog.md | Version history, maintainer-level detail |
| docs/release-notes.md | The same releases in plain language |
| docs/maintenance.md | The audit checklist, including blind spots earned from real bugs |
| docs/security.md | What is protected, how, and what is not |
| docs/privacy.md | Privacy policy — short, because the app collects nothing |
| docs/motion.md | How animation works here — which motion an element gets, and why |
| docs/brand.md | Voice, visual identity, and trademark/fork terms |
| docs/archive/history.md |
This was built solo in about a month, with an AI doing most of the
hands-on engineering while every idea, UI decision and round of testing
came from one person acting as product manager and QA. The codebase is
documented (CLAUDE.md plus docs/) specifically so an assistant — or a
human — can pick it up the same way for a fork.
The most valuable contributions, in order:
See CONTRIBUTING.md for setup and PR mechanics, and open an issue before writing a feature — you'll get a straight yes or no before spending real time on it.
MIT — see LICENSE.
The code is MIT. The name, icon and tagline are not — a fork is welcome, under its own name. See docs/brand.md's trademark section.
| Older releases and the roadmap items behind them |
| docs/archive/maintenance.md | What every maintenance audit found |
| CLAUDE.md | Contributor guide for humans and AI assistants |