A static site generator (SSG) is a program that takes your page layouts plus your content, often written in Markdown, and produces a folder of finished HTML, CSS and image files. You upload that folder, and every visitor receives the same pre-made pages with no database or server code running per request.
What a build actually does
You keep content as files (for example one Markdown file per blog post with a title and date at the top) or pull it from a headless CMS. Templates define the header, footer and how a post looks. When you run the build command, the generator reads every content item, pours it into the matching template, creates index and tag pages, optimises images and writes the output. Run it again after any change and the whole site, or just the changed parts in tools that support incremental builds, is regenerated.
Generators people actually use
Hugo (written in Go, known for very fast builds), Jekyll (the engine behind GitHub Pages), Eleventy, Astro, Gatsby, and Next.js in its static export mode. Example: a physiotherapy clinic keeps its treatments and blog as Markdown in a Git repository. When the practice manager edits the "Sports massage" file and commits, the host runs Hugo, and the updated page is live a minute later. There is no admin login on the public site to guess or exploit.
When an SSG is worth it for a small business
An SSG suits sites where content changes on human timescales (days, not seconds) and is the same for everyone: service pages, menus, portfolios, documentation, a blog. Hosting is cheap or free and pages load fast. The catch is editing: raw Markdown in a repository suits developers, not most owners, so pair it with a headless CMS or a visual editor if non-technical staff update the site. For per-user content, a dynamic website is the better tool.
Mistakes with static generators
- Hard-coding the site URL wrong so canonical tags and sitemaps point at a staging address.
- Committing huge original photos instead of letting the image pipeline resize them.
- Assuming forms work on their own. Static files cannot receive submissions; you need a form service or function.
- Pinning nothing. Unpinned theme and plugin versions can break the build months later.
Related terms
- Jamstack: the wider architecture SSGs are part of.
- Headless CMS: a friendlier content source for a generator.
- CMS: the traditional, server-rendered alternative.
- Dynamic website: pages built per request instead.