Okay, so I’m about a month into bubble.io now, and all I can say is I CANNOT BELIEVE I JUST FOUND THIS THING! To say bubble is going to change my life is not an overstatement. I (somewhat sadly) now view everything through the lens of “how would I build that in bubble”. Everything. I’m having a conversation with my wife about HR new staff onboarding – new app idea. I launched Xero the other day to send an invoice to a client, and I instead got sidetracked TRYING TO REBUILD IT IN BUBBLE. I’m excited.
For the past month, I’ve been working hard on building my first app; a cyber security assessment tool, which right now is called “Project INDIGO” (project-indigo). It’s been a labour of love and passion, and I am getting there, but I can’t say that the journey to here hasn’t been without it’s trials and tribulations. So I thought I would share my 5 key “lessons-learned” – things I wish I knew before I just dove head-first into the bubbles (see what I did there? ). I’m sharing them in the hope that they may help some other person who’s keen to get stuck into webapp development but is nervous.
Without further ado:
Data. Data, Data, Data. And then, Data. No, this isn’t some twisted homage to Brent Spiner’s iconic portrayal of an android.
…this is about the data structure that underpins your application. To be honest, I didn’t know WHAT I was doing with the database when I started, and I just jumped in and started hacking stuff together. And while that “hold my beer and watch this!” attitude might work for the front end of the application (although, I’d argue probably not there either), it doesn’t help the back end at all. And EVERYTHING rests on the back-end. I should have spent some more time thinking about the data structures, how they change over time, the relationships between data types, etc. In the end, after about a week of banging my head against the wall, I ended up having to throw the entire back end out (and much of the front end!) and re-attack the issue. Even now, it’s not perfect, but it’s certainly better. So my first lesson learned is: Spend a bit of time before you start to understand your data and build a data structure that is going to work, is extensible, and is scalable.
Backend workflows FTW! I used to be a coder when I started my career 20-odd years ago, but promotions meant that I haven’t touched the working end of a CI/CD pipeline in a LONG time.
But I certainly remember my somewhat wanton and judicious use of do/while and for loops, and when I got into bubble, I was searching frantically for my long-lost loopalicious layabouts. Fast forward to yesterday (yes, a FULL MONTH into my journey) before I figured out that I could fire up a backend API to get the server to run some backend workflows on…you know where I am going with this…LISTS OF ITEMS! Want to email all of your users with one email? No problem. Type it once, hit send, and let that juicy, juicy backend do all the badonkadonk for you!
So lesson learned #2 is: enable and use backend workflows (carefully)
Youtube is your friend. There are some AMAZING people out there who are bubble.io geniuses who jump on Youtube to share their blazing awesomeness with the entire world, like some benevolent messiah spreading the gospel. Learn from them! Watch those videos, like the voyeur you know you are! My personal favourite is a dude from a channel (and website) called “Buildcamp” (Buildcamp - YouTube). This guy is Bob Ross-level watchable. But don’t let his cool demeanour and striking good looks (I’m straight, but I’m just sayyin!) detract from the fact that THE DUDE IS A STRAIGHT UP BUBBLE GANGSTA.
I also love the lady at Coaching No Code Apps (I think she’s even on this forum!). Link here:
Pretty much EVERY video she has done has been SUPER helpful, so check it out!
So lesson learned #3: Learn from the pros!
Variabl – I MEAN Custom States are the shizzle. Sometimes, you just need a friend. A friend to hold your shopping while you grab your wallet, or somebody to open the door when you are CARRYING THE COUCH UP THE STAIRS ALL BY MYSELF, KELLY! Oh…sorry.
That friend is the custom state. This little gem is great for holding onto something for a short little period of time while you do some other stuff. Need to one-up something recursively? Chuck it in a custom state. Need to inherit something from a referring page before manipulating it and using it? Custom state. Need to perform a complex calculation where there are multiple variables? You get the drift.
Lesson learned #4: Don’t be afraid of just sticking something into a custom state for a bit. Just don’t use it for everything; as my first year Java prof told me: “Just throwing everything into a variable is the code equivalent of desperate mediocrity”. Thank you, Mr Jardine. Thank you!
Last but not least; Option Sets are badass. Not everything needs to be in the database. Some things, especially things that need quick responsiveness can benefit from an option set. One of the best things I did was throw my “brand” colours into an option set. NO MORE copy-pasting hex codes into a properties bar – just grab the option from the option set. Anything in a drop-down is a PERFECT candidate for an option set. Hard-coding is for lesser people – variables that you can set once and reference over and over no matter WHERE you are in the application is way cooler. But be careful; there are no security / privacy rules on Option Sets, so don’t stick important stuff in there, like your nan’s credit card number.
LL#5: Don’t be a database-abuser! Use Option Sets instead!
Okay, that’s it. I hope somebody finds this helpful!