Self-hosted staff timesheet — hours by project, exact totals, approvals. No invoicing.
Studios, agencies, support teams, and workshops need to know who worked how many hours on what — and they track it in a spreadsheet nobody trusts, or in a time-tracking SaaS that insists on bundling invoicing, billing rates, and payroll they never asked for, priced per employee every month. All most teams actually need is exact hours, by project, approved.
Employees with a role and an optional weekly-hours target; projects as simple labels for tagging time — no billing rates anywhere.
Log time by clock start and end times (crossing midnight handled) or as a manual duration — stored as exact integer minutes, never floats.
One employee can't have two entries overlapping in time on a day, checked on an absolute minute-timeline; clean back-to-back entries are allowed.
A week (with prev/next) or a custom date range, with exact totals per employee and per project — reconciled to the minute.
Entries move pending → approved / rejected with an approver and timestamp, per entry or in bulk for a period.
A configurable weekly overtime FLAG (never a pay figure), a dependency-free per-employee PDF timesheet, and a spreadsheet-formula-injection-hardened CSV export. DST-safe throughout.
Checkout isn't open yet. Leave your email and we'll send one note the moment Clockora — Staff Timesheet & Time Tracker (PHP + MySQL, Self-Hosted) can be purchased — nothing else.
2-minute web installer, plain PHP 8 + MySQL (or SQLite for a trial), no Composer or build step — Docker image included.
No — and that is deliberate. It records hours worked and approves them; it applies no billing rate and produces no invoice. That is what keeps it distinct from an invoicing product and free of any payment surface. Pair it with your own billing system.
No. It computes no wages, holds no pay rates, and moves no money. The overtime feature is a flag against an hours threshold, never a pay figure.
Exact to the minute. Time is stored as integer minutes and summed in PHP, with cross-midnight spans and DST handled — the shipped 147-assertion suite proves it.
Either — SQLite for a zero-config trial, MySQL/MariaDB for production on ordinary shared hosting.
You get the full PHP source and your data lives in one database you own — nothing phones home, nothing expires.