A privacy-first Chrome extension that notices when you have started working and asks whether you clocked in, then helps you file the tabs you piled up while doing it. Built in TypeScript with 452 tests, zero runtime dependencies, and zero network requests. It is live and free on the Chrome Web Store, and there is also a browser demo if you would rather try it without installing anything.
Read moreShow less
You tell it what you are tracking, a job, a thesis, a contract, and what counts as working on it: a website, a project folder in your editor, a person who emails you. When you have actually been at it long enough, one of 54 original pixel-art companions appears over the page you are on, in one of 11 hand-painted scenes, and asks whether you clocked in.
It grew a second half along the way, because the same people who forget to clock in also have forty tabs open. Spore Forest sorts open tabs into folders you define by rules you write, and shows you the whole plan and the specific rule that matched each tab before it moves a single one. For job hunting it will read the role and company off every posting you have open and export the lot as a spreadsheet.
The organising constraint was privacy, and it shaped every technical decision. Zero network requests is not a policy here, it is a property of the code: there is no HTTP client in the codebase at all, no server, no account, no analytics, no telemetry. Everything it knows lives in the browser's own local storage. All 10 Chrome permissions are justified in writing against the file that uses them, and anything that reads more than strictly necessary is off by default.
Underneath: about 13,400 lines of strict TypeScript, 4,300 lines of tests, 4,700 lines of hand-written CSS with no framework, and a 422-line native messaging host so the extension can count time spent in an editor, which a browser cannot see by itself. Vitest runs 452 tests across 27 files. It ships with 0 runtime dependencies, so nothing reaches a user but my own code.
Four invariant checks fail the build rather than warn. Every storage key in the source must appear in the privacy policy or it will not compile, which has caught me twice. The packager refuses to ship a bundle older than the code it was built from.
All 54 companions are generated rather than licensed. I read all 7 pixel-art packs I evaluated, and 6 forbid redistribution, which publishing to the Chrome Web Store is. So I wrote a generator instead: creatures defined as shapes in code, rendered at build time, with the PNG encoder written from scratch against the format spec so even image encoding pulls in no dependency.
The linked demo is not the extension. It is the extension's real interface and real compiled logic running in a page against a simulated browser, so you can see exactly how it works without installing it. Every decision in it is the real one. The service worker, Chrome storage and real tabs are stand-ins, and the demo page says so itself rather than leaving you to find out.