Bonsai vs HourTab — head to head, on retainer hours specifically.
Bonsai is the freelancer all-in-one: invoicing, contracts, proposals, time tracking, taxes, client portal, and a retainer view inside that portal. HourTab is one feature pulled out and standalone: a public, no-login retainer-hours URL the client bookmarks. This is the breakdown that decides which one fits your stack — not a takedown.
Free forever for your first retainer · no credit card.
The shape of each product
Bonsai is a bundle.
Open Bonsai and you see a left-hand nav: Projects, Time Tracking, Tasks, Invoices, Clients, Contracts, Proposals, Forms, Payments, Reports, Tax, Banking. Retainers are a feature inside that bundle — usually surfaced under Projects or Time Tracking depending on how the account is configured. The mental model is: this is the freelancer’s operating system.
HourTab is one URL.
Open HourTab and you see three screens: log time (or paste a CSV), manage retainers, share URLs. There is no left-hand nav. There is no Projects view, no Invoices view, no Tasks view. The retainer is the unit; the public URL is the output. The mental model is: this is one tool that does one job.
Neither model is wrong. They’re for different problem shapes. The decision is whether your bottleneck is “I’m juggling ten freelancer tools” (Bonsai) or “the retainer-status email keeps eating my afternoons” (HourTab).
Feature-by-feature
| Bonsai | HourTab | |
|---|---|---|
| Public, no-login client URL | No — client portal requires login | Yes — bookmark-once URL |
| Retainer hours-remaining view | Yes (inside client portal) | Yes (the entire product) |
| CSV import from external trackers | Limited — pushes you toward Bonsai’s built-in tracker | Yes — Toggl, Harvest, Clockify, FreshBooks, Hubstaff |
| Branded client subdomain | Custom domain on higher tiers | Yes on Studio (acme.hourtab.com) |
| Invoicing | Yes — full invoicing + Stripe payouts | No — out of scope by design |
| Contracts & proposals | Yes — with e-signature | No — out of scope |
| Project / task management | Yes — tasks, kanban, milestones | No — out of scope |
| Tax / 1099 forms | Yes (US users) | No |
| Time-to-first-value | Hours — configure portal, invite clients, set up retainer | Minutes — paste CSV, send URL |
| Entry price | $25/mo (Starter) | $0 (Free, 1 retainer) / $9/mo (Solo, 10 retainers) |
Bonsai pricing as published on bonsai.io at the time of writing (2026-04). Tiers and features can change — verify on Bonsai’s current page before committing.
Where the difference matters most: the client’s side
This is the part the comparison tables usually skip, because it’s a UX argument rather than a feature checkbox. The client experience differs more than the freelancer experience does.
Bonsai: invite, accept, log in, navigate.
Bonsai’s client portal works the way every SaaS client portal works. The freelancer adds the client; the client gets an invitation email; the client clicks the link, sets a password, lands in the portal, navigates to the retainer view. The first time, this is fine. The fifth time the client wants to know hours remaining, they’ve forgotten the password and email the freelancer instead. We have a longer essay on why portals fail at recurring status questions — the short version is: account creation is a churn point, and pull surfaces (URL bookmarks) beat push surfaces (login portals) once you measure repeat-open rate.
HourTab: open URL, see hours.
HourTab’s client experience is one URL. The freelancer sends it once. The client bookmarks the URL or pins it in their email. Every time the client wants to know hours remaining, they open the bookmark. There is no account, no login, no password reset, no role selection, no nav. This is the same UX shape as Calendly: the other person never has an account.
Neither approach is universally better. The portal model is correct when you have many features the client touches (invoices to pay, contracts to sign, files to access). The URL model is correct when there’s one piece of data the client checks repeatedly — which is exactly the retainer-hours case.
When to pick each
Pick Bonsai if:
- You don’t already have invoicing, contracts, or a tracker, and want one tool that handles all of them.
- Your clients already log into your portal for invoices, contracts, or files — the retainer view rides along on a surface they’re already on.
- You file US taxes as a sole proprietor or single-member LLC and want the tax tooling integrated.
- You manage projects with tasks and milestones, not just hours.
Pick HourTab if:
- You already have your invoicing, contract, and tracker workflow and don’t want to migrate.
- The recurring “how many hours do I have left?” client email is a real cost — not as hours, but as context-switches and unbilled admin.
- Your clients won’t adopt a login portal — or you’ve tried, and most of them never log in twice.
- You want a retainer-status surface you can hand to a non-technical client over WhatsApp and have them get it in one tap.
- You bill 3–10 retainers and the per-tool cost matters — $9/mo vs $25/mo over a year is the difference between a client lunch and the marginal cost of a tool that prevents the email.
Can you use both?
Yes — and this is the actual answer for some teams. Bonsai for invoicing + contracts (the parts you can’t go without), HourTab for the public retainer-hours URL (the part Bonsai’s portal model isn’t the right shape for). The CSV-in approach makes this a 60-second integration: export retainer hours from your tracker, paste into HourTab, share the URL, keep using Bonsai for everything else. We’re happy to be one tool in your stack; we don’t need to replace yours.
Other comparisons
- Bonsai alternative — the “why look elsewhere” framing.
- Alternative to Retainerkit — the closest single-purpose competitor.
- Retainer dashboard for clients — the portal-vs-URL argument in long form.
- Retainer agreement tracker — the shape of a retainer cycle and what the client URL shows at each stage.