Ask HN: What is the best way to author blogs in 2024?

120 points by badrabbit ↗ HN
I want to share technical blog content but I want to author it as I am developing the content easily, screenshots and markdown would be ideal and I don't want to self host things.

What is the ideal tool to help create quality content?

136 comments

[ 3.6 ms ] story [ 233 ms ] thread
If you want simple, free and flexible you can build a static site blog with Hugo and host on GitHub Pages.
Whatever way you choose, don’t forget to include an RSS feed for your blog.
If you don’t want to self-host then Ghost or wordpress.com might be worth checking out.
Ghost has a solid self hosting story as well. Upgrading is easy, changing and updating themes isn’t hard, and you don’t need many resources to run it.
Out of curiosity, is there any specific hosting provider you would recommend for Ghost? For example, would DigitalOcean suffice?
Absolutely. I run Ghost on a *.small instance in AWS.

The one caveat with Ghost is that it only works with Mailgun for drop-in support of sending newsletters: https://ghost.org/docs/faq/mailgun-newsletters/

It was the one thing that gave me pause before taking the leap. At least they're being transparent about what and why even if I disagree with some of their reasoning. I have sent newsletters successfully via a self-hosted SMTP server to thousands of readers for years. I mean, I wouldn't recommend anyone doing that if they value their sanity, but I also think self-hosters should be free to experiment.

Not sure which one’s the ideal tool but I’m slowly collecting them all here: https://manuelmoreale.com/blog-platforms
This list is great. Thank you for compiling it!
My pleasure. It keeps growing constantly, there are so many platforms out there.
I don't want to cramp your style, but displaying those in a table would really improve readability
I know but I don’t want to mess with the site css since that’s literally the only table I have used in 7 years ahah

I do want to make a better page for that list though so I appreciate you nudging me.

two options: link to an external google sheet as well, or add the table as an image
Both not very appealing. Don't want to direct people towards a google site and I don't want to keep re-making an image every time I add an entry to the table.
Could you just use a markdown table and have it generate from a csv of all your tools? Many ssgs will go this.
I could yes but when I added that page my site was as simple as it gets and it wasn’t worth the hassle to add a bunch of stuff for literally one table in a post out of almost 500 posts on the site.
I love Quarto [0] and use GitHub pages for hosting.

Quarto works nicely with several IDEs, and works out of the box with both Python, R, and Observable JS. Typst support was also just added, but I haven’t explored that yet.

The documentation is also extensive. Here is the link to setting up a blog [1].

[0] https://quarto.org/

[1] https://quarto.org/docs/websites/website-blog.html

I’ve been using Quarto for a few months now and it’s been great to be able to turn Jupyter notebooks into blog posts with not extra work.
I'd suggest Astro (https://astro.build/)
Haven’t tried Astro myself, but AFAICT it’s compatible with AWS Amplify – which in my book is a huge plus.

The Amplify hosting platform is very easy to get started with. I use it with Hugo, it’s super-convenient, IMO.

https://docs.astro.build/en/guides/deploy/aws/

How much are you getting charged each month for Amplify?
My traffic is minuscule, so for two Hugo blogs it’s something like $1/month.
Astro is really good for this use case. Also easy to host on platforms like Netlify.
1+ Astro.

I actually built a low-code blog template using Astro for my partner and friends [1].

I set it up so you can publish a github pages site from your browser (using a dev container), or you can just drop in markdown files into vscode. It's not quite no-code, but I think if I could add a simple UI it in theory could be.

[1] https://github.com/easy-astro-blog-creator/easy-astro-blog-c...

Astro is awesome. It’s easy enough to get started with a template for a static site and flexible enough to build dynamic web apps.

My static personal site is Astro hosted on cloudflare pages https://github.com/ShaunLawrie/shaunlawrie.com

And I used their documentation template https://starlight.astro.build/ for my autogenerated docs on https://pwshspectreconsole.com/

I love having the ability to focus on the content and never having any blockers if I want to do something weird like embed a prebuilt react component for some edge cases.

Great now I have analysis paralysis with all these options.

  import random
  platform = random.SystemRandom().choice(["Astro", "Blogger", "Hugo", "WordPress", "Ghost"])
  print(platform)
Stylistic note, you can use `random.choice()`. If you aren't generating an encryption key, you probably don't need `SystemRandom`.
True. It’s an idée fixe of mine. Doesn’t really cost anything extra though.
zsh: command not found: import

/s

Try this one:

  echo -e "Astro\nBlogger\nHugo\nWordPress\nGhost" | shuf | head -n 1
Just make a static html page and be done with it after an afternoon.
Bear blog hosts a bunch of technical blogs, is markdown based, and open-source.

https://bearblog.dev

