In this article
I used to work in plant and tool hire based in Manchester.
Not in software. Engineering and workshop side. Machines, breakdowns, repairs, and the usual mess of keeping hire equipment moving.
The software around the job wasn’t great either. It crashed. Things didn’t always behave. There were still whiteboards, spreadsheets and phone calls to figure out what was actually happening.
Same questions every week.
Was that machine actually back?
Had it been checked?
Was the workshop job finished?
Could we promise it out for Monday?
That’s where Forge365 came from. Not a market report. Not an AI experiment. From doing the job and thinking there had to be a better way of joining it up.
Hires, workshop jobs, deliveries, fleet, stock, staff and depots. Web and mobile on the same backend. As well as HR.
This isn’t a launch post. It’s what happened when I stopped asking “can I make this work?” and started asking “will this survive someone actually using it?”
What I tried first
I wrote a lot of the early code myself, then brought in ChatGPT. Fine on small files. Once the app had dozens of modules talking to each other, it lost the shape of the project. Fragments instead of finished work.
Claude held more of it. Full files. Which module called which. What else would break if a screen changed.
That still isn’t the same as using the app.
The loop that actually found things

I have Grok log into the live app with real test accounts and walk the jobs an engineer, driver or manager would do. Screenshots, console errors, failed flows.
I read the report. I decide what matters. That goes to Claude. Then we test again.
Not “AI built the app.” A fast tester that doesn’t get bored. I still check it finished.
Three things that looked fine
A save button returned success and wrote nothing. Looked like permissions. It wasn’t. Cloud Function still on an old signature after an infra change, so the auth context it checked for was never there. (See combined screenshots below).

A signature pad looked signed on screen and saved blank. Cross-origin canvas. Rebuilt it as its own full screen. (See screenshots below).

Firestore saved successfully. Onto the wrong document. Account deleted and re-invited, new auth ID, old record still sitting there with the same name and email. Every later fix landed on the ghost.
None of those showed up as a red error. That’s why the happy path misses them.
What’s still clunky
The bot can list everything. Half of it shouldn’t be touched. I still make that call.
It also can’t always drive a timeline, a mobile screen, or an editor the way a person can. When it can’t, I sit down and do the clicks myself. The report is useful. It doesn’t replace looking at the live screen.
An audit from the bot still saves me hours I haven’t got. That’s the useful part. Not that it ships the app for me.
Who this helps
Anyone building a real multi-tenant app on Firebase, phone and web sharing the same data, using AI to move faster and needing a way to catch the success: true lies.
You still have to check the Firebase record against what’s actually on screen. If those two don’t match, trust the record, not the button.
Who should skip it
Anyone after a prompt pack or an “I shipped a SaaS in a weekend” story. This is a field note from a live hire-ops app that isn’t finished yet.
I’m just trying to find the problems before someone else does.
Really enjoyed this one, especially the bit about the “success: true” lies. That’s such a good description of the kind of bugs that are hardest to catch because everything looks fine until you actually follow the whole job through properly.
Also love that Forge365 came out of doing the real work rather than sitting down and trying to invent a SaaS idea. That usually shows in the software.
Thanks for writing this Paul, really appreciate it.
Thanks Lars. The success: true took an hour and a bit to actually find. Glad Firebase made it simple enough to navigate instead of going through a thousand doors to reach a duplicate UID.
I’ve had fun and stress building Forge365. Living the problem helped massively.
Appreciate you putting it up.