The Surprisingly High Table Stakes of Modern Blogs

swyx

3 reactions 2022-08-21

Bottom Line Up Front: You are probably underestimating how much goes into blogging technology these days.

Reader Experience

And everything should look great on mobile devices and (at least not horrible on) ultrawide monitors.

Web performance is of course a huge part of the reading experience but I’ve put it in the section below for even spacing reasons.

Author Experience

  • WYSIWYG writing (with keyboard shortcuts) - use a CMS? Roll your own? Markdown vs Blocks?
  • If writing in static markdown files, the ability to colocate static files (eg pdfs) next to the file (instead of dumped in a big fat “files” folder with no clue which post it belongs to), and to easily write relative links to them in the markdown that will be transformed to the write path
  • Customizable metadata (with good inference when not supplied)
    • slug
    • publish date
    • edited at date
    • canonical url
    • description
    • og:image
    • layout
  • Shortcodes/Unfurls
  • Image uploads - best workflow is to paste the image from clipboard right into the textbox and have it upload, as Github Issues does.
  • Static data entry
  • Analytics
    • Server side analytics (Netlify Analytics)
    • Google Analytics
    • Privacy preserving clientside analytics (eg Fathom)
  • Mobile authoring/editing experience

Distribution/Reach

Developer Experience

  • Plugin systems for adding every feature above in <10 lines of code (example)
  • Build times should be <1 minute
  • Type safety for data schemas
  • Fast content preview (preferably without having to run a local server)
  • Monitoring/alerting - when your site goes down or a single popular page disappears for whatever reason, who finds out first? your readers or you?

This is often tied with the debate about whether or not the blog should be Jamstack - mostly statically generated and hosted on a CDN, or traditionally mostly generated on request and cached for some amount of time.

Misc

Context

It is often said that one of the best ways of learning a new language, from Ruby to Rust, is to implement a static site generator (fun fact - it was actually my take-home interview for Netlify!). Depending on the requirements, it forces you to learn everything from filesystem access, making network requests, parallelizing code, parsing configs, using libraries, creating plugin systems, injecting javascript, writing a CLI, and deployment.

Because there are accordingly so many static site generators, most people tend to devalue them, in the “I could build this in a weekend” sort of way, and end up building their own blogging platforms every few years as a way to “stay sharp”. But that’s a very 90’s view of blogging technology - and the requirements of a modern Blog has diverged a lot from the basics of static site generation in the past 30 years. In the end, your readers have a poorer experience and your blog may not get the reach it might deserve.

I of course am no exception to this, being maintainer of my own small blog template for the Svelte ecosystem. I am intimately familiar with the modern dev blogging platforms like Dev.to and Hashnode, and these days spend plenty of time reading the many Data Engineering Substacks, and only appreciated how much they do for us that you should not handroll (or should consider building if DIY, because it is genuinely such a good feature).

This is an appreciation I only arrived at after ~5 years of constant blogging, so I figured I should write down what I see as “table stakes”, for you to appreciate when considering your next great blogging platform, without trying to sell you any particular solution.

For what its worth, I do think most people, even developers, should not handroll their own blogs and should try to use Devto/Hashnode/Substack (Wordpress is of course an option) accordingly, because most people get so caught up in being PM + Dev for their handrolled blogging software that they never get to the writing. Try to do, say, 20 straight weeks of regular blogging, to prove that you are actually going to be a blogger, before you spend a bunch of time coding up blog software you end up not using.

The most important feature of a blog is its content - if you write good content, people will overcome almost any hurdle to come and read it. Don’t forget that.

Get updates on new posts and projects

3000+ subscribers including my Mom – see past issues

Reactions: 👍 2 🎉 1
Webmentions
Loading...