At Intenda, our passion for simplifying and accelerating development has been the driving force behind over 15 years of innovation in the rapid development landscape. From our roots as a development house building massive enterprise level solutions for large clients, we've slowly grown to understand the nuances and pitfalls of low-code development. But more than this, we've learnt how to fail.
Over the past 15 years, we've built four low-code platforms here at Intenda and used them extensively to serve our clients' needs. Through this, one thing became apparent: In low-code, simple things are simpler, and complex things are massively more complex.
We realized that, like other platforms out there, the bulk of what we were doing was making simple things simpler. Now, while we're not suggesting that this is not a noble calling, the fact remains that this is something that all low-code platforms offer you. Anyone can pick up a low-code tool and rapidly build something simple. This is not the problem we should be solving.
The big players out there are doing something right: For a wide range of personas and levels of experience, they are making it much simpler to prototype and build applications. But the glaring problem will always be: once you have chosen a low-code tool, you are locked in. Any complexities down the line will be complexities you need to solve within an already constrained space. You are tech-locked and your custom requirements are at the mercy of someone else's priorities.
In late 2018, we started developing Opus UI and set the following requirements:
Did we mention that we learnt how to fail? Following 15 months of Opus UI development, we started building our first client application. At that point, many of the platform's sortcomings were highlighted to us by more complex features. But here's the thing about failing often: you learn how to do it fast. At that point, Opus UI consisted of 6 core modules and each of these were rewritten at least half a dozen times during that next year. While this was happening, we were also developing in-house applications using Opus UI and these had to be fixed every time we changed a core feature of Opus UI.
However, we were making these breaking changes for a very good reason: We knew that there are certain design practices that are not conducive to maintainability and extensibility. Soon enough, rewrites stopped and we could focus on adding features to Opus UI that would extend its power and allow applications to be even more modular.
Fast forward 3 years and we are now in a position where we haven't needed to do a rewrite of a core component in a long time. Similarly, adding new features is very rare because we simply haven't had a need for anything we couldn't do within the Opus UI JSON space itself. That is, we can build extremely complex components and features by simply building the JSON components and scripts to support them. But it certainly isn't time to sit back. There is a huge amount of work left in supporting Opus UI application developers, both from within the engine, as well as through the development of new tools to assist in all aspects of application development.
This is where the open source community comes in: We've built enough applications for long enough using this platform. We have developers who are adept at using it. Simply keeping it in-house won't get us anywhere because we'll never push ourselves far enough. If Opus UI development is to be truly simple, then we need more hands using it, more eyes on the code and more voices asking the difficult and uncomfortable questions. For this reason, the Opus UI engine and library is now, and will always be, completely open source.
Going forward, our four main priorities will be:
We are excited to undertake this journey with the community. From our side, we are not here to dictate the future of Opus UI, but instead, we are ready to guide and to listen. Join our open-source ensemble and let's compose a symphony of innovation together.
See you soon!