05Own app

WorkLog

Know where every hour went: a working day becomes entries, projects, clients, value and a report.

Year
2026
Discipline
Software Development
WorkLog / PRODUCT VIEW01
WorkLog dashboard with a running timer: today, this week and what needs attention — demonstration data
WorkLog dashboard with a running timer: today, this week and what needs attention — demonstration data

The problem to structure.

Freelancers and small studios need to know more than how many hours they worked. They need to know which client the time belongs to, what can be billed, which project is close to its budget and what goes on the next invoice. WorkLog began as a 2024 prototype for logging project time; we rebuilt it from the ground up as a complete time-tracking product for projects and clients.

02Implementation

How the pieces connect.

Work is recorded with a timer kept on server time or typed in afterwards as a start and end or a duration. Entries belong to clients, projects and tasks, with tags and a billable flag. A weekly timesheet shows gaps under the daily target; the dashboard summarizes today, the week and what needs attention. Reports filter, group, save and export the same data, including an invoice-ready summary. Workspaces add roles, invitation links and optional weekly approvals. The rebuilt application runs on Next.js with Neon Postgres, row-level security and Neon Auth.

03Inside the system

Below the interface.

01

A timer that cannot count twice

Server time / Postgres unique index

The start time is recorded by the server, so a running timer survives a refresh, a closed tab or a switch of device. A partial unique index in the database allows at most one running timer per person, and start and stop are idempotent.

02

Money that does not rewrite history

Integer minor units / Rate precedence

Amounts are stored in integer minor units. A fixed precedence chooses the rate: entry, project member, project, client, workspace member, workspace. The rate is saved on each entry, so a later rate change does not alter past reports.

03

Permissions enforced below the interface

Row-level security / Roles

Workspace data is protected with Postgres row-level security. Owners, admins, managers and members see different scopes; members see their own hours, while rates and values are removed on the server before data reaches their browser.

05Delivered

A live time-tracking application with a server-side timer, weekly timesheets, clients, projects, budgets and rates, reports with CSV export and invoice-ready summaries, team workspaces with roles and approvals, and CSV import and full data export.

Back to all work
Next / your project

A similar challenge?

An idea, a bottleneck, a system that has outgrown its tools. Tell us where you are.

Tell us about it