I do a flavor of this. I use Hugo as my blog system and plugged in the bearblog template to it. Right now I host on GitHub pages with my own custom domain. Works well!
You should mention you're the creator.
(I'm biased because I wrote this blog tool, so take my comments with the appropriate skepticism)

I recommend Svekyll (https://extrastatic.dev/svekyll/svekyll-cli). Svekyll combines the simplicity of Jekyll with the power of Svelte.

This is a post I made recently:

https://webiphany.com/2024-04-29-distance-sean-shawn

That post uses Svelte to build interesting animations, includes a AI embedding model right inside the post and runs in your browser.

And, if you want to hack the entire post yourself, scroll to the bottom, click the view source button and then click download. That will download a zip file which can build that post independently by just running "npm i && npm run build". That command generates a single HTML file with everything inlined so you can take that and put it on any static website.

Svekyll posts are just markdown, but you can add anything like vanilla js and Svelte components, and tailwind is included automatically.

I don't see anything else out there that is as simple or expressive as Svekyll. And 99% of that is just that I don't see anything out there that is as simple or expressive as Svelte.

Just put it on WordPress or Wix if you don't mind paying.

If you don't want to pay, use Astro and put it on Vercel or Cloudflare Pages.

Had the same grip as you, so I set out to fix it.

I found solutions out there were either full fledged cms which are cumbersome to setup and honestly distracting.

I was looking for something that was easy to work with like medium or notion, supports markdown syntax, and is fully headless because I like tinkering with the other frontend stuffs. If you have similar issues, check out wisp: https://wisp.blog/.

You can even try out the editor before signing up for anything: https://www.wisp.blog/try-editor

Also if you are looking to have a blog template to just kickstart the process, you can get everything wired up in the next 20 mins with this: https://github.com/Wisp-CMS/nextjs-blog-cms-wisp

Disclaimer: I'm the builder for wisp and have 200+ happy users now.

Write in markdown, transfer it with rsync to a server running hugo or jekyll?
If you don’t want to maintain the infrastructure, you can also just commit to git and push to GitHub, and there have CI build the Hugo/Jekyll website and host it using GitHub pages.

You can easily have your own domain connected to it and GitHub will provide an SSL certificate.

If you don't want to maintain infrastructure, don't adopt the kinds of software stacks created by the kinds of people who have only ever shown a giddiness for producing devops shovelware that assumes/requires maintenance.

Even ignoring that, you run into stuff like this:

> the first wall I hit [trying to update the website] was that I: Forgot [...] the esoteric Hugo conventions (has documentation, but it's not easy to parse at a glance) [...] not sure how I could have remembered all of the Hugo-isms, especially since I don't update this site very often and don't do static site generator work outside of this.

Nothing about this sort of thing is unforeseeable. Don't choose these options.

<http://web.archive.org/web/20210331182731/https://corytheboy...>

How about github gists? It has comment support built in
I am using a simple Jekyll theme minimal-mistakes[0] which I customized to suit my needs.

I'm hosting my blog[1] on GitHub Pages, the repo[2] is public so you can take a look and fork it if you find it interesting.

The setup is really simple, straightforward, and no-cost.

[0] - https://github.com/mmistakes/minimal-mistakes

[1] - https://www.vladsiv.com/

[2] - https://github.com/VladimirSiv/VladimirSiv.github.io

My lack of knowledge has led me to only have heard of WordPress, but it feels cumbersome to operate, so I've been writing some 'draft' blogs locally. Thank you for letting me know about this solution; I've already started my first blog.
That's awesome! I am glad I helped. If you have any questions about the setup, please feel free to reach out. Also, when you get your blog up and running, let me know, I would like to check it out.
Do not use eleventy, their cli bugs out very frequently Hugo is underpowered
I recommend Ghost. You can self host it or use their hosting service.
I’ve been happy with it for around 8 years. It only gets better.
Follow up, what is the best way to author blogs for the next decade?
Something static on a cdn
Text and imagery? Html is made for this.
You mean to code it by yourself? Nah, I, like most people interested in blogging, will pass.
Why so against it though? HTML isn't hard to understand. Like I said you can set it up in an afternoon. With any tool you have to learn how to use it. You use some website builder you aren't going to know what all of their gui functions do off the bat either, you will have to read up how to do what you want in their way. Might as well learn to use the right tool for the job which in this case is probably the easiest programming language there is. You basically write paragraphs of text and put in links to where the image files are and some tags and that's it. It's so easy.

Or you can just not approach it, that's fine too, I don't care what you do. I'm only trying to be helpful.

It's easy to understand, but modern tools are much more convenient for multimedia posts. I want to put an image in my post. I find the jpeg/png I want, (s)cp it over to the exacty right location, and then figure out how to inline or link to it in the assets folder as a separate thing. Compare that to the much smoother workflow with a platform like facebook.
I'd suggest github pages or substack
I am very happy with Zola. Every SSG has its own shortcomings, for Zola I was initially bothered by lack of 'proper' footnotes and the insistence on having to have frontmatter, but I've yet to feel that I cannot do something really. The docs can be a touch confusing imo, but they're written with care.
I can only recommend Zola as well. I’ve been using it for past 4 years or so and it’s been very stable. Like you, I feel the docs could be a bit more deeper (+more examples) but I’ve always managed to figure out what I need to do.