14 votes

Looking for recommendations for self-hostable static blog software

I used to use a random FOSS Python program to manage my blog. The software honestly wasn't the best (partially my own fault for not setting it up super well) and I stopped using it, lost my blog's source code, and haven't updated the blog in a long time because of that. So I'm looking for a static site generator that is simple, well maintained, and no-frills.

22 comments

  1. [2]
    Liru
    Link
    Copying part of an old response I wrote a while back...

    Copying part of an old response I wrote a while back...

    Hugo is a good choice, but it's got some weird quirks that put me off.

    One of the few bloggers I read uses Pelican for their blog, and it apparently works pretty well.

    I've heard good things about Zola. I've used it for a few articles on a small web page, so I can't say how well it will scale, but it seems decent enough.

    4 votes
    1. whbboyd
      Link Parent
      I use Pelican for my blog. It worked well for me, but I was approaching it from the somewhat unusual direction of porting my blog from a home-grown static generator. My impression is that it would...

      I use Pelican for my blog. It worked well for me, but I was approaching it from the somewhat unusual direction of porting my blog from a home-grown static generator. My impression is that it would work fine starting from scratch or if you don't care that much about precisely matching a preexisting structure, but I haven't actually done that to speak directly to it.

      1 vote
  2. [7]
    kwyjibo
    Link
    My apologies if I misjudge your needs but why not just use a simple HTML template? I don't blog anymore, but back when I did in my own small and irregular way, I had a simple HTML template for my...

    My apologies if I misjudge your needs but why not just use a simple HTML template? I don't blog anymore, but back when I did in my own small and irregular way, I had a simple HTML template for my posts and every time I wanted to write a post, I'd simply copy my template, write my posts in the editor of my choice with HTML markup and simply upload it to GitHub pages. This might not be a great option if you blog frequently, want to have a comment section, and thinking of blogging in the long term but it really worked amazingly well in my use case.

    The reason I went this route was the reason you asked your question. I had issues with Jekyll and Hugo and while I was looking for alternatives (which was futile since those two are arguably the best ones), I thought about why I'd ever need a static blog generator in the first place. They didn't offer me any ostensible benefits since I only wanted to get my writing out there without any frills and plain HTML was more than enough for that. This may have been ignorant of me and maybe static blog generators do have ostensible benefits over plain HTML files1, even for simple use cases like mine, but I failed to see it in my own technically illiterate way.

    I'm sorry if my post was completely useless in helping you, wanted to share it just in case it isn't.


    1: Having search enabled for your blog is probably easier with a static generator since it often comes out of the box, but there are alternatives out there for my solution too.

    4 votes
    1. [6]
      Greg
      Link Parent
      I'd definitely call it a question of personal taste rather than ignorance or knowledge, but for me markdown is just a lot more natural to write, re-read and edit than HTML. I tend to find rich...

      I'd definitely call it a question of personal taste rather than ignorance or knowledge, but for me markdown is just a lot more natural to write, re-read and edit than HTML. I tend to find rich text editors distracting, I really enjoy being able to diff my edits easily, and the sprinkle of extra characters just for lists, emphasis, and links are as minimal as I can get without sacrificing useful functionality. I used to keep notes in slightly-annotated plaintext years before I'd ever heard of markdown, so it keeps me in my flow.

      Beyond that, I'd say it's mostly about navigation and consistent styling. Index pages, menus and internal links on existing posts, potentially tags or topic sections, can all be updated globally and automatically by a generator rather than having to track them by hand; same goes for UI elements that you might choose to change retroactively. It'd be entirely reasonable to say that you consider each page standalone and none of that matters to you - it's totally subjective - but I consider them nice to have additions as a bonus on my markdown parser!

      4 votes
      1. [3]
        crdpa
        Link Parent
        Do you use Linux? I write my blog in markdown and convert to html using pandoc. I made a bash script to simplify things for me. It's a little hacky, but it does the job i need.

        Do you use Linux? I write my blog in markdown and convert to html using pandoc.

        I made a bash script to simplify things for me. It's a little hacky, but it does the job i need.

        4 votes
        1. [2]
          Greg
          Link Parent
          It's an interesting semantic question, actually: where's the line between a parser and a site generator? I'd been mentally categorising them in the same bucket, but that's not to say other people...

          It's an interesting semantic question, actually: where's the line between a parser and a site generator? I'd been mentally categorising them in the same bucket, but that's not to say other people necessarily have the same thinking on that at all!

          I've used a few different tools over the years, including an ill-advised and wildly overcomplicated one I wrote myself, but nowadays I tend to dodge the issue entirely because I'm writing documentation that gets parsed automatically by GitHub. Asciidoctor is one I occasionally turn to for larger pieces of writing, and it's incredibly powerful for significant lengths of content, but it's a slight shame that it uses not-quite-markdown syntax rather than being a superset; GitBook seems like it would've been great if they hadn't gone hosted and closed source.

          1 vote
          1. Adys
            Link Parent
            Honestly it depends on what your flow is. I think of a "site generator" as something you'd run in CI based on input files from git. What you call a "parser" would be something you'd run locally...

            where's the line between a parser and a site generator

            Honestly it depends on what your flow is. I think of a "site generator" as something you'd run in CI based on input files from git. What you call a "parser" would be something you'd run locally before committing.

            To that end, you could run jekyll locally as a "parser", or pandoc as a site generator. Concretely they're both just compilers, the semantics are more to help someone find the right tool for the right job.

            Also see: "What is the difference between a hammer and a screwdriver, since you can bash nails in with both?"

            2 votes
      2. [2]
        kwyjibo
        Link Parent
        I completely agree with your points. I wasn't trying to make a case for how HTML is better than any other markup language or that static site generators are useless. I was, rather badly, trying to...

        I completely agree with your points. I wasn't trying to make a case for how HTML is better than any other markup language or that static site generators are useless. I was, rather badly, trying to make the point that it's a trade off. If your needs are very basic, as was mine, plain HTML works well. But if you plan on writing frequently and have long term needs like the things you mentioned, then static site generators are the obvious way to go. I re-read my post and I think I could've made this point more clearer. Sorry!

        3 votes
        1. Greg
          Link Parent
          No worries, I got your meaning, just wanted to add some thoughts from my perspective as well!

          No worries, I got your meaning, just wanted to add some thoughts from my perspective as well!

          2 votes
  3. [5]
    Apos
    Link
    I usually recommend Eleventy. It's pretty well made with the ability to extend it. You can have your data come from any format that you like, or use one of the starter projects and use whatever is...

    I usually recommend Eleventy. It's pretty well made with the ability to extend it. You can have your data come from any format that you like, or use one of the starter projects and use whatever is already set up in those.

    I use GitHub pages for the hosting with a pipeline to build the site and deploy it automatically.

    2 votes
    1. [4]
      drannex
      Link Parent
      +1 on 11ty, I have used virtually all the major and minor SSG and this is the one that is the easiest and most future-proof ready. I deploy mine with Netlify, but GitHub or GitLab pages are an...

      +1 on 11ty, I have used virtually all the major and minor SSG and this is the one that is the easiest and most future-proof ready.

      I deploy mine with Netlify, but GitHub or GitLab pages are an equally great hosts.

      4 votes
      1. [3]
        opheron
        Link Parent
        I haven't used 11ty and I'm shopping around for a new SSG, could you explain what makes it more future-proof than other SSGs?

        I haven't used 11ty and I'm shopping around for a new SSG, could you explain what makes it more future-proof than other SSGs?

        1 vote
        1. [2]
          Apos
          Link Parent
          A big thing is that you control your data. Also you control exactly what ends up in your output. 11ty doesn't require or include anything. That makes it easier to switch to something else later if...

          A big thing is that you control your data. Also you control exactly what ends up in your output. 11ty doesn't require or include anything. That makes it easier to switch to something else later if you need. Or switch to 11ty from something else.

          11ty is JavaScript, but it's not a JavaScript framework. JavaScript gives you have access to all npm modules and the npm ecosystem is huge. I'd bet on JavaScript.

          2 votes
          1. opheron
            Link Parent
            Good points, control of data and output are big selling points. Thanks for your input.

            Good points, control of data and output are big selling points. Thanks for your input.

  4. SunriseMojo
    (edited )
    Link
    Hugo is pretty great. The 'live reload' feature helps with styling your site. Then you just add text files (markdown) to the 'content' folder, and push to a git repo. When you push to git, a new...

    Hugo is pretty great. The 'live reload' feature helps with styling your site.

    Then you just add text files (markdown) to the 'content' folder, and push to a git repo.

    When you push to git, a new excerpt (and cover image) are automatically added on your site's home page.

    And if you connect that git repo to Netlify, they'll serve it for free.

    • NOTE - if you have any setup questions, you can message me. I can send you the folder for a fully setup site.
    2 votes
  5. [2]
    adi
    Link
    You can take a look at my own https://mkws.sh, it's templates are sh based, it's super simple and highly customizable, people like https://nemic.dev/log.html and https://www.andrewjvpowell.com/...

    You can take a look at my own https://mkws.sh, it's templates are sh based, it's super simple and highly customizable, people like https://nemic.dev/log.html and https://www.andrewjvpowell.com/ have been using it to write blogs with it.

    2 votes
  6. Rudism
    Link
    I've been using Hexo and don't really have anything bad to say about it. It's got different plugins you can install as NPM modules for various needs (switching between flavors of markdown,...

    I've been using Hexo and don't really have anything bad to say about it. It's got different plugins you can install as NPM modules for various needs (switching between flavors of markdown, templating engines, stylesheet languages, and so on). It's also quite extensible if you're willing to write a little javascript to do custom processing. I haven't tried any of the others mentioned here so can't really compare, but I also haven't had the itch to try anything else out because it does the job just fine.

    2 votes
  7. [3]
    Pistos
    Link
    I use Jekyll, but it's by no means the only reasonable offering out there. There's a bit of a spectrum of complexity and feature-set in this field, so you should do a bit of research to see what...

    I use Jekyll, but it's by no means the only reasonable offering out there. There's a bit of a spectrum of complexity and feature-set in this field, so you should do a bit of research to see what might be a best fit, depending on your needs and technical aptitude.

    In my case, I am a power user, so I'm very comfortable doing my writing and editing in Markdown and YAML files, and publishing by way of git and rsync, and I already manage my own website(s) with nginx, etc. Jekyll has all the plugins I need (my needs were modest), and I can write scripts myself for any extras I might need.

    1 vote
    1. [2]
      dedime
      Link Parent
      I'm also using Jekyll. I know it's not the preferred solution nowadays, but it was back when I made my site and I've had no desire to update my site for a while so it stays for now. Hosting is...

      I'm also using Jekyll. I know it's not the preferred solution nowadays, but it was back when I made my site and I've had no desire to update my site for a while so it stays for now.

      Hosting is easy. I've set up a pipeline on GitLab.com to compile and publish my static HTML to GitLab pages under my own domain with SSL provided via LetsEncrypt. Totally free, minus the cost of the domain, and adding a post is as simple as writing a markdown file, committing, and pushing to origin.

      For "newer", more generally recommended SSG's today, look at Hugo, Gatsby, or Eleventy. I don't think you can go wrong, it's down to personal choice.

      3 votes
      1. Pistos
        Link Parent
        I think I looked at Hugo and Gatsby when I was shopping, but went with Jekyll. Felt like it was the right level of simplicity and maturity for me.

        I think I looked at Hugo and Gatsby when I was shopping, but went with Jekyll. Felt like it was the right level of simplicity and maturity for me.

        1 vote