Our oldest app turned 3 today: some learnings

On this day 3 years ago we went live with GlobeRelo’s project management tool. GlobeRelo is a 7 figure international move management company and the app is used daily by a team of relocation specialists in the Netherlands, Croatia, Ukraine and Russia.

There have been a lot of ups and downs with Bubble over the last three years but I think our client gave the best compliment we could get recently when he said the app was a lot more performant than this time last year or the year before.

And that’s a compliment to Bubble really because we haven’t worked much on performance updates recently. It is a testimonial to the Bubble team and their continuous efforts behind the scenes to improve the platform’s stability and performance.

After three years of developing this app we learned a few things that we adopted in our way of working with all our clients:

Start with a solid and consistent base :building_construction:

We use our own Base to start new client apps. A foundation that is consistent across apps that makes it easy for us to work on multiple projects at the same time, onboard freelancers more quickly and above all, debug issues much quicker. It also allows us to be better prepared when Bubble pushes a new version.

Hopefully we will be able to share something in this regard with the community fairly soon, but a very solid alternative will be Airdev’s Canvas.

Focus on performance over form and sometimes even function :racing_car:

Nothing is more frustrating to the client and their users than an app that doesn’t work or works barely. We found out the hard way by focusing too much on form and function with some features.

A trap for GlobeRelo in the early stages was FOMO on critical data. Just because we had the means, we tried to capture a lot of data across different data types that ultimately needed to be aggregated into single tables. The data size, search constraints and filters killed performance and forced us to keep a simpler approach.

Start with something that performs, then slowly add more complexity and keep an eye on performance. If something is killing performance, strongly consider if it’s worth having.

It may help to keep away from the editor when designing new functionality and only implement it once you think you’ve got it. It keeps you from being tempted to jump in the editor and lose time tinkering around. (can be fun though! :smiley: )

Stick to the plan :world_map:

This is true for self builders as well as when working for a client. I fell in the trap early when I just discovered Bubble: the sky is blue and endless. You want to push the limits of Bubble and your own imagination and it is so tempting to add new functionality.

Clients are often the same. They say they need such function, it is business critical. Or worse, their clients feel they need a certain feature that will add enormous complexity to the app.

For GlobeRelo an important market is private people and on paper it sounded easy to add an external dashboard and onboarding sequence for those users and allow somewhat of a DIY international move. A lot of effort was put into this functionality but in the end the business focus shifted even more towards other types of clients and these features were more or less shelved.

Sometimes, it is about sticking to the plan and not divert. Is that functionality really critical for the first iteration? Is it worth the effort to add that feature at this point?

Sticking to the plan is sometimes the hardest thing to do, especially with Bubble’s endless blue sky :sun_with_face:.

Work organized :card_file_box:

We use our own project management tool with our clients in developing their apps. (or our own for that matter). We work in Sprints and have our clients (and us) add items to the project’s backlog. Each sprint consists of a number of items which go through different stages (submitted, assessed, queued, in progress, review and done).

At the end of the cycle we bundle all the items and put them in a version that we use when we push the app live. This allows us to keep track of all the items that have been pushed into a new version and can automatically generate a changelog.

Keeping at least a simple changelog will help you to keep track of what you’re working on and when. It saved me plenty of times when I was going to finally work on that one feature only to find out that I already did that the week before…

@romanmg wrote an excellent post about app organization not too long ago that should be mandatory reading :smiley:.

Keep the app safe and keep trust :shield:

In addition to starting simple, starting safely is hugely important. You may have a big problem when users can see other user’s data and it will ruin the trust you have with your client as well as their trust with end users. There is a lot said and even more to write about security and privacy rules, so that’s maybe for another time.

We often get questions about the longevity of apps built on Bubble. I think Bubble has proven to cope with that issue perfectly over the years. These are exciting times for no and low code enthusiasts! Keep on Bubbling everyone!


Thanks for sharing your story. Good stuff to know.

This is a great share. An impressive story for both you and for your client.

Can you share how many users/clients/orders are being handled by the bubble app at any given time? Just trying to understand how much bubble can handle in terms of data volume and concurrent users (I recognize that every app is different but one more data point will help).



I’m curious how many things have broken that are out of your control? (forcing you to wait for bug correction).

1 Like

Very cool to hear about a 3 year old app…I have been learning and “perfecting” ( maybe not perfecting but vastly improving my understanding of ) since about May of 2018 ( a bit over a year - with a 3 month break )

I feel that what I have done is going to enable me to create a solid app / software product to launch a future business. At times things were very difficult, but after persistence and dedication ( my grandmother calls it hard headedness ) I have persevered and went through the learning curve.

First I started with the basic functions of bubble. Then I started to get better at workflow events, next it was custom states. From there I was able to quickly progress to more complicated issues and functions on the app.

After that, I started to focus on the database structure to really improve the functionality of the apps…getting things cross linked for easy retrieval of data to display and manipulate with the app.

Last thing was design and responsiveness.

Now I feel like I have a solid understanding of all three aspects and can build a functional app in about 120 hours - complete with user on-boarding flows, administrative panels etc.

For anybody who is starting out now, I believe the $6+ million funding just secured by bubble is going to push their development into hyperdrive and it will be much easier to learn how to use it as functionality will be improved. I also feel that the funding gives bubble staying power and that what I build on bubble today, will be in use 20+ years from now.

Bubble has put me in the position to feel like I have more opportunities than I ever had in my life. I have so many business ideas and the ability to create them on my own, but I have to focus and choose one and execute.

If you are new to bubble and finding it difficult and you are about to give up, DON’T! I felt like I was going to give up, especially after wasting nearly $200 on “coaching” sessions and the “expert” said bubble wasn’t capable of doing what I wanted ( basic sorting and filtering of search results )…Nonetheless I found community members on the forum willing and much more capable to help for free than any “coach” was able to help for ridiculous fees of $2/minute.


Latest was selectPDF. This app relies very heavily on it as there are almost 10 different reports to be printed. Bubble changed some things in their js library apparently and SelectPDF did not do well with that so it took some time to get the plugin updated on Bubble’s side.

We also manually implemented SelectPDF but the plugin has a ‘render as’ option that comes in handy.

In general I would say a lot of the issues we’ve had were due to plugins. That’s why we try and use as little 3rd party as we can get away with or implement our own.

And this is not to say these plugins are no good, it’s just that stuff changes that can affect either the plugin or the app or both sometimes. It’s another variable to keep into account at least!



Unfortunately, we’re not allowed to disclose this information is for the most part. I can say though that this is primarily an internal tool so even though each relocation is a project on it’s own and we talk hundreds per year here, the amount of concurrent users is pretty low.

Thanks for sharing that story. Can you give me an idea of how many plugins this has happened to over the last 3 years?

I only ask because I’ve been here a month or two and out of 20 plugins that I’ve tried, 7 don’t work. In most cases the plugin author is waiting on Bubble to fix something.

This has me worried about the proprietary nature of bubble. I’m not a coder, but with something open source like Wordpress I can always find someone for hire - day or night - who can fix anything. With Bubble it just feels we are dependent on the company I’m worried about the waiting game.

1 Like

Thank you @vincent56 for your reply !!