Introducing @zemble: Our Vision for Building Composable Systems

3 min read Original article ↗

Robert Herber

In the ever-evolving world of development, efficiency and flexibility are key. Even more so with AI evolving faster day by day. That’s where Zemble steps in — our vision of a plugin system for building composable apps with ease and efficiency on top of TypeScript.

What is Zemble? Zemble simplifies the process of creating modular, scalable, and maintainable applications by offering a robust platform for building composable apps. This open-source effort, spearheaded by Kingstinct, aims to streamline the development process while maintaining high standards of code quality and functionality.

Where microservices introduces complexity by involving infrastructure in it’s approach to separation of concern Zemble aims to provide a plugin system that’s infrastructure agnostic. In the long term we see Zemble providing “fullstack plugins” that are easily reused across projects no matter if those projects are composed as huge monoliths or run as thousands of microservices that communicate with each other. We find it already works very well on backend — while we’re still exploring the best options on frontend composability.

Press enter or click to view image in full size

Key Features of Zemble

  1. Modularity: Zemble’s architecture promotes the development of modular components, making it easier to manage and update individual parts of your application without affecting the whole.
  2. Ease of Use: Designed with simplicity in mind, Zemble allows developers to integrate plugins seamlessly, reducing the learning curve and accelerating development time.
  3. Community-Driven: Being an open-source project, Zemble thrives on community contributions, ensuring continuous improvement and alignment with the latest industry trends.
  4. Reusability: At Kingstinct we’ve found we often reuse the same patterns over and over again, with smaller adjustments between our various projects. Being able put this into reusable modules makes it easier to both develop and maintain our projects.

After migrating one of our projects we managed to reduce the code in our backend from 70 000 to 40 000 lines of code, getting rid of a lot of bootstrapping code that we could put into reusable zemble plugins instead.

We have put a handful of plugins out there, which aligns with how we build most of our products at Kingstinct. We hope Zemble will be useful to many more, and that we together can build a community of plugins around it.

Getting started is super-easy, just run this to get a backend with GraphQL, routing and testing ready for action:

bun create zemble-app <name-of-your-app> graphql

Also, check out the monorepo to see all that’s available currently — and how you could contribute to the Zemble ecosystem!