mikevdv.dev - What I'd do differently
I write a large number of articles which I never end up publishing for various reasons. Quality is important to me so many articles end up in my "portfolio posts" directory on an external backup SSD, never to see the light of day again. I've produced a few articles which have done remarkably well, as well as others that don't perfom to any kind of expectation, but I always make sure to ensure there's a story to tell.
At the moment I'm writing this, I've not entirely considered what I'll title this article. Normally I have a pretty defined idea what I'm trying to say before I even think to pick up Typora and begin to write but this is not one of those cases.
I've made my fair share of mistakes writing and creating this blog. Most of them being within in the blog system I built itself. This has led me to attempting to create a new blog engine a few times, but tearing down hard work that you put in during your free time is always harder than when you need to do so in an office environment. Making sure that no functionality or search rankings are lost also makes this a rather time consuming endeavour.
One mistake I made early on was designing for multiple potential authors. This introduced a whole load of complexity. It forced me to ensure the possibility of filtering by author on the listing page, make author data display correctly in any articles or meta-data and even resulted in me having to build an api-key system for publication. I should really have hardcoded this information given my use case but I thought I'd do it propperly.
This might actually have been a quite reasonable feature to add if I ever reused the mikevdv.dev blogging engine on any other project, but my own identity is so painfully tied into the system that you'd have to remove half the code base to reuse any of it. Not to mention host the various publication lambdas. I guess I had some grand idea of getting guest writers in at some point but, let's be honest, no-one writes guest articles for a blog belonging to one guy. At least not a guy that isn't exceedingly well known.
Another mistake I made actually resulted in a reasonably well received article. The Custom Twitter Embed. Firstly, this embed was completely broken due to the changes made to the X (🤮) api after the Musk take over. This made the article practically useless outside of the story of how I approached the problem.
The other issue, is that I used completely non-standard markup within the article to handle where to insert twitter embeds. It follows none of the markdown standards and wouldn't work on any other platform but my own. This means that none of my articles which include tweet embeds (affecting much of my earlier blogposts) can be cross posted to another service or even transfered to a new custom system without being adapted in some way or copying the same solution to the new platform.
I used a similar non-standard embed aproach when adding the caniuse functionality which I used as part of a few of my best performing articles, leading to similar problems.
One thing I'm very proud of is the system I use for publishing my posts without leaving my markdown editor of choice. It works really well and I don't have any complaints to make about it when considering my personal use. I'm also really pleased with the articles about building the blogging engine in the first place. As long as I'm at my computer, the whole flow works great...
That is to say though, that I have no way to edit blog posts when out of the house now that I no longer use a laptop for home use. Even when I did use a laptop, if I didn't have it with me then that would be that. When a friend tells me I've made a typo, it currently gnaws at me until I get home.
My blog has always been both a place to share my thoughts and to help teach others using my own experiences. In that vain, this article is a sort of note of the things I would have done differently if I were to start my blog today. If I ever do go through the effort of rebuilding this thing, then I'll come back to these notes.
If I were writing the blog system from scratch:
- I'd hang all embeds of the
embed code standard for markdown. and setup some fallback to images in case any third party decides to stop me embedding stuff. - I'd decouple more of the blog engine from the site itself to allow me to use the same underlying system with other sites I've set up for friend and family.
- I'd build a proper API so I could hook editing into something a little more portable. Either a web interface or a custom mobile app solution.
- I'd build a system for handling drafts so I wasn't relying on random markdown files to hold my ramblings.
- I'd probably have an actual account system for comments on the site in addition to the web mentions system I have now. (I love this system but since the death of twitter it's had much less use)
Or I'd stop trying to be such a showoff and I'd use something off the shelf like Ghost or Wordpress...
Webmentions
What's this?This site uses Webmentions to handle likes, comments and other interactions. To leave a comment, you can reply on GitHub, Reddit, or Bluesky. While the site will count likes from any source, only Bluesky likes are currently displayed in the facepile.