Readit News logoReadit News
Posted by u/etlaM 6 months ago
Ask HN: What's your blog / portfolio stack?
Many people here post in some frequencies on their sites. I wonder what kind of frameworks you are using and what you can recommend.

In a shared web hosting environment I'm building a React site myself, but found myself not updating it as much as I can't build on the go and am thinking about returning to a classic CMS solution. Even though I dislike all the clutter WordPress comes with, I'm used to it after all these years.

willemlaurentz · 6 months ago
Handwritten, vanilla HTML with a self-self built static site generator (reading the HTML files and doing some fancy 'find and replace'). Get's the job done: https://willem.com/blog/2025-03-05_durable-smartphone/
devdri · 6 months ago
Handwritten HTML served from a RPi and cached with CloudFlare.

I wrote a custom web-based editor that lets me conveniently edit all the files from any device including mobile.

lurn_mor · 6 months ago
Ding! This exactly. Not every web page is best expressed in Markdown (or text for that matter). I post galleries of photos, weird web experiments, tutorials with inline photos, and other odd stuff that never fits in this 'automate my .md files to www' workflows everyone seems to love.

Write the html once, and it's good forever, really. Everything can be permalinked with authority. No reason to 're-render' your site again and again because you want to change the user interface - both of those are handled by CSS and JS.

You need to edit? Load up your FTP editor and work on the html file live, like a leet hacker! ...but I do succumb to using S3 due to its low monthly cost for hosting my 13gb 'personal' website. Too many hosted audio files...

kepano · 6 months ago
Markdown files edited in Obsidian and compiled with Jekyll.

https://stephango.com/vault#publishing-to-the-web

asicsp · 6 months ago
I write in Markdown and use Zola (https://github.com/getzola/zola) to convert for publishing via GitHub Pages.
eoncarlyle · 6 months ago
My blog is a set of markdown files parsed to HTML by an ASP.NET application. You can self host GitHb actions runners, so making a new post is as simple as committing a markdown file. I wrote the static site stuff myself which was probably a waste of time, but a static site created by Hugo/Jekyll/etc. hosted on your own VPS or server and deployed with GitHub actions (or another version control equivalent) is definitely the way to go.

https://github.com/eoncarlyle/portfolio-websitehttps://iainschmitt.com/post/november-2024-grab-bag#moving-t...https://iainschmitt.com/post/new-syntax-highlighting

donatj · 6 months ago
I am on a very strange php sort-of-cms framework I built originally for a long out of business medical freelancer website like fifteen years ago. If I am remembering correctly I sort of built both at the same time.

It's not anything anyone would build today, and I would not recommend it to anyone, but it does have some very interesting properties that make some things that are often difficult very easy. Embedding dynamic content mid-article for instance is very easy because of a processing pass before a page gets handed to the view. It has a concept of ordered content filters, so by post I can declare what filters get applied and in what order. Filters include markdown parsing, as well as a syntax for injecting dynamic elements.

It's kind of my Frankenstein's monster at this point, but as an tinkerer I enjoy maintaining it. If I didn't enjoy it, I would have switched to something sane years ago.

https://donatstudios.com/

vednig · 6 months ago
If I were ever to build a blog from scratch, I'd follow the guidelines based on what features I prefer over others.

I built shedtheshade.com few years ago, and learnt a few things about blogs along the way.

Here are my takeaways:

- Substack is great for starters

- Mailing should be always included with blog config for best results

- If a blog is updated, best way is to make sure changes are reflected in real-time as it can do a lot of damage.

- People(and crawlers) don't tend to wait for a lot of time, make sure it is fast for at least first paragraph loading in few seconds

- Understanding about Readability in modern society is important

- Media hosts should be served via CDN

- Comments should be independent to blog post db because it's the only user entered content with possiblity of getting your blog hacked

Hence the best way would be:

- Some SSG (preferably SEO optimised)

- Backend API on CF Workers

- Websockets for Blog Update

- Some DB (Preferably NoSQL for Posts and SQL for User Acc. info)

- Additional Layer of CDN

- API for Top or Suggestive Posts

- Editor.js for Editing

hiAndrewQuinn · 6 months ago
Hugo! I stick with Hugo for all things SSG these days. I like how it's a single binary, runs uber-fast, and compiles down to a nice clean set of HTML, CSS, and JS (if needed - for my needs it usually isn't).

My one mark against it is the learning curve is sharp. That's okay for me, since I plan to use it to the end of my days, and so I can amortize the cost of learning it once against many decades of productivity. I have an old GitHub page for people struggling to get to base camp on its learning curve: https://github.com/Siilikuin/minimum-viable-hugo

And here are some sites I run in it:

https://andrew-quinn.me/, my barebones personal blog.

https://hiandrewquinn.github.io/til-site/, my much more frequently updated TILs. Think of this as halfway between a blog and Twitter.

https://hiandrewquinn.github.io/selkouutiset-archive/, a daily updating news archive for the Simple Finnish broadcast, happily running since 2023. The pipeline for this one is interesting, since it uses not only Hugo but Git submodules under the hood. One Git repo exists purely to curl the page I'm watching every night, and I try to mess with that one as little as possible because messing up might mean a night goes unarchived. An intermediate one submodules repo #1 and cleans up the HTML to Hugo-friendly Markdown with pandoc and sed. The final one imports this slimmed down, Markdownified version directly into its content/ directory as a Git submodule and redeploys the whole shebang every night. So far we're up to over a thousand unique HTML pages and this refinery has continued to work with only minimal changes, because we've stuck with such reliable and slow-changing tooling.