Bolt is a Grunt-based static site seed project that builds data-driven HTML, CSS, and JS for PWA and JAMstack sites, with a focus on speed and clean development-to-production workflows.
What is Bolt?
Bolt is a static site generator seed created by Argyle Ink, written in CoffeeScript, that runs on Node.js and Grunt. It takes Jade (now Pug) templates, Stylus stylesheets, and YAML/JSON data files as input, then compiles them into a static site. Dev builds are legible and source-mapped, while production builds are minified, cached, and ready for deployment. It also supports multiple preprocessors beyond Jade and Stylus, since Grunt tasks are modular and swappable.
Key Features
- Separate build directories — Dev output is source-mapped and untouched; production output lives in its own directory, so running one build never overwrites the other.
gruntruns the dev server,grunt prodbuilds the crunched production version. - Jade inheritance compilation — Uses jade-inheritance so changing one template compiles only that file, not the entire project.
- Data-driven templates — YAML and JSON files are fed directly into the template system as JSON, letting you separate content from markup.
- BrowserSync integration — The dev server syncs clicks and scrolls, does live reload, and hot-reloads CSS changes; it also includes Weinre remote inspection.
- Autoprefixed Stylus — Stylus is the default preprocessor, with Autoprefixer applied, and a mobile-first CSS foundation with Flexboxgrid preloaded.
- Auto-generated appcache — Production builds automatically generate an HTML5 appcache manifest for offline-first behavior.
- Build automation extras — Image crunching, git tagging with
grunt bump, custom shell commands, custom build notifications, and a configurable file banner.
Who is it for?
Bolt is for front-end developers who want a fast, Grunt-based starting point for a static site without re-inventing build tasks. It's also for teams building PWA-style sites that need offline caching, appcache generation, and mobile-first CSS conventions out of the box. Anyone managing a JAMstack project who wants a data-driven static generator that stays independent of a CMS can use Bolt as a seed.
What can you do with Bolt?
- Static site developers: Scaffold a new project with
bolt new my_site, install dependencies withnpm i, and rungruntto start a live-reloading dev server. - PWA builders: Use the production build's auto-generated HTML5 appcache and the preloaded mobile header and icon includes to quickly assemble an offline-capable web app.
- Prototypers: Take advantage of BrowserSync live reload, hot CSS pushes, and legible source-mapped dev builds to iterate on layout and styling without manual refreshes.
- Tooling explorers: Modify the modular Grunt tasks in the
tasks/directory to add or swap preprocessors, shell commands, or notifications without touching a monolithic build file.
How does Bolt work?
Bolt's quickstart is a four-step process: install the Bolt CLI with npm i -g bolt-cli, create a new project with bolt new my_site, then run npm i to install dependencies, and finally run grunt to spin up the dev environment. Alternatively, clone the repo, run npm i and grunt. For production, run grunt prod to get crunched output, or grunt compile to produce the build without starting a server.
Bolt commands
The README documents five core commands: grunt starts the dev server with no crunching and source maps; grunt --dont-open does the same but skips opening the browser; grunt prod starts a production server with turbo crunching and no maps; grunt compile outputs crunched files without a server; and grunt serve --target=dev or grunt serve --target=prod re-serves an existing build from either output directory.





