@daz4126/swifty
v4.2.0
Published
Super Speedy Static Site Generator
Readme
Swifty 
Super Speedy Static Site Generator
Swifty uses convention over configuration to make it super simple to build blazingly fast static sites.
Features
- Markdown pages with YAML front matter
- Automatic image optimization to responsive WebP images with
srcset - HTML, CSS, and JS minification during production builds
- Layouts and partials for reusable templates
- Auto-injected CSS/JS from your css/ and js/ folders
- Code syntax highlighting via highlight.js
- Tags and navigation generated automatically
- RSS feed generation for blogs and content folders
- Draft mode for work-in-progress pages (visible in dev, hidden in production)
- Scheduled publishing via future dates in front matter
- Contact forms via third-party services (Formspree, Netlify Forms, etc.)
- Pagination for folders with many pages
- Data files - Load JSON/YAML data and use in templates
- Open Graph tags - Auto-generated social sharing meta tags
- 404 page convention -
pages/404.mdbuilds todist/404.html - Word count & reading time - Auto-calculated for blog posts
- Previous/next navigation - Auto-generated links between sibling pages
- Eta templating - Full JavaScript in templates with EJS syntax
- Idiomorph navigation with optional intent prefetching for SPA-like transitions
- Custom permalinks and base paths for flexible deployment URLs
- Public asset passthrough for files that should be copied unchanged
Requires Node.js 22 or newer. See Migrating to Swifty 4 when upgrading an existing site.
Quickstart
npm install -g @daz4126/swifty
swifty my-site
cd my-site
npx swifty startThen visit http://localhost:3000
Project Structure
your-site/
├── pages/ # Markdown content (folder structure = URLs)
├── layouts/ # HTML layout templates
├── partials/ # Reusable content snippets
├── data/ # JSON/YAML data files
├── css/ # Stylesheets (auto-injected)
├── js/ # JavaScript (auto-injected)
├── images/ # Images (auto-optimized to responsive WebP)
├── public/ # Files copied unchanged to the output root
├── template.html # Base HTML template
└── config.yaml # Site configurationCommands
npx swifty my-site # Create new site in my-site/ folder
npx swifty build # Build static site to dist/ (for production)
npx swifty start # Build, watch, and serve at localhost:3000 (for development)
npx swifty build --out dir # Build to custom output directory
npx swifty deploy "message" # Build, commit the output folder, and pushDevelopment vs Production
swifty start- For development. Includes live reload (auto-refreshes browser on file changes) and file watching with incremental builds for CSS/JS/images.swifty build- For production deployment. Produces clean output without any development scripts.swifty deploy "message"- Builds the site, commits only the generated output folder, and pushes it to git.
Documentation
See the full documentation for details on configuration, layouts, partials, and more.
