Case study · Taxorix
One task at a time, and hours partners can trust
Tax work is deadline-driven and easy to fragment. Taxorix gives each employee a single active task with a clear timer, and gives admins a live view of the team plus daily and weekly reports.
- Client
- Tax consultancy firms
- Sector
- Professional services
- Platform
- Web application
- Year
- 2026
1
active task per employee, enforced on the server
15 s
checkpoints, so a crash loses almost nothing
29
typed API endpoints
59
automated backend tests
The challenge
What needed solving
In a tax practice, people juggle several returns and client queries at once. Switching constantly hides how long work really takes, and spreadsheets filled in at the end of the day are guesses.
The firm needed time records that couldn't be edited from the browser, a simple screen staff would actually use all day, and reports partners could read at a glance without exporting anything.
What we built
The solution
- 01
Single active task
Starting a task automatically pauses whatever was running. The rule is enforced on the server, so two tabs or a stale page can't create overlapping time.
- 02
A timer people keep open
A circular timer dial with start, pause and complete. Light, dark and system themes keep it comfortable through a long working day.
- 03
Live team activity
Admins see who is working on what, right now, from a single dashboard panel.
- 04
Daily and weekly reports
Hours by employee over any date range. Every chart has an accessible table view, and the colours are checked for colour-blind readers.
- 05
Controlled access
No public sign-up. A first-run setup creates the first admin; admins add staff with one-time passwords that must be changed on first login.
- 06
Built-in user guide
A printable PDF guide is generated from the same design system as the app, so documentation always matches the product.
Under the hood
Engineering decisions that mattered
Time the browser can't fake
Elapsed time is calculated on the server from recorded start and pause events, never posted by the client. A background checkpoint every 15 seconds means a reload or crash loses at most a few seconds of work.
Guarded administration
Admins can promote, demote, reset and remove accounts, but can't lock themselves out or remove the last admin. Each rule has a test.
Serverless-ready data layer
Pooled and direct Postgres connections are separated so the app runs reliably as serverless functions, with database-backed rate limiting that survives cold starts.
Security by default
httpOnly cookie sessions, scrypt password hashing, and a tested set of security headers including a strict Content Security Policy and HSTS.
The result
What changed
- Staff get one clear screen for the working day instead of timesheets.
- Partners see real hours by person and period without chasing anyone for updates.
- The data model already leaves room for clients and billable hours as the next phase.
Technology
- React 19
- TypeScript
- Vite
- Tailwind CSS
- tRPC
- Express
- PostgreSQL (Neon)
- Drizzle ORM
- Vercel
Services involved
More work
Other projects
Want results like these for your business?
Share your requirement in a few lines. The right team at Immense Growth will review it and get back to you with clear next steps.