Back in 2022, I built my first application on Bubble. It was not a side project, but real internal system with real users and it’s still running until today.
Here’s the story and what I learned.
Challenges
The application was developed for a French company as an internal tool to facilate their day to day operations. Part of their job involved fixing non-conforming points on telecommunications towers already build (i.e. sites). These points prevent the tower from operating.
Each site was recieved from the operator (their customer) as an Excel file with 4 tabs with dozens of rows and even embedded photos for the non-conforming points inside the excel sheet itself with an empty place for a photo after resolving the issues of each non-conforming point.
They actually recieved hundreds of excel sheets back then where they had to work on each site, keep its excel file updated and then communicate all the updates to all the stakeholders usually by email and recurring status meetings to follow up the progress.
It was clear that the amount of the expected work exceeded the capacity of the team and that was when I proposed getting all data from Excel Sheets to one centralized application.
it’s worth mentioning that by this time, I have had already started learning Bubble only few weeks earlier and I saw that this was a good opportunity for me to work on a real-world project and implement it on Bubble.
Solution
First version was built in a matter of weeks including migrating every site’s existing data across including photos. I can tell that migration only was a project by itself ![]()
it was far from perfect but it worked and it gave the team the chance to start managing everything from the application from day one. In fact the first version went live before even the project starts with the operator. It’s still the app they use today. Small internal user base, does its job well and they never needed to hire more team members.
One of the features that saved them time was the quotation validation, for specific cases (above a certain quotation amount), a validation from the operator was required to approve the quotation and move forward with the project. I added this inside the application so that people responsible for quotation validation recieve an email upon quotation creation with a link to the quotation to approve it or reject it.
Results
In fact, just bringing together all the data, processes and stakeholders in one place had a tangible added value.
- Stakeholders didn’t need to contact the company to know about the progress as they had access to the application based on their access level.
- Recurring status meetings were planned less frequently.
- The amount of work was delivered with the same team. There was no need to hire more team members or outsource part of the work.
- Inline comments in the application for every site kept things well organized and in context.
- Quotation approvals were faster.
- There was no version conflicts or questions like “where’s the latest version?” since data was already centralized into the application with real-time updates.
- The dashboard gave everyone good insights on the progress with some level of drill down and statistics.
What I actually learned (the stuff that mattered more than any tutorial):
1. I didn’t try to perfect the first build.
I didn’t have the luxury of getting it perfect. I had a deadline and a client waiting to get off Excel before his project starts with the operator. Looking back, that constraint was a gift. The instinct to polish v1 before shipping is usually fear wearing a productivity costume.
2. I learned Bubble by building in Bubble, not by watching people build in Bubble.
Database structure, privacy rules, plugins, the Google Maps integration, API Calls, Backend workflows, etc.. I watched a lot of tutorials. However, they really clicked from breaking things on a real project with real stakes and fixing them under pressure. I was watching tutorials only when I wanted to solve a specific problem in the application rather than watching tutorials just for watching them. in other words, I was keen to keep my hands dirty.
Actually I worked on improving the application in the background later on and even developed more features on top of the first version and this was when I discovered what I did right and what I did wrong so I was improving on the go.
My database design was not efficient, the privacy rules were misconfigured, I didn’t put in place any design system but rather than I was applying different styles to elements separately also I don’t remember I used Reusable Elements. However, the WUs was not introduced in 2022 so at least that wasn’t a problem ![]()
3. Understanding what the client actually needs beats guessing what they probably want.
It’s tempting to build the version of the app you’d want if you were them. That’s not the job. The job is understanding their actual workflow well enough that the app disappears into it. That’s how I always prefer to work. Engaging users is key as I always think about user adoption from day one. By the way, I wasn’t surprised at all when users asked for UIs that are similar to Excel files as they were very familiar and attached to it. I mean like more than needed ![]()
4. A customer can’t tell the difference between a “good” app and a “bad” one. if both work.
Yes that’s right. Clean database architecture, elegant privacy rules, smart plugin choices, optimized WUs. The customer will never see any of that. They’ll ask: does it work ? does it save me time ? does it break ?. That’s the whole review.
This is not an invitation to deliver a low-quality product but it’s a point to be considering by customers themselves. Not everything that looks like it works is well engineered, scalable, performant or well secured.
5. Agency tier means nothing.
Later on, I’ve worked on other Bubble apps delivered by high tier Bubble agencies that for some reasons ship weak products. Meanwhile, I’ve seen solo builders ship things that quietly run for years without complaint. I believe tier badges measure the revenue the agency generates for Bubble but it doesn’t measure quality.
My honest advise
If you’re early in your Bubble journey and stuck trying to make your first build “good enough” before shipping, that instinct might be the thing actually slowing you down.
Ship the version that works. You’ll learn more from the post GO-LIVE first weeks of real usage than from another 3 months of polishing something nobody’s used yet.
If you’re a customer looking for a freelancer or an agency to work on your Bubble project, please don’t just look on the surface and try to go deeper and do yourself a favor by taking the time to make the right choice from the beginning.
I would love to hear from you what’s the oldest client project you’ve still got live on Bubble? or what’s your 1st Bubble application you developed and what did you learn from it back then ?
I recently made the below video for this project (less than 2 minutes). Let me know your feeback.