It depends on what you’re trying to achieve - but for scalability and future-proofing, I personally would use an external DB service, such as Xano.
The benefits of using the native bubble database is that it’s well supported and easy to use within bubble, and is “real-time” in that data changes are shown to the user immediately. You can achieve the latter using external databases, but it requires a LOT of effort. The downside is the DB is quite inflexible in many ways and very opaque - so it’s very difficult to optimise (e.g. you cannot create an index on any field). It also cannot handle huge amounts of data, supposedly - but I never really tested it with large volumes of data before the WU pricing change made me move away from it. It’s also very difficult to move away from the DB, as it is so tightly coupled to your app that once you outgrow bubble - you’ll effectively need to rebuild an app from scratch, as there is no portable export capability in bubble.
The benefits of using an external DB is, as you say #1 all about the WU (this was my main motivation to move away from bubble DB), performance and flexibility. External DB services such as Xano also commonly have API capabilities and caching support, plus localised services that can provide a better user experience. The biggest benefit however, is that you aren’t locked into a single vendor solution, as most alternative services use standard less-opaque services (e.g. Xano uses Postgres, and can even grant direct access to the DB including exports… and APIs can use JS lambdas). This additional access also means you can optimise it easily - for example adding indexes for performance reasons. The downside is - you will need to make extensive use of the API connector plugin (NOT a fun experience), develop APIs in Xano, and you now have another platform to pay for and also maintain - which depending on your goals, might be more expensive than paying the WU for your app. In my case though, I went from thousands of WU to <10 - so it was really a no-brainer in my case.
Also, if you intend to use an external DB to hold user credentials - it is a VERY challenging task to synchronise the systems. Bubble DB can use privacy rules linked to user accounts, so if your primary user store is external - you will lose some of this functionality. If it remains in bubble, you need a way to “link” the external DB to bubble user accounts. This syncing is possible, but it will require very careful planning to achieve. I had to develop my own plugin (forked from Xano Connector) to make it possible however.
Hope this helps!
1 Like