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?
I run allaboutberlin.com for a living. I switched from Craft CMS to a homebrew static site generator (Markdown + Jekyll) and it was a game changer.
Static sites are almost maintenance-free. They cost pennies to host. You work on your content using the tools that you love, if necessary offline. There are many excellent markdown editors and no CMS comes close. Everything is under source control and deploys with a push.
If you're used to text files and command line utilities, static site generators are a no-brainer. You probably shouldn't roll your own though.
All about Berlin is beautiful. I felt nice to know about the simple but powerful setup. I was all after CloudFlare pages with all the options a few years back and I experienced downtimes. I don't remember a single downtime in the last year or so with GitHub Pages. Of course, I use CloudFlare on top to greet the visitors.
Cloudflare has been really solid for me back in the CMS days. Now it's a little overkill on top of a static site, but it does speed up page load times for distant visitors. I tried Github Pages for another project and it's brilliant too.
Just had a peek at allaboutberlin.com. Pretty, thankfully slim and what I've seen (just glanced over the housing section) solid advice. You deserve some price for that.
Thank you! It took years of snall edits with help from a lot of knowledgeable people. The effort especially shows in Ausländerbehörde and Bürgeramt guides. The official website is pretty bad.
thank you for making this site!
i'm planning on moving to germany after i'm done with my studies and this will be pretty helpful
do you have any other resources helpful for expats? (perhaps something more like adjusting to the social life, meeting people, etc) would sure be helpful to put it there
If you do it for the love of the game, definitely. It's a fun little project.
I rolled my own because I wanted to use Jinja inside Markdown. This lets me include widgets in the content, and use Python-based constants in the text. For example, when the German minimum wage changes, I change one constant and it triggers a bunch of updates across the website.
I also wanted to control the content-to-website pipeline a little better. The SSG builds pages, but also generates text-to-speech audio for glossary terms, makes some typographic changes, and lints the Markdown for site-specific issues.
Let's rewrite the OS while we're at it since that's in the spirit of programming! :) Just use the nice tools available unless your goal is to rebuild the stack.
Or if you can find one that's close to your exact needs, use that and submit patches and pull requests upstream, or fork and maintain your fork if your changes aren't appropriate or acceptable for upstream. Easier than rolling your own if you just don't feel like going to that extreme, and still helps the ecosystem grow and thrive.
Use a Static Site Generator like [Hugo](https://gohugo.io) and use GitHub pages or even Netlify which allows for CI/CD + Custom Domain with HTTPS/SSL certificates.
I've been using Hugo + Netlify combination for more than 4 years now and It's a breeze.
If you want to go with a full no-code solution, I'd recommend [feather.so](https://feather.so/) (I haven't used personally but heard good things about it in the past)
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.
I use Astro + Cloudflare Pages for my website [1]. I document the key bits of my stack here [2] for completeness.
I've been very happy with Astro because it is a good example of low floor and high ceiling software. I can start with plain HTML, make it more flexible with Astro language (still very close to HTML), make authoring easier with Markdown (+ lifestyle extensions from Remark/Rehype), and extend to frameworks like React on a need basis (which I use for some pages where I use maps).
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.
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.
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.
Some alternative solutions that I haven't seen mentioned here are: Write.as (or it's open source code WriteFreely if one wants to self host) and Memos (which can be self hosted, or you can use a platform such as pikapods to host it for you
Personally I settled on Astro + Netlify for my technical blog. I can write in Markdown, push to GitHub, and it automatically gets compiled and hosted by Netlify for free.
However for non programmers friends and family, I've setup a few blogs with Memos and they all love it.
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.
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.
I am just happy with self-hosted Wordpress. Lots of interesting plugins, once you get the hang of it, you can write your own plugins (as I did). Can take moderate load (say, 30 visitors a minute) just fine.
1000 a minute would be bad, but that's not a typical load for a blog, unless something you wrote goes completely viral. Happened precisely once to me in 8 years of writing.
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].
Eleventy. It’s a static site generator that’s super stable, they take backwards compatibility very seriously so you can count on it for a long time. It’s lightweight so you don’t have to install a million dependencies to get it working, and it’s the only one of the big SSG projects that’s independently funded so they’re not chasing VC-backed hyper growth.
In 2024 the ONLY reasonable way to keep a blog is your own personal site. EVERYTHING else will eventually get sold or turn to crap when they need to monetize.
I use Hashnode[0] for my main technical blog[1] as they support custom domain and all posts can be automatically saved to Github as markdown.
I also use for manually saving some comments/replies I post on social media Scribbles - a simple blog engine. I publish them on a subdomain[3] in case you want to see how it looks like.
Here are some things I would look for when choosing a platform:
1. Bring your own domain - this is very important because it allows flexibility to switch to any other platform while keeping your audience/place
2. Export as markdown - while markdown is not the best format, still exporting to it makes the possibility to migrate easier.
3. Have support for RSS - I use RSS to track a big number of technical blog and consider it important
4. Have support to display author name and date of publishing. This is important for technical topics to allow proper citation and to put the knowledge in context.
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.
You could probably get far with Wordpress. Why? Because if you're technical you can navigate the tricky setup well, and it's made in a way to support a lot of things for non-technical people.
Of course you gotta get it running (or pay people like WP Engine), but you're going to end up with a thing that will work.
I run a Wordpress instance on my home server. An extract job regularly exports a static version of the site. I host it on a DO droplet with a bunch of other static websites.
This is really an underrated option. WordPress is amazingly powerful, and if you don't have any interest in coding the layout and stuff yourself, there is an abundance of pre-written stuff that you can buy for cheap, and there's plenty of options that are free as well.
I definitely wouldn't use WordPress to serve the site permanently though. It is just a lot of maintenance, a huge security footprint, and overall something that you have to routinely think about.
Where The Sweet spot is, is using WordPress to manage the content and define the layout and everything, but then exporting the site into a static form which you can then host with nginx or something similar. This is really a killer setup that is underrated.
Note: do as I say, not as I do. I did this setup for one site, but I don't do it anymore and won't, mainly for probably silly reasons: I really dislike the WordPress ecosystem, and while there are phenomenal developers who are involved in WordPress and who work on it, the vast majority produce hacked together code that barely works. Everyone is trying to make a business out of it, so it's the most highly commercialized framework I've ever seen. That sort of thing really repulses me, which is why I don't use it. Technically, it is the most capable and mature solution. Fortunately, when it comes to personal projects and sites, I can be petty and impractical about what technologies I choose :-D
What's a good way to extract a static version? I currently use a plug-in that claims to create static pages, but the management is still on Wordpress. Is that good enough?
Would the static pages extracted support commenting?
I have 3 blogs [0][1][2] and they all use Astro [3] with a variation of the same theme. The content is written in Markdown, and I'm in the process of moving them all from Netlify to self hosted Coolify [4].
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.
But then I wanted to play with nextjs + typescript, have total control over how everything works, and host it myself in a container so I wrote a little static generator with next: https://github.com/igor47/blog
I think there are many ways to generate a site from images and markdown and the "best" depends on what you're trying to achieve
I used to just use GitHub Pages but not really satisfied with the existing templates that the generators (Jekyll, Hugo etc.) have on GitHub. I now just started using self-hosted Ghost and absolutely loving it. It has a really nice CMS, and beautifully designed templates.
Now I am thinking about markdown editor, because writing content in VSCode, well, its ok, especially if you copy-paste from GPT, but ideally I would like to write it on the page itself so you see immediately what you get and you don't need to run the localhost etc. I think its not really that hard to make it.
I use Jekyll/Minimal Mistakes/Github pages for product blogs, where I just want to broadcast information or have it available for people to find through search, and where I need to own and brand the domain name itself.
I use Substack for a few projects where I want a stronger relationship with the audience - commenting, automatic email list building and distribution, and easy/attractive formatting. I just keep the Substack free, and don't worry about the domain name (x.substack.com) is fine.
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!
Web 1.0 Hosting - is an advanced static hosting with some predefined most necessary ready-made scripts, a smallweb project that makes it possible to access static websites from old devices such as retro computers, old operating systems, palmtops, and cellular phones as part of an initiative to save the old web and support the smallweb movement. Hosting of modern websites and the use of modern technologies are also permitted. There is also a search engine, web mail and web chat, working on both modern and legacy systems.
Jekyll is easy to use and you can write posts using markdown. There are several themes available out there, but it's also easy to work with the back end to customize. I've used Jekyll with Gitub pages for several years with no issues [0]. Plus, hosting is free on Github!
My personal blog/website (and a lot of my other small websites) are hosted on Github. Jekyll, the OG of SSG, manages them. Github also has a built-in editor that you can write directly in the browser. If you are starting from scratch, it should be pretty straight forward and easy.
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/.
I like to keep things as simple as possible. I just write my blog posts directly as HTML, using Svelte+Kit as my technology stack, hosted on a cheap Hetzner VPS. I didn't want to learn or build a static site generator, and my articles mostly consists of a header and a bunch of <p>-s anyway.
self-host gives you flavor though (your own domain, absolute choice in what you can use, and of course 'meta content' (this is how i host this blog, vs github pages, vs medium
By far the easiest if you just want to go from markdown to online blog would be a static site on Github pages. I use Hugo [0] with a custom theme but there are even easier options if you don't even care about style. In particular, I have used Grip [1], which can generate HTML from markdown.
I use https://www.bridgetownrb.com/ and it works pretty well. Very easy to use and deploy. Blog posts are listing line by line, like "index". I didn't customize much from the generated code(only logo and header). You can take a look: ruzig.com
I ended up staying with Hugo because I post loads of photos and image optimisation, or responsive images, was much easier to implement in Hugo.
I heard Astro now has better image processing, so I might give it another try as migrating templates and posts between Hugo and Astro was actually pretty easy.
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.
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.
Static sites are almost maintenance-free. They cost pennies to host. You work on your content using the tools that you love, if necessary offline. There are many excellent markdown editors and no CMS comes close. Everything is under source control and deploys with a push.
If you're used to text files and command line utilities, static site generators are a no-brainer. You probably shouldn't roll your own though.