惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
L
LINUX DO - 热门话题
S
Secure Thoughts
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
AI
AI
B
Blog RSS Feed
S
Schneier on Security
雷峰网
雷峰网
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Cloudbric
Cloudbric
L
LINUX DO - 最新话题
罗磊的独立博客
有赞技术团队
有赞技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
The Hacker News
The Hacker News
博客园 - Franky
Attack and Defense Labs
Attack and Defense Labs
The Cloudflare Blog
Webroot Blog
Webroot Blog
Last Week in AI
Last Week in AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 叶小钗
美团技术团队
L
Lohrmann on Cybersecurity
T
The Blog of Author Tim Ferriss
The Last Watchdog
The Last Watchdog
T
Troy Hunt's Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
Know Your Adversary
Know Your Adversary
O
OpenAI News
博客园 - 【当耐特】
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
I
InfoQ
GbyAI
GbyAI
T
Threatpost
C
Cisco Blogs

CloudCannon Blog

Building with AI: Git-based vs headless vs traditional CMS CloudCannon + Astro: performance meets powerful content management Introducing the Astro Component Starter Introducing Jetstream — built on the Astro Component Starter Why we switched to the system font stack Redesigning CloudCannon’s docs with Diátaxis, Lume, and Pagefind Make content editing more visual: upgraded Editable Regions How Configuration Mode makes building editing interfaces easy Your hosting just got an upgrade (and a price cut) Custom testing domains for professional branding Keep your content consistent with input validation Managing multilingual content in CloudCannon Simplify team publishing with conflict resolution and domain tools Open Beta: Publishing Conflict Resolution Getting started with CloudCannon and Astro: Bookshop, components, and live editing Welcome to the CloudCannon Community! Omnichannel delivery is just marketing spin from API-based CMS companies Getting started with CloudCannon and Astro: Snippets and Collections Managing digital assets in CloudCannon: a guide to smart asset storage Understanding CloudCannon's branching workflows and Projects: a complete guide What is a static website? CloudCannon’s 2024 wrapped Getting started with CloudCannon and Astro: WYSIWYG blogging Jamstack vs. WordPress: reasons to make the change The top five static site generators for 2025 (and when to use them!) Free Jekyll themes for 2025: ten great community options Eleventy (11ty) vs. Hugo How to set up WYSIWYG editing with MkDocs Material The rise of static-first websites: why major brands are making the switch Watching your Core Web Vitals on Jamstack Understanding the difference between static, dynamic, and hybrid websites Looking for an alternative to Netlify CMS or Decap CMS? Designing components for your website editors: a CloudCannon case study Does my website look big in this? Six tips to lower your page weight Content is sacred — so own your revision history The eternal balancing act: load time vs. delay time Streamlined Headless Mode, Unified Configuration, and live data editing What is a headless CMS? Looking for a TinaCMS or Tina Cloud alternative? The ultimate guide to Hugo Sections Coming soon: Live config editing and data reloading Faster publishing workflows out now! Why information architecture matters for your website Website UX vs SEO: picking your battles Easily manage your multilingual Astro site in CloudCannon How you can optimize publishing workflows for your content team How you can optimize your CMS for SEO success How you can optimize your Content Editor for long-form articles How you can optimize your Visual Editor for page building Secure, swift, and stable: static sites for the financial sector Enhanced flexibility for teams with Custom Permissions Building static sites that scale The Inaugural 11ty International Symposium on Making Web Sites Real Good How to manage hundreds of connected websites with a Git-based headless CMS How we’re building CloudCannon for accessibility CloudCannon’s new editing improvements are here! Open Beta | New ways to collaborate on editing your websites Top 11 free Eleventy themes for 2024 Top 10 free Astro themes to use in 2024 Why choose a Git-based headless CMS over a monolithic DXP in 2024? Learning web development: a self-guided roadmap Partner Site of the Month: Blüthner Piano Centre, by Winteractive CloudCannon’s 2023 wrapup Let’s create a microblog with visual editing using Bookshop and Eleventy Update and visualize your branches with CloudCannon Projects What is a Git-based CMS and why you should use one CloudCannon secures SOC 2 certification The complete guide to growing your web development agency Automatically optimize your images with Eleventy Image and CloudCannon Share components and syndicate content with Site Mounting Partner Site of the Month: Cru Uncorked, by Ed Meehan New web component for responsive HTML tables Wrapping up HugoConf 2023 Partner Site of the Month: Van Dillen Antieke Bouwmaterialen, by Fulldev How to become a freelance web developer: a comprehensive guide Q3 2023: CloudCannon features and improvements 22 ways to deliver more value to your web development clients Partner Site of the Month: DC Gay Flag Football League, by Ed Cupaioli A new way to configure your CloudCannon sites CloudCannon — the official CMS partner of Eleventy Full CloudCannon support for Nuxt static sites Partner Site of the Month: Stadium Bike, by Insight Creative, Inc. HugoConf 2023, brought to you by CloudCannon DAM Support for Cloudflare R2 and DigitalOcean Spaces Eleventy (11ty) vs. Gatsby in 2023 – which SSG is best for you? How CloudCannon’s live editing works with Astro and Bookshop Partner Site of the Month: Fiducian, by Croissant & Baguette Eleventy (11ty) vs. Astro How to customize CloudCannon’s Client Sharing interface Let anyone, anywhere, edit your CloudCannon sites Top 23 free Astro themes for building out-of-this-world static sites in 2023 How Jampack optimizes our Eleventy website and improves performance Astro vs. Next.js CloudCannon.com is now built with Eleventy! Out-of-this-world support for all Astro users Introducing the CloudCannon Partner Program Full CloudCannon support for Gatsby Top 10 Free SvelteKit Themes for Building Lighting-Fast Static Sites in 2023 Enhanced CloudCannon support for Next.js users Upcoming CloudCannon Interface improvements (Open Beta)
The ‘After Jekyll’ era
2022-01-26 · via CloudCannon Blog

