About

License, credits and the project's inspiration.

License

Tick is released under the MIT License. Use it, self-host it, fork it, retheme it — commercially or not. See the LICENSE file in the repository.

Inspiration

Tick began as an answer to SolidTime, the open-source time tracker for freelancers and agencies. SolidTime's shape — sidebar, ever-present timer, entries list — is great; Tick keeps that shape and reworks the parts its author wanted done differently:

  • A more open-ended data model: projects don't need clients, tasks don't need projects, and an entry can attach to any level (or none) with derived-not-copied chains.
  • Safer deletion: cascade previews that spell out consequences, soft delete everywhere, a 30-day trash, and exact undo.
  • Typed dates: free-text date/time/duration parsing in manual entry instead of pickers.
  • A real theme editor rather than a fixed skin.

Built with

Known limitations

Deliberate trade-offs and rough edges, stated rather than hidden:

  • Tag-grouped report rows sum above the total. An entry with two tags counts in both rows; the totals row counts it once. That fan-out is intended — see Reports.
  • No email verification. An address is never confirmed; it is only proven by an invite or reset link arriving.
  • Sessions are sealed cookies. There is no session store, so a single device cannot be logged out individually — only a password change (other sessions) or reset (all sessions) revokes them. Details.
  • Auth rate limiting is single-node and in-memory, keyed on the socket address, so it is instance-wide behind a proxy. Rate-limit at the proxy for anything bigger than one box.
  • Tags cannot be renamed or merged — create and delete only.
  • The calendar's Day view is the default on narrow screens; the seven-column week is desktop-first.
  • Reports and exports cover the whole org, with no per-user filter yet.
  • Demo mode destroys data by design — it wipes and reseeds the demo org on boot. Never point it at anything real.

Contributing

The repository ships everything the app needs to run and extend: schema, migrations, seed data, a Docker image, reverse-proxy examples in deploy/ and this documentation site under docs/. Start with the data model and API reference.