Building Interactive Web Sites as Easily as Spreadsheet Formulas?
December 1, 2016
"Man is a tool-using animal… Without tools he is nothing, with tools he is all." - Thomas Carlyle, 1834
I'm rarely effusive in my praise for a new tool, but I can hardly overstate my excitement about Bubble, a web programming system. The basic concept: Draw the web app you want, using standard components like text boxes, images, and buttons. Create "thing" objects to hold the app's data, specifying the characteristics (fields) of each thing and the way one type of object relates to another. Then add flowchart-style "workflow" procedures to explain what happens when. Amazingly, this process yields a multiuser interactive web app that works as you instructed and as you'd expect.
Bubble is a particularly clear fit for entrepreneurs whose business concepts call for custom web apps. Suppose you have an idea for an online service—maybe you'll match dog-walkers with dog-owners needing assistance, or you'll help annoyed motorists report commercial drivers parked illegally. For such a project, you might hire a developer through a service like Upwork. But an outsourced developer carries some important problems. For one, the developer might not see the vision you have in mind, despite your best efforts to explain the features desired. (That's all the tougher because many entrepreneurs don't have experience writing specifications or providing precise requests.) In all likelihood, you'll want some adjustments based on tests with early customers and a better understanding of their needs. Even if things go perfectly, you'll often end up beholden to the developer for future changes; switching developers often entails prohibitive delay and expense given the difficulty of editing other people's code. Meanwhile, developers also worry about creeping project scope, unclear requirements, and payment disputes—so they end up having to quote high fees in anticipation of these predictable problems. Entrepreneurs often accept these tradeoffs for lack of alternatives. But Bubble offers another way—letting a diligent entrepreneur build a working prototype without an outside technical specialist. Doing the work yourself, there's no risk of communication breakdown, and changes entail effort but not out-of-pocket expenditure. A surprisingly committed community of other Bubble users provides assistance with anything unexpected.
In fact, Bubble should be equally useful in established organizations. Most companies have centralized software for their core processes, but often ad hoc solutions around the edges. Software for submitting expense reports, requesting a loaner laptop, or signing up for the company softball team? These are usually ad hoc, making do with Dropbox or Google Docs or a piece of paper on a clipboard. Furthermore, as a company's core business changes, some features end up missing from the company's main software systems. Often tools are carryovers from decades past—making it difficult to add modern improvements. One might hope that well-run companies would prioritize their requirements for robust implementation by centralized IT staff. But finding development resources can be surprisingly difficult, with constant pressure from excess requests. Here too, Bubble offers a promising alternative, allowing the end users who best know a situation to write the software that will make them more efficient. Savvy end-users have been building this kind of thing for years, all the way back to the PC revolution. But with Bubble, it's modern, web-enabled, and API-connected.
Bubble in Context
It's natural to compare Bubble to Visual Basic, the Microsoft programming environment that made programming accessible to a generation of self-taught enthusiasts (myself included). But where VB ultimately requires developers to write code (albeit in a relatively intuitive language), Bubble does not. Instead, Bubble's workflow instructions are graphical, composed of actions like "make changes to a thing" or "go to page," each chosen from a menu. Then there's no frightening blank screen confronting a new developer, and no magic syntax to learn.
In some respects, Bubble is closest to worksheet functions, widely used in Microsoft Excel, Apple Numbers, and Google Sheets. One might also compare Bubble programming to macros in Microsoft Access or scripts in FileMaker Pro. In each of these environments, as in Bubble, designers use a series of predefined functions, chosen from an on-screen menu, to create software logic. But Bubble's apps can do notably more. For example, compared with Excel, Bubble boasts a full relational database with custom types a user creates. And where Excel files usually reside on a user's hard drive, Bubble apps run in the cloud—naturally combining data from multiple users with full interactivity. Running in the cloud, Bubble can easily interact with other services—show a Google Map, charge a user's credit card, add an email to a mailing list.
Bubble is arguably closest to Microsoft Visual Studio LightSwitch, which similarly helps casual developers build web forms to access server-side data, automating low-value "plumbing" tasks. Indeed, I'm a big fan of LightSwitch. But LightSwitch comes with some baggage from its Microsoft roots. The paid license isn't a showstopper for serious users, and these days LightSwitch can build standard HTML apps usable on any platform and in any browser. Ultimately, most LightSwitch apps require that users write some code, creating a steeper learning curve and excluding a fair number of users who can make good use of Bubble.
One might also compare Bubble to the various web site templates. Two decades ago, GeoCities made it easy to make and host a web site with no code required—but Bubble is quite different, building interactive database-backed applications , not just static web pages. Some modern template-based tools allow limited interactivity such as shopping carts and signup pages. With these tools, users are stuck with the logic that a designer anticipated; it's usually possible to hide unwanted options or add extra pages, but not to change the underlying concept or workflow. In contrast, Bubble lets a designer build an arbitrary site and with a novel structure.
Handholding for those who need it
Many advanced users can reasonably follow Bubble's online training, then design their own apps. Indeed, that's how I learned Bubble. The company's interactive lessons show key tasks.
A set of consultant-advisors now offer another way. Broadly, these vendors use Bubble to write apps more quickly and at lower cost than typical consultancies, passing much of the savings back to customers. And if customers later want to make modifications of their own, they can learn a bit of Bubble in order to do so at zero out-of-pocket cost.
I'm most familiar with AirDev, a design shop where business-oriented generalists build Bubble apps to suit customer requirements. A few months ago, AirDev added a "sprint" option with flat pricing and an amazing five day turnaround for scope and build. They offered me a free test, building a custom scheduling app to my specifications. I told them what I wanted; they came back with reasonable clarifying questions; and a week later I had an app. I sent a few adjustment requests, which they quickly implemented. And when I had subsequent ideas for further improvement, I used the standard Bubble development environment to make changes. I'm now using the tool with students, to rave reviews.
When I first tried Bubble a few years ago, I found some significant limitations—difficulty getting data in and out, limitations on what APIs were supported, sluggish pages. Those challenges all seem to be in the past. Meanwhile, a lively forum of Bubble enthusiasts helps to vet and prioritize feature requests, accelerating improvements.
My relationship with Bubble
I wrote this post on my own, not at the request of Bubble or AirDev. I'm a big fan of their approach but have no economic relationship with either company. AirDev's generous offer of a free "sprint" came out-of-the-blue and with no strings attached, not contingent on my writing about it; I elected to do that on my own because I was so impressed with their offering.
Bubble was founded in 2012 by Josh Haas and Emmanuel Straschnov. Though Emmanuel was not my student during his time at HBS, he has been kind to the school, including assisting numerous "FIELD 3" student teams working on rapid-turnaround microbusinesses, as well as guest-teaching in my class as part of my efforts to help business students strengthen their software engineering skills.
AirDev came in part from one of my former students, Andrew Haller, who joined with Vlad Leytus based on their shared experience wanting to make it easier to build online services. As I mentioned above, AirDev offered me a free "sprint," but this article was at my own initiative.