This is the second part of an ongoing series. If you'd like to read about the genesis of static site generators, see Part 1: The 'Before Jekyll' era.


By 2008, static websites were seen by most as ancient, obsolete technology, a holdover from the previous decade (or millennium, depending on your viewpoint).

Jekyll changed that. It was a breath of fresh air for developers coming from a world of complex APIs, plugins, and databases. The control and simplicity offered by Jekyll inspired developers to start creating their personal blogs on the platform. Before long, Jekyll was frequently used for documentation and other commercial projects.

Jekyll's success triggered a decade of recreation and iteration. Open-source developers around the world created their own special versions of Jekyll, bringing their own ideas and implementing them in their favorite languages. Static site generators were truly here to stay.

Jekyll Direct link to this section

First released in 2008 by Tom Preston-Werner

Tom Preston-Werner founded GitHub in 2008 with his cofounders Chris Wanstrath, P. J. Hyett, and Scott Chacon. 2008 was a busy year for Tom. Nine months after founding GitHub, in December 2008, he launched Jekyll — a simple, blog-aware, static site generator.

The complexity of existing blogging platforms fueled Tom to create Jekyll.

I already knew a lot about what I didn't want. I was tired of complicated blogging engines like WordPress and Mephisto. I wanted to write great posts, not style a zillion template pages, moderate comments all day long, and constantly lag behind the latest software release.

Jekyll built on many of the ideas from Nanoc and introduced two now-staple SSG features of its own:

  • Front matter — Having page metadata in a small YAML snippet at the top of a page's source code.
  • "Blog-aware" — Just put Markdown files in a folder, and Jekyll will turn it into a blog.

Along with Jekyll, GitHub launched GitHub Pages — a free hosting platform for Jekyll websites, which propelled Jekyll to become a household name among web developers.

Developers starting building their personal blogs, documentation, and even some business websites with Jekyll. The inflection point came when Kyle Rush used a Jekyll website to raise $250M for the Obama Campaign, and praised its quick page loads, reduction in page weight, structural flexibility for A/B testing, and the accompanying increase in donations for the campaign. The tides were changing on static. Static was no longer perceived as a limited technology, and SSGs weren't just tools to build personal developer blogs. There was a strong business case for creating static websites.

Jekyll's contributions were dwindling in late 2012 and looked like a dormant future for the SSG powerhouse. That was until Parker Moore wrote an open letter to Tom and became the lead maintainer until 2018. Parker took Jekyll from 0.9.x to 3.6 and led the charge in introducing many improvements along the way, including Collections, Sass and CoffeeScript support, front matter defaults, and many other quality-of-life improvements.

Ashwin Maroli and Matt Rodgers took over after that and have pushed Jekyll forward to 4.2.1 with many bug fixes, documentation improvements, optimizations and quality of life improvements.

See our introduction to getting started with Jekyll on CloudCannon.

Middleman Direct link to this section

First released in 2009 by Thomas Reynolds

Thomas Reynolds came to SSGs from a slightly different angle: "I started Middleman basically to make my life building email templates a little more simple and [DRY]". While building email templates was Middleman's initial use case, the principles of reducing complexity and repetition made it a popular alternative to Jekyll.

If you were coming from Ruby on Rails or Sinatra, Middleman would feel right at home with its ERB templating system and Ruby-based configuration. Until 3.0, Middleman was actually built on the Sinatra Ruby framework.

Where Middleman shone was in its consistency and supporting features. While Jekyll had many different maintainers, Thomas has always been at the helm of Middleman, creating a more cohesive platform. Features such as i18n, minifying, multiple templating languages, and CDN integration help set it apart.

