This is not a complex piece of tech:
I have a local app written in Astro JS that I kick off from the command line on my PC. That gives me with a local web site where I can edit all the content. It looks fairly similar to the public site, but with all kinds of editing widgets added.
When I make changes, they are all written to .json files on my system via API calls. I then run the build process that Astro provides, and get a version of everything as static HTML, which I then upload to my repository on github, which publishes them to codingdave.com
That is it - no databases, nothing fancy, just a small pile of vanilla Javascript spaghetti.
In the future, I'm going to split the editing to a separate app, which will let me get rid of some redundant data from the HTML. Until I do so, the page sizes are twice as big as they need to be. Ah, well. We'll fix that in version 2.
This site is both part of my personal web site, but also a sandbox to work through the type of blog/content management system that I kinda wish the web had evolved towards. It is based on some opinions I've developed over a few decades of content-focused tech work:
What that all boils down to is this site.
This is the first / worst iteration of it, and all anyone is seeing is the resulting words. There is a whole authoring environment that only runs on my PC to create those words and these pages.
At this point, having written this, it is good enough to be my personal blog. I am intending to work a but more on it to see if I can make the underlying app workable enough to publish. In the meantime, I have imported a few old blog posts and social media feeds to get a sense of how it works, and hopefully will remember to write more.
One word on the UI of the topic pages:
The choice to have centered dates and titles, with content split to either side is deliberate. I want the content to feel like a timeline in order to give the audience a sense of forward motion as you read. For blogs, you can see the author's thoughts evolve. For social media, you see things in the order they were presented. I can see this also working for history timelines, or even creative writing to share a story where the timing has focus. This won't work for all content, but I'm not trying to build something for all authors.
It does get a little wonky at times. It doesn't work well if you resize your browser. I'm OK with that. I'm still noodling the final form of all this.