← All work
Kitloop
Ongoing maintenance and development of a live Bubble app for an IT equipment rental and support company.
A live product kept running without an in-house hire
Data separated so no client can see another's
Inherited, documented, and steadily improved
Problem
The company rents out IT equipment and supports it once it is with the customer. Their internal app was built in Bubble by someone else, was already in daily use, and needed a developer who could take it over, keep it running and keep adding to it without breaking what was there. There was no handover.
What I did
- Took it over safely. I read the data model and the workflows and documented what I found before changing anything, so every later change was made with the whole picture in view rather than blind.
- Ran it on prepaid hour packs. Every week the client got a short note: what was done, hours used, hours left, backed by a sheet they could check. No renegotiating each task, no surprises on the invoice.
- Fixed the data separation. Records from different clients were mixed and under-protected: some data could be reached by people who should not see it. I reworked the privacy rules so access is enforced on the data itself, and each client only ever sees their own equipment, contracts and history.
- Added an OpenAI chatbot that does things, not just answers. Instead of a help widget, it reads the user's request in plain language and triggers real actions in the app: looking up a rental, starting a return, checking the status of a piece of equipment. It sits on top of the existing workflows through the API, so it acts within the same permissions and rules as the rest of the app.
- Made the internal product search usable. Search was scanning everything on every keystroke and returning slow, noisy results. I moved the filtering into constrained searches, indexed the fields people actually search on, and matched on the right ones (name, tag, status), so results are fast and relevant as the catalogue grows.
- Kept it fast as the data grew, reviewing searches, repeating groups and backend workflows for the things that get slow when tables get big.
Results
The client kept a working, improving product without hiring in house, always knew what they were paying for, and ended up with an app that is safer and easier to use than the one I inherited.

Illustrative UI, not the real interface. The data model isn't shown, to protect confidentiality.
Under NDA — names and details changed, no confidential data shown.