shouldivibecodeit

Should I vibe codeClockify?

Track time, approve entries, and generate basic client or project reports

Solo it's a timer. With approvals it's the record your client disputes and your team gets paid from.

?

Their verdict, the Basic price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.

Can you build it?asked by canivibecodeit.com ↗KINDAweekend project · one sitting
?

Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.

Should you ship it?asked by usDEMO ONLYvibe the v0, throw it away.

The honest answer

why the verdict is what it is

One person tracking their own hours is a start button and a table, and canivibecodeit is right that it fits in a sitting. Clockify's actual shape is the other one — several people's hours, an approval step, and a report that turns into an invoice. The moment a second person's timesheet is in your database, three things change at once: you are storing a record of when your colleagues worked, you are defending numbers you did not personally enter, and a rounding rule nobody wrote down is deciding what a client gets charged. None of that is dangerous. All of it is the part you will not finish.

What actually breaks

not "if". the specific failures.

  • The running timer, which exists only in one browser tab until it is stopped, and takes the whole afternoon with it when the tab does not survive
  • Timezones and daylight saving, where a team across three offices produces entries that are an hour out, duplicated on one Sunday in the year, or negative
  • Rounding, because per-entry and per-day rules generate different invoices from identical work and nobody recorded which one you picked
  • Approval, which has to be a state machine — an approved entry that is still editable is not an approval, it is a label
  • Retroactive edits with no history, so "your team says they billed Tuesday twice" is a conversation with no evidence on your side
  • Exports, which are the entire point at month end and the first thing to fall over past a few thousand rows
  • Reports that quietly disagree — a project total and the sum of its entries differing because one query filters archived users and the other does not

Is that you?

the verdict is a default, not a law

ship it if
  • It is you, tracking your own hours, and no invoice comes straight out of it
  • The entry is written server-side the moment a timer starts, not when it stops
  • A human reads the report before anyone's pay or any client's bill is computed from it
  • Everything is stored in UTC with the originating timezone alongside
don’t ship it if
  • It holds other people's timesheets, particularly where working-time records carry a retention obligation you would be the one to satisfy
  • Invoices are generated directly from the table with no approval trail
  • You cannot show, for any entry, who changed it, when, and what it said before
  • Anyone's pay depends on a number this produces

If you build it anyway

the checklist, then the prompt that enforces it

  1. Write the running entry to the server on start, with a heartbeat. A timer that lives only in a tab is data you have not collected yet.
  2. Store every timestamp in UTC with the originating timezone in a separate column, and convert only at render time. Never store local time.
  3. Make an approved entry immutable. Corrections are new entries with an author and a reason, never an update in place.
  4. Choose one rounding rule, apply it in exactly one function, and print it on the invoice. Two rounding implementations is two invoices.
  5. Keep an append-only change log per entry from the first commit. It cannot be reconstructed later, and it is the only thing that settles a billing dispute.
  6. Make export a first-class feature, not a script — CSV with user, project, UTC timestamps, rate and approval state, on demand.
  7. If this holds anyone's hours but your own, tell them what is stored and for how long, and set a retention window you actually enforce.
the guardrail prompt
I am building a team time tracker with approvals and client
reports. These numbers become invoices, so treat entries as accounting records,
and argue with me if I ask for the dashboard first.

1. Persist the running timer server-side on start, not on stop, with a
   heartbeat. Tell me explicitly that a timer held in browser state is an
   afternoon that will be lost, and the guess replacing it is what gets billed.
2. Store all timestamps in UTC with the originating IANA timezone in its own
   column, converting only at render. Before any reporting code, show me what a
   shift spanning a daylight-saving change produces.
3. Build the append-only change log before the edit UI: who created an entry,
   who changed it, when, and the previous values. It cannot be reconstructed
   later and it is the only defence in a billing dispute.
4. Approval is a state machine — draft, submitted, approved, locked — and an
   approved entry cannot be edited. Corrections are new signed entries with a
   reason. No admin override that silently rewrites history.
5. One rounding function, its rule from configuration, recorded on every report.
   Two rounding implementations is two invoices from the same work.
6. Build export before reporting: CSV with user, project, UTC start and end,
   duration, rate, billable flag and approval state. It is my migration path.
7. Reject overlapping entries for one user, or make the overlap explicit. A
   model that allows them silently makes every total ambiguous.
8. Reports read through one query path. If a project total and the sum of its
   entries can ever disagree, show me the queries rather than the chart.
9. Everyone can export their own data; nobody sees anyone else's unless they are
   an approver, checked per request on the server.
10. Ask me whose hours this will hold. If the answer is not "only mine", tell me
    what I owe those people in disclosure and how long I intend to keep it.
11. Out of scope, and say so: payroll, tax, and anything that pays a person.
    This produces a report a human reads before money moves.
paste this before you build — not after something breaks30 lines · 2078 chars

That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.

their build prompt ↗

Or don’t build it

the boring option, and the way back out

just pay for it

At the second person. $4.99 a seat buys the approval workflow, the mobile and desktop clients people will actually remember to press, and the export your accountant asks for in a format they have seen before — and Clockify's free tier already covers more of this than most small teams need. Building it makes sense only while you are the entire team.

$4.99/mo is cheaper than your weekend.

your exit plan, if you already built it

Export is the exit: entries as CSV with user, project, UTC timestamps, rate and approval state, available on demand rather than as a one-off script written on the way out. Every tracker on the market imports something close to that. What does not travel is the change log, so if a billing dispute is live when you migrate, keep the old database read-only until it is settled.

prior art · someone already did this
Kimai

Mature open-source time-tracking application with projects, reports, and exports.

Questions

How is this different from the Toggl Track entry?

Toggl is rated as the solo tool it mostly is: one person, one timer, and a warning about billing from it. Clockify's centre of gravity is the team version — approvals, seats, client reports — so the same lost-timer problem now happens to somebody who cannot fix it themselves, and the output is defended in front of a client rather than in front of yourself.

Is storing my colleagues' hours actually a compliance question?

The obligation sits with the employer rather than with the tool, but it does not disappear because the tool is homemade — working-time records carry retention expectations in most jurisdictions, and a system with no change history satisfies none of them. Practically: keep the log, set a retention window, and tell the people in it what you keep.

What is the single highest-value thing to build first?

Server-side persistence of the running timer. Everything else on this page is recoverable with effort, but a timer that only ever existed in a closed tab is data that was never collected, and the number that replaces it is a guess someone bills a client for.

did you build it?

Every week, someone ships something they shouldn’t have.

New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.

also on the regret index
Toggl TrackDEMO ONLY

A timer and a table. If you bill from it, treat the table like an accounting record.

HarvestYOUR FUNERAL

Nobody disputes your timer. They dispute the invoice it generated, eleven months later, in writing.

RescueTimeSHIP IT

A window-title log is the most revealing file on your machine. The good news is that yours never has to leave it.

last reviewed 2026-08-04 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice