No longer writing my own damn HTML
21 comments
·February 12, 2025Brajeshwar
est
same here.
Besides you can directly embed any HTML inside markdown.
asynchronousx
Hilarious post in that it mirrors my own experience. Starting writing a SFS site by hand in HTML, hated writing new things on it, decided to ditch it for a static site generator.
lelanthran
The big problem was not wanting to write even a small amount of is.
After all, a simple web component in a page of code would have allowed client side includes.
claytonwramsey
I did think about that! However, I didn't like the idea of making the client side do work to make up for my own poorly-managed website. Forcing users to run code just to render some boring text seems like a waste.
b_e_n_t_o_n
Hmm - what is the actual cost incurred by the users here? Mostly battery right? Is that not virtually inconsequential to each individual?
I mean you could sum it all up and compare it to human-hours or something but that's not a useful metric because it's distributed.
Personally I think it's better to distribute the workload across clients. We'll probably see purely client driven UI's dominate the future. Imagine users being able to display data (because fundamentally that is all a blog [or any site] is) in a way chosen by each user. That would probably be worth the extra cycles on device.
shkkmo
Please, no. Don't use a SPA to render a blog, that's awful.
Browers already give users near complete ability to customize how web pages are displayed and SPAs usually make this worse not better.
The actual cost is forcing users to run javascript, with all its privacy leaks and security issues, to view what should be a static HTML document.
Not to mention the issues you create for battery life, network traffic, caching, etc just because you are too lazy to develop properly.
natnatenathan
I have always written my own static blog generator, moving from PERL to Ruby and most recently Python. I find the other blog systems are too complicated for what I want. Plus, I think I like writing the generator more than writing actual posts.
choobacker
+1.
It's nice to have to a set of programs I moderately care about, so when I'm learning another language I can port them to it.
They're unimportant enough that I can comfortably experiment, but important enough that I want to complete the rewrite.
My "blog engine" is a nushell script that uses pandoc and built-in XML support to convert markdown into a site+feed.
vunderba
I can definitely relate to building towards an easier "write -> publish" workflow. My old site is still running WordPress but I just got frustrated with the overall feeling of oppressive heaviness to the whole framework (no shade on WP, I still really like it).
I switched over to a similar process but opted for Pelican (since I'm more familiar with Python vs Rust) which builds directly off my markdown notes in Obsidian so it's relatively WYSIWYG. Much easier to maintain and Github Actions automatically handle updates.
geor9e
What I did was store my Obsidian vault in my website server folder. Then I instructed Cursor to make all /whatever.md markdown files in there show up as HTML when you visit "/whatever" , and to get all the obsidian features like [[links]] and ![pics] and all rendering right. It used php and some apache settings. Works great. Now I just edit in Obsidian, and it all appears on my .com live as I type. Very low friction. I did see Hugo, Jekyll, & Pelican do similar, but it was straightfoward enough to just do it from scratch with Cursor, customized how I liked it.
hardlyfun
I run my personal site off of Hugo. You can load some decent themes and adding new content is a relatively painless process.
But I do feel like there is a cost to using static site generators. Raw HTML is easier to work with if you aren't dealing with a lot of similar pages.
null
andrewshadura
Build times can be annoying. I have a bicycle shop's website in Hugo, full generation takes about a few dozen seconds, upload using rsync easily a minute because of many nested directories with images. I ended up writing a script to only upload changed html and new images unless needed.
wombatpm
You know there was a time when we had to wait dozens of seconds for the modem to finish its handshake before you could do anything.
apsurd
God on Clayton to publish his thoughts on his own blog!
That said, he's throwing the baby out with the bath water and making convoluted claims. I agree with some of them, but I'll exercise my desire to write more and reply:
> My hope is that I’ll take advantage of this and start writing more!
Choosing to self-publish one's blog is already at odds with "I'm doing this to write more". So blaming handwritten HTML for added friction is not so fair.
Literally writing every single page of HTML is unnecessarily strict. As another commenter mentions, why not add a few client-side templates for header/footer, a global nav etc.
Jekyll is really not a very ergonomic static site generator. I got GitHub famous for a hot-second because I wrote a little framework to help: https://github.com/jekyllbootstrap. TLDR: Jekyll is famous because the cofounder of GitHub made it. Not really because it's the best or even a good implementation. It's neat, it's just, why would you use that if you have access to a fully ruby runtime.
Anyway, I love hand-writing HTML so my bias out. I don't think it's HTML's fault. HTML is super easy to write, as OP agrees.
I made my own little website framework (of course); it's not ready for prime-time but you can peruse here: https://plusjade.com/demos/index.html
TZubiri
My main issue with writing html directly is that it's not a writing workflow. I write in my notepad, or in my notepad.exe or word about lots of things, only a few of which I would end up publishing, so htmlizing was always a publishing step that starts with a source material. From that it naturally follows that it can be easily automated, and html is a great format for this in theory, but even as a programmer WYSIWYG is so powerful, I'd rather write in Word or notepad exe and THEN annotate what are the headings and etceteras.
If you truly write directly in html, you are probably going to be writing about html or webdev, as your mind is in that headspace, and you have to tweak a lot of html stuff so that's what you get to talk about. Once you let go a bit of that primitive purism you realize you are free to think about whatever the fuck you want.
That said I have a lot of love for speaking about the medium. When I'm feeling cynical, it feels dumb to speak about anything other than the medium. It makes sense to me that half of the discourse on twitter is about elon musk, at least it's transparent in its topical bias, on typical media the topical bias gets rerouted and engineered through ads so that you can "focus on the actual content" which is kind of dumb, I guess, I find the ads end that keep the lights on end up being more important than yet another mindless sitcom.
So yeah, I'm torn. But whichever path is chosen, going through this drama of self hosting, tech minimalism and reinventing the wheel, is a key signature of the tech blog, it really shows the identity of the author and the work they've put into the mix of their ideas and their web space, in a way that, say, a wordpress instance, cannot fulfill.
Analemma_
Everyone loves to gripe about Markdown, but I think this the killer feature which keeps it so prominent: it's right at the sweet spot of staying in a writing workflow while still having enough formatting capability to cover ~95% of use cases. Despite all the complaining, I don't expect it to be replaced any time soon and I think all my notes and writing will be in Markdown for many years to come.
ljlolel
I’ve felt the pain
Nijikokun
Honestly, I thought this was going to be another AI post. TIL about zola. Looks cool.
After many iterations of tools, systems, and processes, I have settled on writing in plain text, in Markdown, to identify headings, paragraphs, quotes, images, etc.
My reasoning and approach is that I or someone should be able to read it as it is and then have a tool parse it to spit out HTML for browsers, helping others read it with a better experience.
With thousands of posts, it would be complex for me to maintain them in HTML. Now, my blog is powered by Jekyll because of GitHub pages. However, I can quickly switch to any other tool with minor tweaks.
Locally, I see my blog posts as individual files with dates `YYYY-MM-DD` and the title in their yearly folder `YYYY`. Some are in `WIP`, which I can continue to update/write. The `future` folder contains the ones that are drafts, but I can see them and don't mind if someone stumbles on them. Always a work in progress and am even aiming to simplify it further.