Jan 10, 2023
Open Source .NET Alternative to Strapi CMS
Written by Zack Schwartz
Introduction
Raytha is a content management system built on .NET that aims to fill the gap in the .NET community for a platform comparable to Strapi. Not only can it serve as a content management system, but it can also function as a rapid application development framework, providing a boilerplate for building large scale .NET applications. While Strapi is a useful tool for rapid prototyping in the node.js world, it has several shortcomings that Raytha aims to address.
Strapi Shortcomings
Although I have a positive view of Strapi, it is important to acknowledge some of its weaknesses that Raytha has carefully addressed in its development. The following are the top three concerns I have about Strapi:
- Content model is not stored in database. One major issue with Strapi is that the content model is not stored in the database. Instead, it is incorporated into the codebase of the application. While this may not pose a problem for some users, it can be a significant drawback in certain situations. For example, updating the content model in Strapi requires modifying the code of the underlying application, which can result in the need for an application restart. Additionally, this can make it more difficult to run Strapi in a docker container and create a multi-tenant version of the platform, as each customer would effectively have their own version of the codebase. There are other challenges associated with this approach as well, but these are some of the most significant. It is worth noting that Strapi has indicated that they have no plans to change this aspect of their platform.
- Targeting multiple database providers. Strapi made the ambitious decision to support multiple database providers, including MongoDb, MySQL, and Postgres. While this may seem like a positive feature at first glance, it can also be a hindrance to development. With this approach, every feature of the platform must be written and tested for multiple different database technologies, which can significantly slow down the pace of innovation. In fact, I believe that this contributed to the slower rate of improvement in the early days of Strapi. It is worth noting that Strapi has since dropped support for MongoDb in version 4. In my opinion, it may be more efficient to choose a specific database provider and build features specifically for that technology, rather than spreading resources thin by trying to support multiple options.
- Limited to 3 default roles. One notable limitation of the community version of Strapi is the restriction to only three default roles and the absence of single sign on. These are both important features that I believe should be included as standard. Fortunately, Raytha offers both single sign on and an unlimited number of default roles in its MIT Open Source version, addressing this limitation.
Overall, Strapi is a great technology and a valuable contribution to the node.js community. If it were built on .NET, we may never have had to build Raytha. But if you are a .NET developer and have enjoyed the experience with Strapi, we encourage you to check out Raytha. It's super easy to
Get Started and start building!
ENTREPRENEUR & SOFTWARE ENGINEER, AUSTIN, TX
I enjoy tackling a wide array of business challenges ranging from front line product support and operations to sales and marketing efforts. My core expertise is in software development building enterprise level web applications.