Parrot
A fast, minimal static site generator for Markdown blogs, written in Ruby.
Getting started · Documentation · Live demo · Report a bug
Parrot turns a folder of Markdown files into a fast, SEO-ready blog of plain
HTML, CSS and JavaScript. There is no database, no JavaScript framework and no
build pipeline to configure: write posts in Markdown, run one command, and
upload the public/ folder to any static host.
deepsnapster.com is built with Parrot.
Features
- Markdown-first writing — GitHub-flavoured Markdown via kramdown, with tables, footnotes, blockquotes and images.
- Code and math out of the box — syntax highlighting with Rouge and LaTeX rendered by MathJax.
- Generated index — the home page is built from your posts, newest first, with optional grouping by year or month and pagination.
- Categories and tags — a paginated page per category, a categories overview, and tags on every post.
-
SEO built in — per-page titles, descriptions, canonical URLs, Open Graph
and Twitter cards, schema.org JSON-LD,
sitemap.xml,robots.txtand an RSS feed. - Light and dark theme — follows the system setting, with a toggle that remembers the reader's choice.
- Drafts — preview unpublished posts locally; they never reach the build.
-
Live preview —
parrot serverebuilds only what changed when you save a file.
Quick start
Parrot needs Ruby 3.2 or newer.
gem install prt # installs the `parrot` command
parrot new blog # scaffold a new blog
cd blog
parrot post --title "Hello world" # create a post
parrot serve # preview at http://localhost:8000When you're ready to publish:
parrot build # writes the site to ./publicThen upload the contents of public/ to GitHub Pages, Netlify, S3, nginx or
any other static host. See Deployment for details.
Note
The gem is published as prt because the name parrot on RubyGems
belongs to an unrelated project. The command it installs is still parrot.
Documentation
| Guide | What it covers |
|---|---|
| Getting started | Installation, commands and the layout of a blog |
| Writing posts | Markdown features, the post header, drafts and placeholders |
| Configuration |
config.yaml: the index page, pagination and categories |
| Customizing your site | Layout, site URL, SEO tags, light/dark theme and styles |
| Deployment | Building, hosting, sitemap and feed, and how serve rebuilds |
| Development | Working on Parrot itself, running tests and releasing |
Contributing
Contributions are welcome — bug reports, documentation fixes and features alike. Please read the contributing guide before opening a pull request.
License
Parrot is released under the MIT License.