An open-source no-code web app builder, designed to enable less technical users
Budibase is an open-source, low-code building platform focused on both increasing the speed at which developers can build internal apps and enabling business users with no coding experience to build their own internal tools. Budibase provides an application canvas, hosted database functionality, and a workflow automation suite as their main product set.
Budibase abstracts away core coding concepts into an easy-to-use visual language. While low-code tools certainly do help level the developer playing field, giving non-engineers with the tools to create useful software, itās important to remember that low-/no-code tools inherently have difficulties when it comes to scalability and engineering best practices.
As a development agency specializing in internal tools we were keen to spend some time digging into the product to give our clients the developerās perspective on the platform.
Hereās a quick summary:
- Budibase is a low-code platform for building internal tools, built for citizen developers with little to no coding skills, as well as for engineers
- Teams can integrate third-party resources or create new data structures in the app
- Business users can certainly make simple applications within Budibaseās development environment, such as simple CRUD (create, read, update, delete) applications, but it might not be suitable for more complex use cases
- Budibase has a large focus on making responsive apps for most screen types
Budibase: who are they?
Based in Belfast, Northern Ireland, Budibase joined the ever-growing ranks of the low-code platform creed in 2019, to try and plug the gap for business users to automate and optimize their own internal business processes. They completed their seed funding at the end of 2022, raising $9.2m. They are still a relatively small company with around 25 employees.
Those who have worked with OutSystems before are likely to see a lot of similarities in the Budibase platform, albeit with a more attractive, and somewhat more intuitive, interface.
Who is Budibase built for?
Is it for non-coding business users, engineers, or both?
This seems to be somewhat of a complex question.
Budibase markets itself as a low-code tool, not a developer tool (whatās the difference, you ask? Read our post). This means that most coding you would typically use to build an app is abstracted into a more user-friendly, non-technical visual interface. Core coding concepts are transformed into a proprietary language (usually, plain English) to be more accessible for those without coding experience.
Nevertheless, Budibase isnāt looking to totally alienate engineers and also claims to have built a platform designed for developers to work their best too.
From our experience, these two approaches generally have an inverse relationship: the abstract language and techniques of low-code generally require an initial period of learning and adjustment to limitations and workarounds. This is fine to enable non-developers to build (and certainly easier to learn than code), but for engineers, this is likely slower and more limiting than the coding they are used to.
Additionally, since the ability to code in Budibase is limited to certain areas of each application (aside from forking the open-source base code), engineers will also find they hit limitations and roadblocks that they wouldnāt experience with traditional code. Therefore, it may be faster, but it may also only get a product 80% of the way there.
So, it seems that Budibaseās target builders are quite broad between non-coders and engineers, and more often than not they refer to their platform as built for āIT professionalsā - perhaps somewhere in the middle. From our understanding, when they launched a few years ago, they were heavily focused on targeting developers, and this seems to have dwindled in recent marketing to be broader, if not no-code leaning.
Open-source perks. Suitable for SMEs, but some Enterprise traps
Itās important to note that Budibase is open-source, meaning that on-prem users can use it, and extend it, for free, with a couple of limitations. A major one is the inability to group permissions on the free plan - which is integral to higher-level internal tools. Nevertheless, being open-source gives developers the option to fork their apps in ways that might not be possible in the IDE.
From our perspective, Budibase is possibly more suited for SMEs and early-stage start-ups with little technical knowledge, who arenāt yet ready to scale onto more technical platforms. It may also be suitable for a small non-technical team, who donāt have their own databases and resources and want to start a simple business tool from scratch. Nevertheless, itās important to be aware of potential pricing traps that push businesses into the āEnterpriseā tiers for key functionality theyāll need down the line - though we think these are fair for the product Budibase does provide for a good price, if not free.
While Budibase certainly has enterprise customers in its arsenal, we think that many enterprise companies wanting their engineers to build complex internal tools may find the Budibase platform unsuitable for their scalability needs and complicity standards.
Weāll discuss why this is the case with a deeper dive into its features.
Budibaseās key features
Budibase allows users to integrate third-party business resources and perform basic automations, build simple applications, and store data. Application layouts can be optimized for tablets and mobile devices too.
Let's dig further into the product with some of the key areas to look at when building internal tools.
Low-code development environment
Budibaseās core product is a low-code development environment. To structure the build, Budibase organizes development into Data, Design, and Automate tabs. The general approach in the Budibase environment seems to be to massively reduce the amount of editable code within the application, opting for forms, dropdowns, and visual UIs, in an effort to be as low-code as possible.
This certainly cuts down on development time for non-engineers, who can make use of the simplified UI to create semi-technical apps, but is most definitely rigid in terms of customization - much more rigid than we would be able to accept when building out anything more than a simple app.
No-code data layer
As well as third-party integrations, Budibase provides an internal data layer to be used within applications, built on Couch DB records.
Editors can also calculate statistics, create unique views, and perform simple data filtering via the data tab. Technical folk may find it tedious to interact with the data tab instead of creating a regular Postgres database, however, for non-technical users, the data tab can serve as a more accessible way to create simple applications and prototype data structures.
In true open-source fashion, data from the Data tab can be exported as a CSV, JSON, or JSON file with a schema. This is particularly useful for those looking to move their data outside of Budibase or convert to a normal SQL database in the future.
Application Designer
Programming the UI, configuring components
Applications are separated out into screens. Each āscreenā is a unique page that can be configured separately. Pages can be stitched together to form one holistic application.
Budibaseās designer tab is where editors can create the actual user interface for an application. Here, users can drag in components, configure properties, and style the components.
This is where the low-code proprietary language can create some friction for developers. For non-coders, the tabs and components provide a basic understanding of the building blocks needed for an application, but for an engineer some of these elements are unintuitive. For us, an example would be the idea of adding a ādata providerā to the canvas before inserting any component connected to data.
One fairly major snag in the UI builder is the fact that the components inside of Budibase isnāt fully draggable horizontally. Ā The horizontal positioning of components must instead be manually defined through the āmarginsā section in the right-hand panel, which can be bothersome. Having really simple drag-and-drop capabilities is arguably one of the features of low-code most worth having, for developers and citizen developers alike.
A similar problem we faced was the inability to preview certain elements easily, like the table default popout, in editing mode, and some general bugginess when building.
Event handlers are either configured in the component settings, but triggers and actions are quite limited.
Some more options can be configured in the conditions tab, where editors can manipulate some component behavior, such as hiding or showing the component or any actions triggered on an event change.
Extending functionality with custom code
Since Budibase recognizes that no code is limited, and a little code is always needed to get more complex products shipped, it does support the use of custom code in some areas of the application.
The way code is introduced to the IDE is principally through āBindingsā, also referred to as Handlebars, which can be traded out for standard JavaScript. In a compatible component, users can click the lightning icon to open up the code panel, and add custom logic - but only where itās supported. When using these bindings, we found the attributes menu quite unhelpful - it feels a lot like thereās work to be done for adding custom code easily.
The issue with this approach is that the code is scattered throughout the application components and it can be difficult to ensure that code is not repeated, and tricky to find and fix bugs. The IDE would definitely benefit from an overall āscriptā option that can be referenced throughout the application to avoid this issue - as is standard in most developer tools. Using the automations tab seems to be the best solution for this for the time being.
Functionality can also be custom-coded and connected to the app via custom plugins, and imported into the application. This can be useful for developers overcoming platform limitations, but mitigates the appeal of a low-code platform.
Building custom apps with complex business logic
As developers who have spent many years working on developer platforms like this one, we found building out the UI and functionality to be sometimes tedious and limited. For complex build-outs, Budibase doesnāt provide the nuance or scalability that is needed to manage a sophisticated application with high-level functionality. With that being said, for simple CRUDs, Budibase can help you get the job done without having to bother your technical teams. As with many low-code tools, itās also a great place to create an MVP.
Compared to competitors like Retool and Appsmith, Budibase arguably has very few programmable properties, options for adding custom code and event handlers.
The automation tab
The automation tab is where editors can create CRON jobs via a Zapier-esque interface. Without needing to use code (but also using it if they like), editors can create simple scheduled jobs and perform action workflows on their data. Automations can then be tested and monitored within the Budibase environment. Unlike other platforms, automations exist only on the application level - applications themselves need to be published to run, which is less useful when creating scheduled jobs for instance.
The automation tab allows for common step types like loops, queries, and conditions. Users can also query data and execute JS scripts. Though useful for smaller, simple processes, the automation tab is not built for scalability or normal developers. Developers are pushed towards using Budibaseās proprietary GUI, rather than being opposed to code-first.
Permissioning
Permissioning is a crucial feature for internal tools since critical data is often being dealt with that cannot fall into the wrong hands.
Budibase does offer user groups on the paid plans. User groups are split into three default access permission groups: Basic, Development, and Administration. Basic is a normal user without edit access, development can edit and use the application and administration can do the same as development but also has the power to change user groups and delete the app.
App permissioning is given on the user group level, while in-app actions are determined at the user custom role level. ser roles can be used to limit POST and WRITE access.
All-in-all, permissioning works well on its basic level but is generally not as robust as their competitorsā options - itās difficult to manipulate individual component interaction on a granular level, and control is mostly limited to viewing and writing data only. For this reason, Budibase would not be a suitable option for internal tools that handle critical data, or data with any particular sensitivity, such as health or financial data.
Source control
Unfortunately for most developers, Budibase has extremely limited source control options. Applications changes can be published and reverted, but there isnāt a way to easily compare changes, see previous versions of the application, or more generally implement deployment best practices using Budibase. Compared to source control managed via Git in platforms like Retool and Appsmith, Budibaseās version control is rudimentary.
Budibase does offer the option to create application backups for business customers. Users can create a backup before publishing an application and revert to it in case a bug is introduced into the Budibase application. Again, this is a good solution for a simple app built by citizen developers, but doesnāt provide the kind of security or compliance most developers are looking for.
Pricing
Budibase recently switched from a complicated day pass option to standard user-based pricing. The pricing is fairly typical, if not on the low side compared to other internal tool builders like Retool, Appsmith, and Superblocks. Itās also more straightforward payment system than other competitors like OutSystems when it comes to higher tiers.
Both Budibase and OutSystems offer a very generous free tier, though Budibase is one of few platforms to offer such a great free option for on-prem - most companies only offer this at the enterprise tier.
So, what is Budibase good for?
Budibase is great for enabling non-technical team members to build simple internal software that doesnāt involve mission-critical processes or data. Where companies might normally need a software engineer to create applications, Budibase provides a good set of guardrails for non-technical teammates to have a go at app development.
In terms of engineers and those who already know how to code, itās still a fast way to build out simple internal tools and CRUDs with some custom logic, as long as users are realistic about scalability.
Basic CRUD operations
Budibase is great for simple CRUDs - interfaces that allow you to Create, Read, Update and Delete data. Instead of bogging down your development team with internal requests for such simple internal tools, users can create CRUDS with relative comfort that nothing is going to break. Nevertheless, they should exercise caution with critical data and permissioning - itās best to focus on Read-only data.
Simple admin dashboards and statistics
Budibase provides a lot of the components to make simple admin dashboards: Ā users can quickly pull in a chart, interact with data, and provision app-level permissions to an application with ease. This can also be a great way to test an MVP before launching a product.
Since Budibase offers an integrated data layer, this can be a good all-in-one option for importing data to present in a clear dashboard for users to manipulate.
Replacing spreadsheet workflows with something more compliant
Budibase is great for replacing pesky internal Google Sheet workflows with validated data entry and views. Again, since the database can be integrated, this can create a more compliant system for storing data than a spreadsheet. Builders can also include action buttons to take direct action on the data and integrate third-party apps and resources, which is not possible to the same extent as Google Sheets.
What is Budibase not-so-good for?
Enterprise deployments and mission-critical workflows
As weāve mentioned, we feel that Budibase is most suited to enabling citizen developers as opposed to expediting developer time. For the time being, Budibase is not a great choice for enterprise companiesā important data or mission-critical workflows - anything that you canāt afford to break. Those kinds of tasks are best left to developers who are trained in more compliant platforms and can handle bugs and errors in a secure and compliant way.
Complex portals, external use cases
In terms of client portals, the permissioning and deployment/source control options raise issues for us when considering this use case. However, it should be noted that the responsiveness of Budibase on different screen sizes could be useful for this purpose.
Teams of developers
Budibase is a great interface to spin up a quick MVP to present to your teams, but engineers arenāt likely to be keen to proceed on the platform for the actual build-out. The lack of customizability and rigidity of certain elements of the application are at odds with the kind of skills developers are taught and the level of flexibility they are used to with traditional code.
Of course, using low code can be much faster than traditional code, but as with most platforms, this usually comes with early roadblocks that hinder truly custom development. Whatās more, Budibase is a proprietary platform with low portability, so once you hit those roadblocks, a larger migration will be difficult.
Summary
In sum, Budibase is a great platform for those kinda-technical-but-not-a-coder-either types to be enabled to create something technical and useful. Itās also a great option for those who have worked with platforms like OutSystems, and are looking for an open-source alternative. You can create basic apps and CRUDs quickly and easily, and have them deployed within a day or so.
As weāve explained, as developers we found that we hit roadblocks pretty early when building, and were disappointed by the experience in the IDE. Adding custom code to extend the app is still quite a clunky experience and needs refining to create truly complex apps. We feel a little like they are trying to please too many people with their developer experience - both those without any coding experience and those with plenty, and this has resulted in a relatively confused identity as a building platform. As they say, they see a ādeveloperā as anyone building in Budibase, but in practice, these two sides of the spectrum are very hard to reconcile in a single builder. We think they have built a platform that is much more geared towards low-coders than engineers, and this is not inherently a bad thing.
Finally, we have to recognize the importance of Budibase being an open-source platform, particularly in an internal tool-builder ecosystem that is becoming increasingly proprietary and where vendor lock-in is a real concern. This offering, along with a generous free on-prem version is a real perk of the application and may be of great value to some clients.