Bryan’s Ruminations

Where I think hard, try to be fair, and sometimes get carried away.
Home Blog Books Podcasts Uses About Contact
Home Blog Books Podcasts Uses About Contact
Home Blog Posts A Long Awaited Site Overhaul

A Long Awaited Site Overhaul

by Bryan on in Site Information
Blogging ASP.NET Core

Well, I've gone and done it—I've completely rewritten this website's codebase from the ground up. This has been a long time coming, and I finally got it to the point that I'm okay with a rough edge here or there. Let's dive into what changed, as well as what didn't, but first a bit of history.

A Brief Site History

This website got its start at its current URL by 2000, first with static HTML, then with Blogger, and starting in 2002, my first homegrown CMS/blogging platform, metaBlog. The site continued to use various incarnations of metaBlog for the next 24 years, until today. metaBlog started as an early ASP.NET Webforms application, before morphing into an ASP.NET MVC application, where it remained until today.

As of this evening, the website is now running on metaApps.CMS, though don't bother with hitting the link, as there's nothing there right now.

More About metaApps.CMS

metaApps.CMS is a .NET 10 content management system built as a configurable, modular library with a layered architecture. The system consists of four NuGet packages (Contracts, Data, Core, UI) deployed to a private Azure Artifacts feed, plus a demo ASP.NET Core MVC application. Here's a bit more detail on the layers:

  • metaApps.CMS.Contracts - Shared contracts layer with enums and projections (no dependencies)
  • metaApps.CMS.Data - Entity Framework Core data layer with targeted repository pattern
  • metaApps.CMS.Core - Business logic, services, DTOs, and static mappers (depends on Data and Contracts)
  • metaApps.CMS.UI - Razor class library with view models, HTML helpers, UI services (depends on Core)
  • metaApps.CMS.Web - Demo ASP.NET Core MVC application

At the core of a metaApps.CMS install is a Website. Each Website has one Owner. A Website can have one or more Users. A Website can have zero or more Pages, as well as zero or more Blogs. Each Blog can have Posts and each Post is associated with one Category and zero or more Tags.

The intent of the design is to provide as much control as possible to the site implementer, such that an implementer could drop it into an existing application or use it as the foundation for an entire site, as I have done.

Content can be written in HTML or Markdown and is stored in a relational database.

What's Missing From The Site

There are still a few rough edges, which will be worked out over the next week or so. Additionally, while I brought nearly all of the functionality over from the old site, I did not bring the comments. This is intentional, and I remain undecided on ever bringing them over.

What's Next

In addition to the rough edges already mentioned, there are several other features to add:

  • Search functionality
  • Admin UI
  • Webmentions
  • Additional IndieWeb features
  • Related posts
  • Post series

I think that covers things for now. If you spot something that seems off, feel free to contact me.


Newer Older
Categories
📚 Books 4 🍎 Health and Fitness 172 Companies That Could Do Better 2 Cool Stuff 8 Cutting The Cord 4 Day Job 3 Developer Stuff 56 Eats and Drinks 18 Education 1 Entertainment 6 Family & Friends 26 In General 114 IndieWeb 1 My Weight Loss Journey 3 🗒️Notes To Myself 1 Politics 3 Project 18,253 8 Reviews 6 Security 2 Site Information 24 Sports 68 Technology 27 Travel 2 Weblog Applications 23
© 2026 - Bryan Daneman - RSS
Home About Uses
Archives Books Podcasts Contact
Bluesky Mastodon LinkedIn Github Strava