-
Articles
-

What you can and cannot do with Bubble

written by
Thomas Groc

Since its inception in 2012, Bubble has continued to evolve its NoCode platform and refine its features, largely thanks to the extensive feedback the team has gathered from the community.

Today, Bubble is a NoCode full-stack development platform that supports both simple and complex web projects.

The list below honestly describes what you can and can't do with Bubble technology (so far) so you can validate if it is the best platform for your project needs.

✔ Building high-performance web applications


Bubble is one of the most advanced visual programming environments for creating robust web applications. Whether you want to create a desktop web application or a Responsive web application that fits all screen sizes, you can (probably) do it with Bubble.

Social networks, SaaS applications or marketplaces are typical examples of web applications that can be created with Bubble.

The Bubble editor offers great flexibility that allows experienced developers to create pixel-perfect products with very advanced designs.

✔ Creating Progressive Web Apps (PWAs)


Progressive Web Applications (PWAs) bring the functionality of native applications to the Web and have many advantages:

- PWAs are easily installable (1-click with Android devices), making them accessible from the home screen like any other app. This is extremely beneficial for startups or companies looking to save on the cost of developing a native mobile app for Android and iOS. In addition, there is no need to sign up for Apple's developer program.

- Manual app updates and maintenance are a thing of the past with PWAs. Since the applications are served by a web browser, there is no need to manually update the application via a store or to enable a setting to automatically update the application.


- PWAs are interesting for referencing and bring a greater independence from the stores (risk of censorship, high commissions for in-app payments...).


Honestly, unless your project requires deep native functionality (see a full list of features available in your current web browser here: https://whatwebcando.today/), web apps and PWAs should do the job in most cases.

Good to know, it is always possible to transform a web application or PWA into a hybrid application, which allows to deploy it easily on the stores (Android Play Store and Apple Store).

✔️ Deploy a web-view version of your application on the stores (Apple and Android)

To date, Bubble does not offer an out-of-the-box solution for native apps. Although this feature seems to be in their long-term roadmap, it is still possible to combine the Bubble editor with a wrapper tool in order to publish your application on the stores.

Web-view deployed applications offer a great advantage for developers who want to update their application frequently as there is no need to resubmit the new version. In addition, because web-view mobile apps are powered by web technologies, they can be deployed more easily on the Android and Apple stores, reducing development time and costs.

Also, web-view mobile applications give access to more permissions and native features than web applications and PWAs (such as access to contacts, biometrics and smart login...).

There is a great plugin to turn optimized web applications into web-view applications: BDK Native by Gaurav Jain. There are other (more technical) ways to create web-view applications by combining Bubble with AppGyver for example.

✔️ Run custom code

The native capabilities NoCode of the Bubble platform are impressive. Indeed, Bubble offers many built-in features to build powerful web applications. But in some cases, Bubble's visual language is not the most suitable way to build a feature or perform a specific action. Sometimes it may be necessary to extend the functionality by creating custom elements and actions on top of Bubble's capabilities.

Most of the NoCode tools on the market do not allow extending functionality with traditional lines of code. Bubble is different in that it allows developers to run custom code to extend their application when they encounter a limitation.

Thus, developers can create plugins to write and execute custom code (Javascript) in applications. This is why Bubble is sometimes considered a development platform LowCode.

✔️ Connect to third-party services or hardware via APIs

Sometimes applications need to collect data from external sources or trigger certain actions (e.g., retrieve data from a social account, send a transactional email or read the temperature from a sensor). The Bubble platform offers a powerful tool, the API Connector, to connect applications to external software systems or hardware devices. Technically, you can almost connect to anything through APIs, such as an AI recognition engine to categorize images or an IoT device.

✔️ Connect to external databases.

By default, application data is read and stored on Bubble's servers at Amazon AWS. The Bubble vendor provides a tool, the SQL Database Connector, that allows developers to connect applications to external databases and run SQL queries from Bubble.

✔️ Scaling your application to support your growth

Scalability is a regular concern. Many of us wonder if Bubble's engine will be powerful enough to support the scalability of their application.

The first thing to consider is that the performance and scaling capabilities of your application are heavily influenced by the way the application is built and optimized in the Bubble editor. Since Bubble is a programming tool like any other technology, developers need to follow good practices to ensure decent performance and a good experience for end users. In other words, a well-designed database model, optimized database logic and queries, and a polished user experience.

In addition, the Bubble team is working hard to improve scalability and performance (e.g. with the release of the new responsive engine) and offers different (affordable) hosting plans to meet the performance needs of applications. By default, your Bubble application shares the same resources with all other Bubble applications in the main cluster (on the Hobby and Personal hosting plans). On higher plans, you can have more capacity (which means that the application can perform more actions in a given period when needed).

If needed, the Bubble team offers dedicated plans to its customers. In this case, you benefit from an infrastructure that runs permanently on an AWS server, but isolated from other Bubble applications, which increases reliability, security and scalability.

Bubble is an affordable solution to start a web project with limited needs. When needed, it is easy to scale your application infrastructure.

✔️ Manage roles, data access and privacy.

Bubble is an extremely open platform compared to other tools NoCode. That said, there are an infinite number of ways to develop an application on Bubble, sometimes with bad habits. By default, all data is open to the public when you create a Bubble application. However, the Bubble editor provides some tools to configure data access in your application. Indeed, privacy rules give the power to protect information and make sure that it can be accessed securely.

❌ Create native applications

Until now, the Bubble platform does not provide a specific engine to create and deploy native applications on the application stores. While this should be implemented in the medium/long term, it is still possible to create mobile PWAs or deploy web-view mobile apps on the stores with some techniques and workarounds (see above).

❌ Hosting an on-premise application

Bubble provides hosting to its customers on Amazon Web Services (AWS) cloud servers or dedicated instances. Currently, it is not possible to self-host a Bubble application on an external cloud (e.g. Azure) or an on-premise server.

That said, cloud computing is becoming the norm and AWS is recognized as the leading cloud provider (>50% market share), in terms of performance and security.

❌ Run languages other than Javascript

It is true that Bubble developers can extend the functionality of an application with custom code. But only Javascript is supported.

The core engine of Bubble is written in Javascript. At this time, developers will only be able to use Javascript to build custom integrations on top of Bubble.

❌ Developing complex algorithms

Bubble's visual language is not the most appropriate tool for developing complex algorithms, including recursive operations or loops on data. As a better option, developers can use or write custom algorithms outside of Bubble (hosted on Amazon Lambda for example) and use them by passing the data through an API (e.g. a machine learning algorithm).

❌ Creating video games (advanced)

Don't expect to create and run complex 3D or platform games with the Bubble engine... although some users in the Bubble community have managed to create small games that are worth trying, like The Legend of Zeldinia by J805 or Pizza Mania by Landowski.

❌ Export source code

Bubble applications can only be run on the Bubble platform. This proprietary model is justified by Bubble's business model. Thus, you cannot export the source code of your application. If you decide to leave the Bubble environment, you will have to rebuild the logic of the application on another language. You will only be able to export the application data and the custom code that you have added as an overlay to Bubble.

The question to think about is: why should you leave Bubble?