Firstly, I need to mention I'm coming back to .Net for the first time in more than 10 years. Last time I used .Net was on a very old .Net Framework 4 ASP.NET commercial fast food ordering application in 2013. Since then I've been working with Environmental Scientists, researchers, and academics, using exclusively Python (Django, Flask, FastAPI, etc) for the last 10 years.
This new project I'm tasked with is a custom content publishing platform, so my first thought is obviously a CMS for the content. I feel that Headless CMS products are the go-to these days, and that fits well with our needs because it is the authoring/admin side that the customer is most interested in. The frontend, or "content consumption" side of things is a custom scientific data visualizer we are building in parallel.
My team has been given a MS Azure Cloud subscription to use, and we want to take advantage of as many "cloud-native" approaches as we can. Eg, using Azure Active Directory (AAD) for SSO, using Azure Blob storage for files, Azure SQL for DB, etc. For that reason, we have decided to use .Net to develop this CMS (plus, one of my guys has 5 years experience in .Net, so we don't want that to go to waste).
There are so many free open-source .Net CMS projects floating around that it should be pretty easy to pick one to use as a base to build upon. But it is proving to be a bit harder to choose than I thought. This is the wish list we are looking for:
- Free and Open-Source, with permissive licence
- Self-hosted, ie. not a SaaS
- Cross-platform, with dotNet6 or dotNet7
- Needs custom entity types, and entity type instances (we are publishing data types, not Posts and Pages).
- Customizable content authoring pages for the custom entity types
- Admin UI written in VueJS or ReactJS
- Access the content via an Open API
- Integration with AAD SSO (and bonus if we can use any SAML or OAuth or OIDC Auth)
- Different user roles (Admin, Author, Reviewer)
- Use other cloud-native integrations where possible
- Workflow steps (Draft, Submit, Review, Approve, Publish, Revoke, etc)
- Content versioning, change tracking
- Activity auditing
I know this is a pipedream to find one tool that could do all of that out of the box. Back in my Uni days I would have immediately reached for Drupal, but that is PHP, we prefer to not use that anymore. I thought I found the perfect tool when I came across Cofoundry, it ticks a surprisingly large number of those wishlist boxes. The main reasons I am hesitant to go with Cofoundry are:
- It is a project from 2017. It has continued to be updated, but not very often since 2018. It was ported from .Net Core to dotNet6 back in 2021, but nothing since then.
- It uses Angular 1 for the JS side of the admin pages (not even Angular 2!)
- They are very tightly tied into using MS SQL Server for the db with a bunch of custom MS TSQL stored procedures, and using other MS SQL Server-specific features.
I've looked at a bunch of others, but they tend to fall into the camp of SaaS offerings that are focused on publishing Posts and Pages, and not much else, or others that are hobby projects with low user base, and haven't been updated in the last 4 years.
Is there anything I'm missing? I'm looking for something a lot like Cofoundry, but more up to date, not so tightly tied to MSSQL Server, and uses ReactJS or VueJS for the Admin/Authoring pages.
When it was growing up, the definitions kept changing.
I was born in 1986, and while in primary school I was told that makes me GenX. So I grew up thinking I was GenX. Then in high school, my teachers said actually anyone born after 1985 is GenY, so we're definitely GenY.
Then when year 2000 came around people started talking about a new generation of people who would "never remember the 20th century", or "never know a world without the internet", basically people born after 1997 so they grow up completely in the 2000s. They called them Millennials.
From then on the usage of "millennial" kept growing, starting to see it everywhere. Mostly by boomers complaining about millennials.
Around 2012 I stated seeing some youtubers around my age referring to themselves as millennials, I thought it was a joke, or a bad understanding. Then people started referring to me as a millennial. Someone who's whole childhood was in the 90s, how could I be a millennial, it defied the definition.
So I imagine my shock when I find now they've removed all trace of the usage of GenY, and retroactively applied "millennial" to mean anyone born after 1985. So maybe I am a millennial? I remember staying up late to celebrate with my parents and make sure our computer didn't crash at midnight on new years eve in 1999. I remember wondering why dragonballz wasn't on TV when the news was showing footage of American skyscrapers in 2001. Are those the things that make me a millennial? If so then what about the original definition? Those born 1997 or later won't remember those things, so now they're Zoomers? All this business makes me so confused.