I develop on another platform but a client is requesting many features that just don’t exist there yet.
I built a couple demo pieces in Bubble and so far the functionality that’s requested is possible but large scale version of this app is a complex ERP to create and process work orders.
Apologies but I’m going to brain dump a bunch of questions here…
How strong is Bubble as a database? Is databasing a strong point of Bubble?
This ERP would have a ton of custom logic and math. Can math be displayed real time to a user based on form input values?
How does performance scale with database size? Specifically number of tables, records, connections, files uploaded.
The backend of this application would be a data source for 2 different live apps on 2 different domains. How would that work?
A lot of the functionality will be conditional…for example creating a work order and assigning a client and partner. Work order fields will need to be conditional based on client and partner field values.
Some of features requested are messaging capabilities, notifications, and a mobile app. Can anyone tell me how that looks with Bubble?
I think that’s it for now. Appreciate any time spent answering these questions.
Hey there @tim15
I will do my best to answer some of these for you. Hopefully others will chime in as well for you to get a well rounded answer for you.
I am not sure what you mean by strong… Bubble uses databases, it’s one of Bubble’s main selling points in my opinion. As well as the flexibility of course. I have clients that have over 100,000+ items in their databases and use Algolia to search the databases if need be, to improve speed.
Custom logic and math calculations are not a problem. Sometimes I use tricks to get it to work the way I want, like saving data in set states or even in a secret popup so I can do the calculations easier. You can display anything you want to the user. Just do the calculations and show it on the screen with a text element. Or use a math plugin.
Bubble is built to scale with you. You can see their plans to see the cost and see if it is something acceptable for your client. If you need more “capacity”, you can add it.
You can connect other databases using the API Connector (By Bubble) as long as you have access to an API where your data is stored. Or you can use the SQL Connector (by Bubble) if your database is in a SQL database. Just depends where your database lives.
Conditionals are so easy in Bubble. This shouldn’t be an issue. You can build a page based on a data type attached to the page or anything else you need.
Split these up for you:
- Messaging is not a problem, you can do this within Bubble by creating your own messaging system within. Or you can send text messages using Twilio or emails within Bubble instead. Just depends on your preferences…
- Notifications, you can use OneSignal for native notifications using a plugin like this one or one of the other ones that are available.
- Mobile app, there isn’t a way to make a full native app in Bubble yet. However, there are wrappers where you would wrap your webapp in a native app to publish it to the app stores.
Hope that helps!
For All Your No-Code Education Needs:
- One-on-One Tutoring
- eLearning Hub
- Video Tutorials
- No-Code Classes
Super helpful, thank you! It’s a big change from my normal to develop on Bubble but hopefully it goes well. I’m still a bit worried that I’ll hit major road blocks that will frustrate the client as I learn the platform.
Major roadblocks are speed, reliability in terms of uptime and horizontal responsiveness. Other than that, it’s a great platform.
You won’t be able to build a solid web app without spending some time on making simple CRUD applications. If you look at my portfolio, you can see some of my earlier templates compared to nowadays.
As time passes, you can build great stuff
@nocodeventure Can you elaborate on speed? Is speed an issue throughout Bubble or strictly dependent on design, and database structure?
And by horizontal responsiveness, you’re referring to page responsiveness right? Because yeah, that’s been a headache already. Some things just make my scratch my head wondering why an element is behaving a certain way. I’m getting the hang of it though. I’m much more familiar with bootstrap grids and CSS.
Complementing the awesome guidance provided by @J805 I would like to add that speed depends on overall good practices when building in Bubble.
Following you can review some great guides put together by different bubble users:
@evanlitttle How To Optimize Your Website Speed
YouTube NoLogo Channel Data architecture design in Bubble.is
@kevin12 @stephanie An awesome guide by the folks from Airdev on optimizing for speed
Hope this helps!
No problem If you arrive at any of the roadblocks just get in touch. I have one-on-one sessions that can help, if need be, to get you going faster.
For speed “issues” you just need to learn how to optimize your database as well as optimizing workflows and other suggestions as @cmarchan posted. Great links to dig into! They are worth the time to read, believe me.
You will be learning a new platform, so you will have a learning curve. Just like any other software.
Hope to talk with you again! Keep up the good work!
Appreciate that very much, I’m looking forward to exploring this application and see how it turns out.
And thank you @cmarchan for those links. Good bedtime reading
I’m not having any issues with speed since I’ve minimized doing any searches on the database directly. Instead, I use the Relational data connected to the Current User. You can test some of my web apps.
A great example is RepairCRM, it’s a web app template made specifically for repair shops, has a lot of features and you would expect it to be slow but it’s extremely fast.
Hey just to follow up on this, can you explain what that looks like in Bubble? I’m not sure I follow completely. What is a direct database search in Bubble vs relational data?
Can you give me an example with a group element or something? In your expressions, are you not using “do a search for”?
Bubble’s database is a relational database. Example > When you create a Project thing and a Task thing in the database… and you add a field to the project of type task … you are linking the project and the task which means they are “related”.
Perhaps this video might be useful > How to Configure Database in Bubble
Right right, sorry I was struggling to phrase the question clearly. I’m familiar with relational databases. My background is building with Knack and Tadabase.
I guess what I’m trying to ask is - for a practical purpose, when building the front end, what would be classified as a direct database search?
I am not sure Bubble intended for searches to be classified as direct or indirect. There are many operators, constraints, etc when building your search expressions (the equivalent to conventional dB queries).
That’s what was confusing me while trying to make sense of what you said earlier.
Here’s an overview of my ERD just for reference. Not zoomable, just putting it here to see the complexity.
Hey @tim15 , I haven’t used Tadabase but I have built some rather complex applications in Knack. Anything you can build natively in Knack can be built better (much better) in Bubble.
The biggest thing to remember is that in Bubble you have to build every piece of every element.
Whereas in Knack you can just drag a table onto the canvas, tell it what datatype to source, the conditions you want that data filtered by, click the fields you want to display, and off you go with filtering, sorting, etc all built-in.
In Bubble you will build every piece of that table… header, rows, sorting actions, searches, filters, pagination, etc.
But with granularity comes much power! Compared to the search and data manipulation limitations of Knack you will feel like a superhero in Bubble.
2 cents from a former fellow Knack builder.
Appreciate you chiming in! Especially since you’ve built apps with the same platforms as I have.
I am certainly better at developing UI/UX than I am databases so while I’m excited to have that opportunity with Bubble, I am feeling like this project will be daunting.
If I’m trying to build a table, the rows are going to be a repeating group right? Sorting, filtering are buttons with workflows? Definitely going to struggle with responsiveness, that part just hasn’t clicked yet.
I see there’s some “spreadsheet” / table plugins too, I can take a look at those.
@cmarchan well good news for me, apparently I’ve always built my databases with inverse linking and never knew the name of it!
Funny that video is about chats because I’m going to be building that as a core feature. My app, however, will have 3 conversations per work order created. So add an extra thing that’s “divorced” from messages. Like this…
- Create work order with an admin, client, and supplier.
- New work order creates a conversation connected to admin + work order ID, a conversation connected to client + work order ID, a conversation connected to supplier + work order ID.
- 3 groups displayed on a work order details page
- Messages connected to conversations through the process shown in the video.
I know I’m a bit off track from my original post but I appreciate the open, and helpful discussion!
Yeap perhaps those spreadsheet / table plugins maybe of some help to implement what you envision.
@eli nailed it about what is required to build with Bubble. Overtime, the more I build, I come to terms that Bubble is indeed a visual programming language (as Josh and Emmanuel, its makers, describe it) and not a “builder” platform.
Using true builders get you used to relying on much pre-built functionality in components.
Bubble is a wonderful piece of tech enabling an “opera’s orchestra” of multiple elements to play what you tell it to.
I can’t see anything on the image above. Another example perhaps below? It contains some features similar to ERP’s.
Yeah sorry, I didn’t upload the full file - just a zoomed out screen shot because it’s not my ERD. It’s an ERD of the clients current application built with MySQL, .net, and react
I am seriously considering purchasing a template to save time on the front end.