TimoDesk
A desktop agent that logs work while it runs quietly in the background, and a dashboard that turns it into reports a manager can act on.
- My Role
- Team lead
- Year
- 2025 - present
- Team
- 5 developers
- Status
- Live

What it is
TimoDesk is time tracking and productivity management software for remote and in-house teams, published by THESOFTKING Limited. A lightweight desktop app records active time, application usage and task progress, works offline and syncs when the device reconnects, and a web dashboard turns that into activity reports, timesheets, project breakdowns and screenshots. It is sold as one plan at one dollar per user per month with every feature included.
TimoDesk answers a question every distributed team eventually asks out loud: where did the week actually go. A desktop app records active time, app usage and task progress in the background, and the web dashboard turns that into activity levels, timelines, project breakdowns, timesheets and screenshots.
I led development: architecture, review, release planning and the calls about what the product would and would not measure. The interesting engineering was never the reporting. It was an agent that has to stay honest on machines we do not own, and a data model that makes a disputed hour explainable.
Built With
Highlights
- Offline-first desktop agent with an idempotent sync, so a laptop can go dark for two days and lose nothing.
- Work stored as ten-minute intervals rather than raw events, which caps write volume and makes a partial hour auditable.
- Server-authoritative time: the client reports what it observed, the server decides what it was worth.
- Screenshot pipeline with retention, thumbnail tiers and lifecycle rules sized to a one dollar price point.
- Reporting surface covering activity, app usage, project timing, worklogs and monthly timesheets.
Live product
Published by THESOFTKING Limited, $1.00 per user per month.
Visit timodesk.comCase study
Inside the Engineering of TimoDesk
The brief
I led the development of TimoDesk at TheSoftKing. The engineering involved Laravel, React, Electron, Node.js, Swift, and C# across the backend, web dashboard, desktop agents, and native system integrations.
The part I did not expect to spend my time on was the question underneath all of it: what happens to a team when software starts watching it.
The agent
The product is the agent, not the dashboard
Every demo of a tool like this shows the dashboard, because the dashboard is what a buyer looks at. But nobody buys the dashboard twice. What decides whether a company is still paying in month six is a small application sitting in a tray on a laptop we do not own and cannot log into.
The client
Everything hard lived on the client
The server side is a well understood shape: a multi-tenant Laravel API, MySQL, queues for anything touching storage or email. I have built that shape before. It behaves.
The desktop agent does not behave, because it lives in the real world. Laptops sleep mid-task and wake up in a different timezone. Wi-Fi drops on a train. Someone closes the lid at 6pm on Friday and opens it on Monday with two days of unsent data. Corporate VPNs interfere. Antivirus quarantines your binary because it takes screenshots, which is, to be fair, exactly what malware does.
So the agent is offline-first, decided on day one rather than retrofitted: activity is tracked locally and syncs automatically once the device reconnects. Once you commit to that, three constraints follow immediately, and none of them is reversible cheaply later.
First, the local store is the source of truth until the server acknowledges it, so the sync endpoint has to be idempotent. A retry after a timeout must not double-count an hour. Second, you cannot trust the client clock, because anyone can set their machine forward. The server decides what an interval is worth, the client only reports what it observed, and the two get reconciled rather than merged. Third, uploads have to be resumable and cheap, because a Monday morning backlog from a thousand agents is a thundering herd that arrives on schedule.
The data model
The unit of truth is an interval
The design decision I am still happiest with is that TimoDesk does not really record events. It records intervals. Work is bucketed into ten-minute windows, and each window carries how long was actually worked inside it, an activity percentage, and the screenshots captured during it.
Intervals are boring and that is the point. They cap the write volume per user per day at a number you can plan capacity around. They make a partial hour explainable: you can see that 1pm to 2pm holds thirty-six worked minutes and exactly which windows they landed in. And they give you something to reconcile against when an agent syncs late, because a window either arrived or it did not. A raw event stream gives you none of that. It gives you a debugging session.
The price
A dollar a month is an engineering constraint
One plan, one dollar per user per month, every feature included. As a pricing page that is a gift: no tiers to explain, no feature gates to build, no upgrade prompts to design. As an engineering brief it is a discipline, because every feature now has to survive division.
The role
What leading it actually involved
In practice the job was three things. Code review as teaching rather than gatekeeping, which is slower and pays for itself the first time someone catches the bug I would have caught, without me in the room. Writing decisions down, especially the rejected options, because a decision without a recorded reason gets relitigated every quarter by whoever is newest. And saying no, out loud, with a reason. At a dollar a month you cannot ship everything, and a lead who will not close a feature request is only deferring the disappointment to a deadline.
In hindsight
What I would keep and what I would change
Keep: offline-first from the first commit, the server as the only authority on time, intervals instead of events, one flat plan, and an agent light enough that nobody has a reason to complain about it. Keep the flat pricing especially, because the constraint made the architecture better.
Change: I would build the employee-facing view before the manager-facing one. Same data, opposite order, and it would have shaped better defaults everywhere downstream. I would instrument the agent properly before scaling the user count rather than after, because you cannot debug a client you have no telemetry from. And I would treat data retention and deletion as launch features with real interface, not as policy to be written once somebody asks.
Questions
What people ask about TimoDesk
- What is TimoDesk?
- TimoDesk is time tracking and productivity management software for remote, in-house and project-based teams. A lightweight desktop app records active time, application usage and task progress in the background, and a web dashboard turns that into activity reports, timesheets, project breakdowns and screenshots. It is published by THESOFTKING Limited and sold as one plan at one dollar per user per month.
- Who led TimoDesk development?
- I worked on TimoDesk as team leader. The product work started in 2025, and my role covered architecture decisions, code review, release planning, mentoring developers, and the product calls about what the software would and would not measure.
- How does TimoDesk track time when a computer is offline?
- The desktop agent is offline-first. It writes activity to a local store and syncs when the device reconnects, and the sync endpoint is idempotent so a retry after a timeout cannot double-count an hour. Because a client clock can be changed by its owner, the server stays authoritative on what any interval is worth.
- Why does TimoDesk store work as ten-minute intervals instead of events?
- Intervals cap how many writes each user generates per day, which makes capacity predictable, and they make a partial hour explainable: you can see exactly which ten-minute windows a worked thirty-six minutes landed in. Intervals also give the server something concrete to reconcile against when an agent syncs late, because a window either arrived or it did not.
- What is the hardest part of building employee monitoring software?
- Not the reporting. Two things: an agent that stays honest on machines you do not own and cannot log into, and deciding how measurements are framed. An activity percentage measures input, not thought, so a developer reading documentation registers as idle. Choosing what a screen is called, which number sits largest and whether the tracked person sees their own data matters as much as the query behind it.
- What technology stack does TimoDesk use?
- The server side is a Laravel and PHP application with MySQL, queues for background jobs, and S3 storage for screenshots. The dashboard is built with Blade, and deployment runs on Apache. The desktop agent is the separate, harder half.
