Why You Should Write Your Own Static Site Generator

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • eleventy 🕚⚡️

    A simpler site generator. Transforms a directory of templates (of varying types) into HTML.

  • https://doublejosh.com/post/186193119278/metalsmithjs-is-sti...

    Then two years ago I needed a more robust SSR system based on React, so I went with GatsbyJS. It's insanely mature and intuitive, but as we all know that community and business is now drying up too. But the framework is still great.

    Now everyone sings the praises of NextJS, which can be used for SSR but is intended for applications and active server endpoints. But more complexity doesn't mean better.

    I'm keen to try other simple frameworks when the result is a static site. I may give https://www.11ty.dev a shot.

  • Publish

    A static site generator for Swift developers

  • For Swift there’s https://github.com/JohnSundell/Publish which is a framework to create a static site generator. It’s really good.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • zas

    Most simple static website generator in Golang.

  • I wrote too (and still maintain) a SSG, it's a fun exercise: https://github.com/darccio/zas

  • news

    Plain-Text India-focused News (by captn3m0)

  • Another option that I’ve found worthwhile is to write a Jekyll Plugin, so you get a stable base for your SSG, and you can experiment with adding weird functionality on top.

    For my news website, I needed to scrape some news from a third party API, and I just moved it to a Jekyll plugin so it embeds neatly into the website. Works quite well: https://github.com/captn3m0/news

    Another place where it made sense to use SQLite as a data source, I wrote a Jekyll SQLite plugin.

  • org-static-blog

    A static site generator using org-mode

  • I built my own on top of org-mode: https://github.com/bastibe/org-static-blog

    And also various others, for various reasons. The thing about static site generators is that they are fantastically easy.

  • Metalsmith

    An extremely simple, pluggable static site generator for Node.js

  • hyphae

  • I fully support the idea that writing your own SSG can be not only a great learning experience, but also a chance to make your SSG do exactly what you want it to (and nothing more).

    I've written a ton of little SSGs over the years, and every iteration I've learned what kind of features I really need, and which I don't.

    When I started working on the current version of my personal website (istigkeit.xyz), I also wrote a new SSG just for it. The program is called Hyphae[1], and it's written in Ruby using the Kramdown markdown gem, and pretty much nothing else outside the stdlib. It works perfectly for me, and that's all that matters (that being said, the code is up there, and licensed with the Unlicense, so anyone who finds it useful is free to use and abuse my clumsy code to whatever extent they want).

    I'm a big proponent in the idea of writing personal software: that is, programs that are made by you, for you, and with no expectation that they'll be used by anyone else. I think too often developers these days get caught up in trying to make their project be "the next big thing" in whatever domain it serves, but honestly sometimes it's nice to just write something for yourself :)

    [1]: https://gitlab.com/henrystanley/hyphae

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • rscx

    Rust Server Components. JSX-like syntax and async out of the box.

  • I had the same idea as you and rewrote my blog CMS. Initially it was very similar to yours, with Maud [1].

    Then I started a little library for replacing Maud, for a better developer experience [2] (still looking for a better name).

    The important thing for me is having fun in the process, my personal website is a sandbox for playing and experimenting :)

    [1] https://anto.pt/articles/rust-server-components

    [2] https://github.com/Pitasi/rscx

  • pyboke

    Static Blog Generator (极简博客生成器)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts