177 changes shipped across 2 codebases last week. 109 in the Handl app, 68 on the Handl website. Big week. Here's what came out of it.
Handl: one billing engine under everything
Agencies don't get paid one way. There's the fixed-price project with a deposit and a final payment. The monthly retainer. The T&M client billed on a schedule. The one-off invoice for the thing that came up on a Tuesday.
Up to now those lived in different corners of Handl. This week they moved onto one billing engine. Milestones, payment schedules, retainers, recurring billing and one-offs all run through the same plan, and it went live on 14 June.
For you, that shows up in a few places:
- A Billing Plan tab. Every project has one view of what's going to be billed and when, whatever the project type. Add, edit or cancel a billing item from there.
- Retainers with included hours. Set how many hours a cycle includes. Go over, and the overage goes on the next invoice at the rate you've set. Come in under, and you choose what happens to the leftover hours... nothing, carry them over up to a cap, or turn them into a credit.
- Recurring billing on the same engine. Retainers and recurring T&M billing run on a schedule, in your agency's timezone.
- Multi-line billing items. One scheduled payment can carry several lines, so the invoice reads the way you'd write it yourself.
- Your client sees it too. In the client portal, clients can see their upcoming invoices, their recurring schedule and, on a retainer, how many hours they've got left this cycle.
The bit I'm happiest with is what you don't have to do. Every payment schedule you'd already set up came across to the new engine as it was. Nothing to re-enter, nothing to check.
→ See how it works: invoice automation · client portal · cash flow → Free: invoice aging and chase tracker → Start a Handl trial
Handl: plug Claude into your agency
Handl now speaks MCP. That's the standard AI tools like Claude use to talk to other software.
Connect it and your AI tool can work with your Handl account directly: projects, clients, invoices, your team, reports and search. It's over 40 tools, plus a handful of ready-made workflow prompts so you don't have to work out what to ask. "Which invoices are overdue and who's on the hook?" works. So does "set up a project for this client".
We spent a good chunk of the week on the unglamorous side of that too. The tool descriptions got rewritten so the AI picks the right one first time, and the instructions it reads on connecting explain what Handl is and how the pieces fit together.
The agent in the app got a lot of love as well:
- Build a project from a link. Paste a public Google Docs, Slides or Drive link to your proposal and the agent reads it... scope, milestones, the payment schedule and effort estimates... and builds the project from it.
- Faster replies. Answers stream in as they're written, and simple questions go to a quicker model while anything that changes your data goes to a stronger one.
- More it can do. Start and complete milestones, clone a project, and update your settings, branding and legal templates, all from chat.
- It asks first. Before the agent deletes or voids anything, or records a payment, it asks you to confirm. One tap, but it's your tap.
Also shipped in Handl this week:
- Alerts that are there from day one. Every new project now comes with a sensible set of alerts already in place: when someone's hours go past what they were allocated, when a milestone deadline is coming up, and when the budget hits 80%. They only ever tell you, never your client, and you can switch any of them off.
- Timesheets that line up with your PM tool. Handl cross-checks logged hours against the tasks in your project tool, and for Jira it matches worklogs date by date, so you can see at a glance that the hours on an invoice match what the team logged against the work.
- Invoice links in one go. Create a milestone invoice and you get the view link, the PDF and the pay link back together.
- Help without leaving the app. A help and support panel now sits inside Handl, and there's a feedback button so you can tell us what's missing from the screen you're on.
We're also building Handl into Slack. Same agent, a third place to talk to it. It's in testing with us for now... more when it's ready.
→ See how it works: AI agent · integrations → Free: invoice aging and chase tracker → Start a Handl trial
Marketing, behind the scenes
68 of last week's changes were the Handl website. We're rebuilding handl.works from scratch, moving it off Webflow onto the same kind of stack as the product.
In one week it went from an empty project to most of a site:
- The homepage, built from our designer's Figma, section by section. The product showcase is interactive now... click a pill and the panel swaps to that part of the product. The billing and client portal walkthroughs are proper steppers, not static images.
- All the content came across. Every blog post, resource and pillar page imported from Webflow into our own CMS, with the templates rebuilt to match.
- New pages. How it works, integrations, and feature pages for the AI agent, the client portal and cash flow. Pages for each way agencies bill (retainers, milestones, hourly and fixed fee), pages for small agencies, studios and productised services, a comparison section, templates, a glossary and a payment health check.
- Grouped menus. The nav and footer now group everything into product, solutions and resources, so it's easy to find your way around.
- Share cards for every page, generated automatically, plus structured data, a sitemap and an llms.txt so search engines and AI tools can read the site cleanly.
- A contact form that goes somewhere, plus terms, a cookie policy and a consent banner.
It's on staging for now. We'll switch over once the designer's final graphics are in.
One thing I learned
When you swap an engine that touches money, the best outcome is that nobody notices.
Moving every project onto a new billing engine is the kind of change that's easy to get excited about internally. New model, cleaner code, retainer hours with overage and rollover. But for the agency using Handl, the day it switches over should feel like any other day.
So the new engine was built alongside the old one, switched on in staging first, and every existing payment schedule was mirrored across before it went live. The new stuff is there when you want it. Everything you'd already set up just carries on. If a customer has to read release notes to find out their invoices still work, we've done it wrong.
See you next week.
— Daz




