I’ve written about this in a bit more detail previously[1], and I’ve also published the source code to my personal blog[2] if you’re curious to see a fully-baked example.
[1] https://search.feep.dev/blog/post/2022-01-16-blog
[2] https://github.com/wolfgang42/linestarve-blog/blob/master/bu...
For hosting I use the free tier of Firebase... `Firebase deploy` and Voila. You get not only free hosting but the ability to revert and free around the globe CDN. Pretty darn fast.
When you roll your own not only is it way simpler than existing solutions it won't change from under you. I blog very infrequently and often from different machines or operating systems, the last generator I used had completely changed between posts and I either had to relearn how it worked or make my own.
It’s still simple and works everywhere. I don’t know ruby but can still get it working and generating.
It takes virtually any org mode document stored anywhere and will expose the org mode export so you can browse the generated pages like a website available as not only a regular html one but also a pdf one with links and all that emacs generate on the fly. Example with a random github repo that have a couple org mode documents:
- pdf export: https://demo.filestash.app/login?type=git&repo=https://githu...
- html export: https://demo.filestash.app/login?type=git&repo=https://githu...
- txt export: https://demo.filestash.app/api/export/private/text/plain/REA... and more ...
It's not super fast as it runs emacs everytime you need to render a page and run the export from there but considering the title of this article, it is well within the theme of blogging like a hacker.
A non-exhaustive list includes the following SSGs:
- Astro
- Eleventy
- Gatsby
- Hugo (three times)
- Jigsaw
- Lume
- Next.js
I finally settled on Astro. I don't know whether it qualifies as hot stuff, but I'm happy with it.
I am curious as to why you did Hugo thrice and why did you choose Astro in the end.
Astro feels like a really good fit for static content sites. It's easy to understand, and generates very fast sites that don't rely on a tonne of pointless JavaScript (as was the case with both Gatsby and Next when I used them).
A blog post can be mostly <h1>, <p>, <b>, and <img> tags. I (mostly) use internal CSS so each post is self contained. Creating a new post is just a copy/paste of the last one and changing the words.
If I wanted a fancy style, I could export one from any template-based theme but I use something minimal. Keeping it simple helps me focus on writing instead of plug-in management and endless tweaking of settings.
In theory I'll run into issues if I want to restyle the entire blog, but I'm happy to preserve old posts as-is. If I wanted to edit a header or footer I could use bulk search/replace.
Occasionally I've wanted to add some extra interactivity or a one-off style. This is straightforward in HTML (assuming you know it) versus a generator that can get in your way with too many layers of abstraction.
Both my personal website https://andrew-quinn.me/ and my TIL site run on Hugo: https://hiandrewquinn.github.io/til-site/
Most recently I used Hugo to create a backup archive of the Finnish broadcast news, plus translations, which was all in all very easy thanks to its i18n support: https://hiandrewquinn.github.io/selkouutiset-archive/
Hugo also works well with Git submodules, if you want an excuse to learn how those work in more depth. I generally keep one submodule for just the content of my sites themselves, and another one for the theme. A third repo actually brings the two submodules together into a full fledged site.
I even gave a presentation at the local university to first year CS students who wanted to get Hugo up and running. It was a big success!
I wrote https://github.com/Siilikuin/minimum-viable-hugo a while back to turn setting it up into a simple copy-and-paste operation. You might get some use out of it.
[1]: https://nuejs.org
It does what I need. Fast, search-capable, markdown, and handlebars. The community isn't huge, but it's just what I need to get a little bit of writing online.
https://extrastatic.dev/svekyll/svekyll-cli
All 100s on lighthouse.