Reusability is an integral part of application development and it's always been a highly requested feature of Appsmith. Reusability has many benefits such as accelerating development, centralizing business logic & introducing standardization into applications. We've always had different strategies for reusing work, but we've been hard at work with several teams specifically focused on making it even easier to reuse work and faster to build applications.
How are we building reusability?
Reusability isn't a one-size-fits-all concept. It needs to be evaluated based on the distinct requirements of different user types within Appsmith—developers, community members, and business users.
- Developer Perspective: Individual developers seek ease of reuse across pages and apps, a common need for both Community Edition (CE) and BE users.
- Goal : Speed
- Community Ecosystem: Community members want to share, discover, and reuse public/community work to accelerate development and inspire new solutions.
- Goal : Sharing
- Business and Enterprise Features: Business owners demand advanced functionality for internal reuse with tracking, versioning, and bundling, providing governance, maintainability, and standardization.
- Business goal: Centralization
- Enterprise goal: Governance
The challenge is that things that are important to one type of user may not always be important to another user. This can make it difficult to balance what we build and how we build it. The solution is to provide different types of reusability functions based on the specific needs of each user type, and typically this is how we determine what to build in the community versus commercial versions.
To address these considerations effectively, we'll delve into the features and requirements of our main platform versions —Community Edition (CE), Business Edition (BE), and Enterprise Edition (EE).
Community Edition - Blocks
In our Community Edition, we introduce Blocks. A Block is a collection of widgets, queries, and/or javascript bundled into a single JSON document that can be exported, thus enabling developers to capture and reuse their work across different apps. Blocks can be imported into any instance and are a simple way for developers to share work. Blocks are very useful for developers tired of copying code across pages and applications.
Remembering that our community users want speed (as developers) and sharing (as a community), this feature is designed to be fast, easy, and highly portable. It is based on the enhanced import/export feature we recently released. You will be seeing more about this in early 2024 as we make it even easier to reuse your work across your apps AND share that work with others.
Business Edition - Modules
For our Business Edition, we present Modules - A Module is much like a block but also provides a single point of change that can be propagated to all instances of the module. Modules are very useful for organizations looking to centralize critical business logic.
While Blocks are focused on providing a template for your reusable work, Modules takes this further by allowing you to track and manage updates across all your subscribing applications. While this is a great feature for an organization that wants to standardize its reusable work, it would be a nightmare for a community member. You wouldn't want your applications to change just because a community block was updated! But, for your company, this may be exactly what you want to help enforce standardization, and we have heard this many times.
In the business edition, you will have the option of using Blocks or Modules based on your own needs and the needs of the app you are using.
Enterprise Edition - Packages with versioning
In our enterprise edition, we present Packages - A Package is a collection of modules that can be versioned and distributed across instances. Packages are ideal for enterprises driving standardization and governance inside their organization.
A Package is more useful for large organizations with multiple teams, business units, or even subsidiary companies that make it complicated to create governance. Enterprise companies often have more specific needs around compliance and security, which are challenges that a smaller company may not have. Packages will help them manage reusability across complex organizational structures, and create mechanisms for enforcement that would be too much for a standard business.
What lies ahead?
We have spent a lot of time talking to our community of users across all different types of teams and needs. We've also researched how these problems are solved with other tools and platforms - sometimes well and sometimes not so well. This overall strategy is the result of careful consideration of our entire user base and is designed to optimize the experience for every Appsmith user based on their needs. The work on these features has already begun, and you will be hearing more about this as we roll out these capabilities at all levels of our product.
Want to dive into this exciting business feature and discover how it can make your life a whole lot easier? Sign up for the beta now and let the journey of effortless app development begin!