static site generator

 Static site generator s or  SSG s are programs that take a set of flat text files on disk and transforms them into a set of static HTML files ready to be served by a standard web server, or some variation of this example.

How to
For details on implementations and examples of IndieWeb building blocks e.g.
 * How to send & receive Webmentions with static site generators

See:
 * static site

Advantages

 * Long term maintenance advantages
 * Archival ready html output
 * Can be hosted on any webserver
 * Free or cheap * static hosting options are available
 * No "moving parts"; nothing to break
 * Easy to get started
 * Source files can be edited on an operating system. Usually its just text files!
 * Generators are typically fairly simple programs to write and modify
 * Lots of existing options; Few are better than most
 * No database-antipattern
 * Fewer security vulnerabilities with static HTML+CSS

Disadvantages

 * Most SSGs are written as CLI programs and are difficult for non-technical people to learn
 * Can be difficult to install due to the use of programming language package managers
 * Most SSGs don't scale well with large data sets
 * Supporting dynamic interactivity usually requires JavaScript and APIs
 * Changes can only be shown as quickly as the build runs

Popular and Documented SSGs

 * Hugo (Go)
 * Jekyll (Ruby)
 * Jekyll has support for an "incremental build" mode which only builds files that have been changed. This reduces the deploy time after a cache has been built of posts.
 * Pelican (Python)
 * Hakyll
 * Harp
 * Wintersmith
 * Middleman
 * Eleventy (node.js)
 * Nikola
 * PieCrust
 * Zola (Rust)
 * Crotal
 * Docpad (now considered "archived")

Graphical Editing User Interfaces
Setting up a CMS or micropub service can help make it easier to post without editing files directly. These usually require some kind of continuous integration to allow automatically building and deploying the site whenever these UIs change the underlying files.

Page editing User Interfaces
Some services add the ability to edit pages graphically in a "What You See Is What You Get" style visual editor. This can be more accessible to users without coding experience.
 * CloudCannon
 * Builder

IndieWeb Examples

 * is writing his own site generator for https://rascul.io.
 * is writing and using Hakkan.
 * is writing and using Skein.
 * is using Hugo and writing nanopub, a micropub-endpoint for SSGs
 * is writing Stratic and lazymention (Webmention for static sites)
 * is using Hugo and posting with micro.blog via a micropub-endpoint
 * is building letsjam, a static site generator built with Python and jinja2. James formerly used Jekyll to generate his website.
 * is using Hugo for ethanyoo.com and mdBook for his personal wiki
 * is using Eleventy to build his site since switching from Hugo in 04/2021
 * is writing and using mkws, a simple static site generator using sh as templating language.
 * is using Eleventy to build his site after switching from Jekyll for ciccarello.me

IndieWebCamp Sessions

 * 2014/static-sites
 * 2015/static
 * 2015/Static Websites
 * 2015/Edinburgh/static
 * 2015/Brighton/static
 * 2016/Nuremberg/static
 * 2016/StaticPOSSE
 * 2017/Nuremberg/static
 * 2019/Düsseldorf/ssgcms