finds.dev← search

// the find

twostraws/Ignite

★ 2,269 · Swift · MIT · updated Jun 2026

A static site generator for Swift developers.

Ignite is a static site generator written in Swift, from Paul Hudson of Hacking with Swift. You describe pages with a SwiftUI-style builder instead of HTML and CSS, and Markdown files in a Content folder are rendered through a layout you define. It is for Swift developers who want a blog or portfolio site and would rather not learn the web stack first.

- Layouts are ordinary Swift types. Conforming a struct to ArticlePage gives you a typed article value with title, tags, image, word count, and reading time, so a wrong property name fails at compile time instead of producing a blank page on deploy.

- The file tree maps directly to the site tree. A Markdown file at Content/apps.md becomes Build/apps/index.html with no routing config, which keeps the content side simple.

- Common components are built in: accordions, dropdowns, carousels, tables, and CodeBlock with syntax highlighting for a dozen languages. The Bootstrap and Prism assets are bundled in Resources, so the generated output does not need an npm build step.

- The install and preview story is macOS-first. Setup uses make install into /usr/local/bin, and the minimums are macOS 14 and Swift 6. The README does not say whether a Linux CI runner can build a site, which is the first question anyone deploying this will ask.

- The Build folder is deleted on every build, and the README says opening its files directly will not display correctly, so the CLI is the only supported preview path. That is fine once you know it, but it is an easy trap for anyone expecting a plain folder of HTML to upload.

- The docs are split and a bit rough. The opening section has copy errors ('the copy and paste any code', a repeated 'You can see' sentence), and the element reference lives in the DocC bundle under Sources/Ignite rather than in the README.

- The contributor bar is high for a project with one named author. The README asks for SwiftLint-clean code, thorough comments, and an IgniteSamples build against each change. These are reasonable standards, but they make outside pull requests slow to land.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →