- Dave Conder
- Dec 07, 2020
We are big fans of Kentico Xperience - for over 15 years now we have developed hundreds of sites leveraging Kentico as the backbone. We have watched it change and morph over time - increasingly incorporating digital marketing features and improving the authoring experience while always maintaining a flexible but robust framework for integrations and complex requirements. It is a favorite of developers.
In the latest version, Kentico Xperience 13, the product team there took the platform forward significantly - leveraging the .NET Core framework with MVC development patterns. We love where the product is headed and would recommend it for most mid-market and enterprise organizations seeking strong website capabilities alongside a stable, flexible framework.
But with this change came a very significant need: The ability to quickly spin up a Kentico Xperience site within MVC, incorporate pre-built patterns to optimize development, and include some of the core fundamentals needed in every website. We know there is a good portion of every website that is very repeatable - not the user experience, not the business flows, and not the integrations. But what is - the building blocks and tools needed for every website - should ideally be addressed once and replicated for all future projects.
And thus, Katalyst was born.
We have invested more than 1000 hours as a team at BlueModus developing Katalyst, a library of tools that enhance what Kentico Xperience provides out of the box, designed to make the process easier and more efficient. Besides the quick start processes, Katalyst also seeds a foundation for a powerful, decoupled architecture that will allow organizations to progress to a truly headless, platform-, device- and channel-agnostic CMS. In short, this set of tools not only helps you spin up your Kentico Xperience environment quickly but also sets up the eventual evolution to a fully headless content architecture.
The well-designed architecture of Kentico Xperience allows for a more ‘purer’ MVC development environment compared to other .NET platforms. But there are some challenges baked into the process - which is what Katalyst is all about.
For instance, the use of TreeNodes as the fundamental object reference for a node in the content tree, based on ADO.NET, means the content is inherently strongly typed. This results in tight coupling of the entire MVC application to many of the Kentico Xperience internal objects. That means in a truly headless system they cannot be used in an abstracted way. Each object is a node of complex data tables, often connected to layout specifications on the website and CMS, with no easy way to convert to JSON, which makes that content truly platform-agnostic.
Katalyst helps solve this mismatch by converting the TreeNodes into structured POCO graphs, designed to take full advantage of the .NET Core MVC framework with additional coding that more readily enable a headless architecture. The repositories abstract the underlying CMS front-end (the website itself) by using contracts, and Katalyst’s built-in POCO Generator, Document Repository, and Pre-built REST API help reclassify it all as generic, simple objects to communicate in and out. After that, they lose their tightly coupled (meaning layout, web function, entity dependent) nature. The front-end does not care what is coming from the back-end if each piece adheres to the repository contract. This approach allows for a huge degree of flexibility and manageability in the backend and enhances testability over the system.
Using this suite of tools to help in building common, simple patterns also reduces the need for long-term Kentico knowledge, which helps to make the entire ecosystem work more effectively, more quickly for you and your team. Our goal in helping pull together the tools in Katalyst is to streamline the whole process of moving into the more advanced, and potentially truly headless and fully platform-agnostic, the world of content management.
Lastly - Katalyst is not a proprietary set of code or a product in and of itself. It is a simple starter kit - allowing our customers to take advantage of code that would have to be done anyway. We have intentionally kept it simple and light - pairing it down to the basics to avoid any sort of bloat or unnecessary patterns.
Why the investment? It certainly helps differentiate us from our competitors. But more important for me, it makes development so much easier and enjoyable. Rather than rebuilding the patterns and approaches, we have built hundreds of times; our team can spend time on the more difficult (and fun) efforts with a project.
The best analogy I can offer comes from my contractor who recently redid my basement. He came to the job with a ton of tools - a drywall hoist, a reciprocating saw, a ladder. I would never think I would be charged for these basic tools needed to make his job easier. You should not be charged for something like Katalyst either. It is the tool we need to get the job done. It makes things easier, more efficient, and ensures the project is stable and viable for the changing needs in the market.