Building a Headless Content Management System
It is so simple to build a static Website with Astro not only that it gives you the ability to build components in your desired Framework but also the syntax makes it so easy to read and maintain.
Before Astro I wonder around OSS CMS tools to try to build a simple blog for playground, I tried the super powerfull Orchard CMS, the very straight forward BlogEngine, even looked to the dark side for the popular Wordpress, all very proven solutions that many developers love, but I ended up finding a Headless CMS that provided me with some free space and API access and then building the HTML app myself and I'll detail my reasoning here.
The main concerns for my decision:
Cost: I am trying to avoid subscription, lump-sum payment, "donation" or any kind of charge, I am not a blogger and this thing I am building is not going to be generating any kind of money.
Technology: I wanted to learn something while building it or maintaining it, and I want something performant, scalable and production grade, something that resembles a solution to my times working for media companies, that could support those millions of users, thousands of concurrent users and provide SEO friendliness.
Time: While I do want to learn something, I didn't want to spend time understanding a complex architecture or learning new acronyms, again, this is not generating money so not worth the risk.
Has to be compatible with Azure Cloud.
Orchard CMS
This project is by far my favorite when it comes to CMS frameworks, solutions in general really. I like the way they have built the Framework. The Core version is even more impressive, they built on the idea of 1.10.x and have perfected the architecture, with multitenancy, workflows, media management. performance, an absolute beast.
Orchard Core is very easy to setup, the code is very legible, they seem to be thinking on going the same route as the previous with plugins and themes which at least for me is very familiar but at the same time it gave me some serious issues for which I had to abandon playing with it for this website:
Cost: You need a database, storage and an Application Service to host the site. That represents at least 3 services that are not Free, following the bare minimum to reduce costs the monthly charges were hovering between 20 dollars a month in Azure, 20 times my maximum.
Technology: Orchard is very server-side heavy. Great for SEO and for giving you control over how you want to "massage" the response, this however makes it necessary that you find a server to return your workload, even for static pages that are very unlikely to change once they are published.
Technology (take 2): As much as I like C# I wish the team would have opted for some Blazor love on the solution rather than going full ASP.NET MVC/middleware kind of solution. But regardless, the dependency of a web server and a database was making it impossible to use for my situation given the prices tag on those 2 services.
Time: Orchard has an awesome documentation, pretty big community and it is OSS, but you will take time setting it up and you will take time learning the jargon, it is very much a sub-Framework of dotnet Framework.
BlogEngine.NET
This project is very old, I remember stumbling across this very early in my career, it used to build some XML files in the file system and do some magic to make them look like nice HTML pages shown to the user.