# Jekyll
Jekyll is a static site generator written in Ruby, created by [[Tom Preston-Werner]] (GitHub co-founder) in 2008. It transforms plain text files (Markdown, HTML, Liquid templates) into static websites, eliminating the need for databases or server-side processing. Jekyll became the default engine for [[GitHub Pages]], making it one of the most widely used static site generators.
Jekyll pioneered the "blog-aware" static site concept, with built-in support for posts, permalinks, categories, and pagination. Its simplicity—"no more databases, no more comment moderation, no more security updates"—made it popular for blogs, documentation, and project sites. While newer alternatives like Hugo and [[Quartz (App)|Quartz]] offer different features, Jekyll remains influential.
## Key Features
- **Markdown support**: Write content in Markdown
- **Liquid templating**: Flexible template language
- **YAML front matter**: Metadata in files
- **Blog-aware**: Built-in post handling
- **GitHub Pages integration**: Deploy with git push
- **Plugin ecosystem**: Extend functionality with Ruby gems
## Directory Structure
```
_config.yml # Site configuration
_posts/ # Blog posts (date-prefixed)
_layouts/ # Page templates
_includes/ # Reusable components
_data/ # YAML/JSON/CSV data files
_site/ # Generated output
```
## Basic Usage
```bash
# Install
gem install bundler jekyll
# Create new site
jekyll new my-site
cd my-site
# Serve locally
bundle exec jekyll serve
```
## Jekyll vs Other SSGs
| Aspect | Jekyll | Hugo | Quartz |
|--------|--------|------|--------|
| Language | Ruby | Go | TypeScript |
| Speed | Slower | Very fast | Fast |
| GitHub Pages | Native | Manual | Manual |
| Learning curve | Moderate | Moderate | Easy |
## References
- https://jekyllrb.com
- https://github.com/jekyll/jekyll
- https://en.wikipedia.org/wiki/Jekyll_(software)
## Related
- [[Tom Preston-Werner]]
- [[GitHub Pages]]
- [[Quartz (App)]]
- [[GitHub]]
- [[Markdown]]