Is it for you? Β· Features Β· Blueprints Β· Showcase Β· Get started Β· Deploy Β· Contributing
A static site generator written in Swift, designed to be driven by AI agents.
SiteKit is a static site generator written in Swift, driven by AI agents through an installable skill (Claude Code, Codex, Cursor, Windsurf, Xcode 26, and more) β you hand the whole job to an AI that scaffolds, themes, writes, and deploys your site for you. The output is a fast, SEO-complete, accessible static site you host anywhere.
I built this iteratively over several months for my own needs, and I'm sharing it with the community in case others want to use AI for their website, too. It was built with AI, for AI. Looking forward to your feedback. π
Tip
Looking for something specific? The use-case matrix maps every task β author, customize, deploy, extend β to the doc that answers it.
Yes, if you want to:
- Ship a blog, podcast, newsletter, portfolio, or app-landing site as plain static files.
- Own your content as plain Markdown in a git repo β the site is a Swift package under the hood, but authoring needs no Swift code.
- Let an AI assistant do the heavy lifting (scaffolding, theming, content drafting, deployment).
Probably not, if you need:
- A server-rendered CMS with a database, user logins, or live dynamic pages.
- A no-code, point-and-click WYSIWYG editor.
- An environment without the Swift toolchain β building runs through
swift(macOS or Linux), and authoring assumes you're comfortable editing text files.
You write Markdown; SiteKit handles the rest:
- π Plain Markdown authoring β posts and pages in Markdown with YAML frontmatter, no Swift or HTML.
- π± Responsive design β layouts adapt to desktop, tablet, and phone out of the box.
- π Dark & light mode β follows the visitor's system preference, with a manual toggle.
- π Built-in search β a client-side index on a static site, full-text for docs.
- π§ SEO complete β canonical URLs, Open Graph, JSON-LD, hreflang, sitemap, robots, and
llms.txt. - βΏ Accessibility-minded β semantic HTML, keyboard navigation, WCAG-AA-tuned colour schemes.
- β‘ Fast by default β critical-CSS ordering, responsive images, inlined icons, minification.
- π AI-assisted localization β multilingual with hreflang, fallback, and UI chrome in 36 locales.
- π Shareable draft previews β unlisted URLs to share for feedback before publishing.
- βοΈ Guided content writing β built-in writing guides keep drafts on-brand.
- π Free hosting β deploy to Cloudflare Pages; you pay only for your domain.
SiteKit ships 9 blueprints β starter sites you scaffold and customise. Each has a short guide and a live demo:
| Blueprint | For | Guide | Live demo |
|---|---|---|---|
| Blog | Articles with categories, tags, RSS | Blog.md | fline.dev/blog |
| Snippets | Short-form tips, TILs, cheat sheets | Snippets.md | fline.dev/snippets |
| Portfolio | App / project showcase | Portfolio.md | fline.dev/apps |
| IndieDev | Blog + snippets + portfolio combined | IndieDev.md | fline.dev |
| Podcast | Episode pages, audio player, iTunes RSS | Podcast.md | appstore-tagebuch.de |
| Newsletter | Issue archive, signup forms, email rendering | Newsletter.md | evolutionkit.dev |
| AppLanding | Single product landing page (hero, features, pricing) | AppLanding.md | translatekit.pages.dev |
| DocC | DocC catalog β docs site with sidebar + full-text search | DocC.md | wwdcnotes.fline.dev |
| Plain | Minimal, no opinions β a blank canvas | Plain.md | β |
Not sure which to pick? The blueprint catalog has a decision tree and a feature comparison.
Real production sites, one per blueprint family. Screenshots follow your GitHub theme β dark or light.
fline.dev β apps, blog, snippets & portfolio (IndieDev) |
evolutionkit.dev β Swift Evolution newsletter (Newsletter) |
appstore-tagebuch.de β indie-dev podcast (Podcast) |
TranslateKit β app landing page (AppLanding) |
WWDCNotes β community session notes across thousands of pages (DocC, relaunch in progress) |
The only hard requirement is the Swift 6.2 toolchain (swift --version), on macOS or Linux β both run in CI. Everything else is optional and installed when it's actually needed: the AI assistant pulls in Git, the GitHub CLI (gh, only if you publish via GitHub), or ImageMagick (only if you want responsive image variants) on demand, and you pick where to host. SiteKit points you at the free, popular choices, but you can always swap in alternatives β the output is just static files.
SiteKit is built to be driven by an AI. Install its skill once and your assistant learns the whole workflow β scaffolding, theming, writing, and deployment.
Any agent (Claude Code, Codex, Cursor, Windsurf, Xcode 26, and 70+ more) β install the agent skill:
npx skills add FlineDev/SiteKitClaude Code β or install it as a plugin instead:
/plugin marketplace add FlineDev/SiteKit
/plugin install sitekit@sitekit
Either way, then just ask β "build me a developer blog with SiteKit" β and your assistant walks you through blueprint choice, theme, content, and deployment. Every site SiteKit scaffolds also gets an AGENTS.md so the assistant keeps the right guidance loaded as the site grows.
Clone SiteKit and use the sitekit CLI directly:
git clone https://github.com/FlineDev/SiteKit.git
cd SiteKit
swift run sitekit doctor # check git + swift toolchain
swift run sitekit new MySite --blueprint Blog # scaffold (defaults to Blog)The clone is only needed for the scaffolder β your new site is standalone and pulls SiteKit as a regular Swift-package dependency, so you won't need the clone again until you scaffold the next site.
Then run your new site locally:
cd MySite
swift run Site serve # dev server on http://localhost:8080swift run Site build produces the static output in _Site/; swift run Site validate checks for missing translations on multilingual sites.
| Path | What it holds |
|---|---|
Content/<section>/*.md |
Your posts, episodes, pages β Markdown with YAML frontmatter |
Theme/theme.yaml |
Color scheme, font pairing, layout template |
SiteConfig.yaml |
Site metadata: name, URL, author, navigation |
Content/Assets/ |
Images and logo; pre-generated favicons go in Content/Assets/Favicons/ |
_Site/ |
Build output (gitignored) β what you deploy |
Customise the look: open Theme/theme.yaml and pick a color scheme (15 to choose from), a font pairing (6 options), and a layout template (Classic, Sidebar, Minimal). Override individual design tokens for full control.
Deeper references: content writing Β· theming guide Β· SiteConfig reference.
A build is just static files in _Site/, so you can host it anywhere and switch hosts anytime β the choice is yours.
SiteKit recommends Cloudflare Pages because it's free, fast, and documented end to end: Cloudflare Pages walkthrough. Prefer something else? GitHub Pages, Netlify, Vercel, or your own server work the same way, and the assistant sets up whichever you pick. See all deployment guides.
Build failing or output not what you expected? Start with the troubleshooting guide β it covers frontmatter errors, missing fields, and the most common build failures.
The blueprints cover the common cases. When you need something they don't ship β a custom page type, a new output file, a bespoke content transform β that's Swift territory. SiteKit's pipeline is a set of swappable plugins you conform to: see AGENTS.md for the architecture and the custom-pages reference for a worked example.
Issues and pull requests welcome. Start with AGENTS.md β the contributor reference for how SiteKit is built and how to extend it.
SiteKit is v1.0, the first public release. From here on, breaking changes always get a major version bump and documented migration steps in the CHANGELOG.
License: MIT.