Middleman enjoyed success with companies such as Mailchimp, Thoughtbot, and Vox Media. Thoughtbot used Middleman to rapidly spin up small landing page websites for clients. They also used it as their blog platform for a couple of years, driven by the performance of static sites and the improved contribution and review workflows enabled by Git.

Octopress Direct link to this section

First released in 2009 by Brandon Mathis

Brandon Mathis's story of creating Octopress is a little unusual from the rest of the static site generators for two reasons:

  1. Brandon came from a design and photography background.
  2. Octopress isn't an SSG in its own right. In Brandon's words, "Octopress is basically some guy's Jekyll blog you can fork and modify".

In October 2009, Brandon started working on a new version of his blog. He decided to use Jekyll, built a few rake tasks, made a nice theme, and before long, his WordPress site was now a Jekyll site.

Soon after, Chris Epstein, the creator of Compass and co-creator of Sass, forked Brandon's repository and asked for some help with the design. Being a big fan of Chris's, Brandon jumped on the opportunity straight away. He pulled out the content, made the theme more generic, and named his creation Octopress.

A few years later, he decided to improve Octopress. He took a few months off work, made the theme nicer, made fancier Rake tasks and plugins, and released Octopress 2.0. It was swiftly picked up on Hacker News and became one of the top 25 most forked repositories at the time.

Hakyll Direct link to this section

First released in 2009 by Jasper Van der Jeugt

In November 2009, Jasper Van der Jeugt set out to create a personal blog. He started researching platforms and found the following as his best options:

Wordpress is probably the most common blog software. I didn't really like it, because it's written in php, and because I recently became interested in static site generators.

nanoc, written by someone I know, seemed more appropriate. The downside was that it requires some Ruby knowledge, which I am currently lacking.

yst is a similar static site generator, mostly based on data files. I didn't really like its configuration system, and the next item looked better:

jekyll is also written in Ruby, but it seems more high-level and blog-ready (which is a good thing, you know, with my non-existent Ruby skills…). However, when I tried it out I ran across a certain bug, and I started googling. It turned out jekyll is not perfectly compatible with Ruby 1.9. Yeah, I'll repeat that: it's not compatible with Ruby 1.9. I didn't feel like downgrading any packages

(Any Jekyll user can relate to Jasper's Ruby struggles. It's often the most challenging part of installing Jekyll.)

Not finding any satisfactory options, Jasper did what many developers would do in this situation, and built his own SSG. Jekyll spurred many developers to build something different in their language of choice; going forward, we'll see this trend repeat across many SSGs. In this case, Jasper was learning Haskell, and creating a new SSG was the perfect opportunity to apply his new knowledge.

Hakyll stands out from its predecessors for two reasons:

  1. It's highly configurable — you have deep control over the routing and compilers (how pages are processed).
  2. It has tight integration with pandoc — pandoc is the Swiss Army knife of file conversions. You could write your content in Jira Wiki and output it as a PDF or Asciidoc to HTML. It supports many different formats allowing you to write and output in the languages you need.

These strengths are also Hakyll's weaknesses — if you want a simple SSG to quickly spin up a Markdown blog, this is probably not the SSG for you.

Pelican Direct link to this section

First released in 2010 by Alexis Metaireau

Pelican wasn't the first Python-based static site generator, but it was the first to gather considerable popularity. Alexis Metaireau created Pelican in November 2010 to scratch his own itch:

I was previously using wordpress, a solution you can host on a web server to manage your blog. Most of the time, I prefer using markup languages such as Markdown or RestructuredText to type my articles. To do so, I use vim. I think it is important to let the people choose the tool they want to write the articles. In my opinion, a blog manager should just allow you to take any kind of input and transform it to a weblog. That's what pelican does. You can write your articles using the tool you want, and the markup language you want, and then generate a static HTML weblog.

Using Jinja2 as a templating language and accessing the Python ecosystem was a huge win for the Python audience. Many of Pelican's features mirror Jekyll's, some with a bit of Pelican flair of their own. For example, front matter does not have the triple dash lines:

Title: My super title
Date: 2010-12-03 10:20

This is the content of my super blog post.

In other areas, Pelican outshines Jekyll. In particular:

  • Translations — Is core functionality in Pelican.
  • Pagination — The pagination in Jekyll is notoriously painful. Pagination in Pelican is a core feature that can be configured to your needs.
  • Atom & RSS Feed support — Jekyll has Atom feeds through a plugin. Pelican goes to the next level allowing you to have a feed per category, tag, and/or author, in addition to an overall feed.

Justin Mayer took over the reins as Pelican's lead maintainer in 2014, and he has steadily added new functionality, fixed bugs, and added quality-of-life improvements since then.


We've stepped through years of recreating and iterating on Jekyll — all vital to the current state of our SSG ecosystem. But what came next?

To my mind, it's an era of experimentation, of reinvention, of challenging Jekyll's foundations.

Stay tuned for Part 3 of this series: The 'Reinvention' era.