So, I recently did the thing. My history involves various late-early platforms (Blogger, Blogspot, Wordpress on and off, etc) to eventually Pelican, Hugo, then Hugo on Micro.blog. But a few months I go I built a full custom CMS in Elixir and Phoenix to fully replace it all. Imported my complete archive, all my photos, built a back end, and then let the AI Robot try and build me native macOS and iOS apps that worked with my API.
A relaunched json.blog. I’ve kept the styling mostly the same, but added several features. I’ve got a more “user-facing stuff” set of Release Notes. I think the most fun thing I did was integrate Hardcover.app so that I can search for books and select them, download images and metadata, etc. I also have a scheduled job so that when I do my reading tracking on my site, the data is sent over to Hardcover.app to keep it in sync.
Although mentioned in the Release Notes, another cool thing I think that’s easy to miss is my routes. My site has long had a front page based on days. I mix short and long posts in chronological order on that page. I want it to feel like you’re reading, from top to bottom, my thoughts in the order they came out that day. Thing of it as my little fight against context collapse. One thing that bothered me forever is its quite hard in Hugo to make a route like /YYYY or /YYYY/MM or /YYYY/MM/DD and get all the posts for that date/time period. Well, now that exists. So although I only show in my Archive pages “long posts” and “photos” — because my feeling is that most short posts are ephemeral— you can actually go to the /YYYY/MM/DD of any published post and see all the short posts again and the context of that post on that day. Maybe I should make that more discoverable.
Anyway, it’s pretty fun to have my own CMS to tinker with and the easy ability to add new features all the time.
So for those of you who have gone down a similar route— what are the things you love about your site (reader/viewer visible or for you?) that makes reading, writing, or adding content pleasurable? Inspire me!
My personal site doesn’t run that much differently on its custom Django backend compared to how it ran on WordPress, but it’s FAR less bloated now. So that’s my favourite thing! I also no longer needed a separate script for my guestbook.
My listing site though, that’s where rolling my own CMS came in handy! I still have to do some stuff manually just because it allows users to enter their own interests in whatever categories they choose, but I was previously having to add everything manually. Now all I need to do is match any existing interests and make sure the categories are appropriate.
The way my website operates comes from the same mental model I’ve had for almost two decades. The “blogging” component was always very basic and bare-bones. Over the last year, it’s evolved to the point where I ended up with my own markup language by the end.
It is a lot more advanced than anything I’ve created before, but the fundamentals haven’t changed, so I know exactly what’s going on at any given place. And if there’s an isolated piece of code that I forgot about adding, it doesn’t take much for me to figure out where it fits into the overall puzzle.
I structure my site as a digital garden, which for me means its like a wiki or personal knowledge management (PKM) system. I used to use Logseq and had written a clunky and fragile script to export pages into formats suitable for rendering online. It would generate markdown files, commit them to a repo, and then github pages would serve those files automatically.
But as of… about 7 months ago now… I switched from Logseq to Silverbullet. As part of this transition I rewrote the website and changed A LOT, but relevant to this thread is that now it is served via docker on a VPS, where the page data is stored on a docker volume instead of in the repo (so now the source code is a lot cleaner and not containing commits for every content update!).
Silverbullet is really powerful, and allowed me to create a custom share function that uploads the page I’m on (after some lua code to do things like change internal links to actual links) to the website, so I can now update pages one at a time, and from my phone instead of needing to run a script on my computer!
I really like writing in a PKM rather than a typical CMS because it can have all my private pages in the same place and is incredibly customized to my specific needs and desires. And PKMs just work better for me than a chronological blog.
I’m currently rewriting my website too. I really like my new layout which consists of a sidebar next to the main content (powered by CSS grid). On my homepage it contains a <dl> with information about me and on some pages it only contains a single paragraph of text.
Another feature I like is my new bookmarks section. It has hierarchical tags and a search.
It’s not on my main domain yet (it will be some time this weekend) but there is a preview.