Skip to content


Repository files navigation


The static website generation tool for Symfony.


Why another static site generator?

We're Symfony developers that couldn't find a static website generator that bended to our needs.

We needed a way of generating static websites that:

  • Doesn't impose a format, a structure or a location for the data.
  • Runs in a Symfony environment.
  • Allow us to develop virtually any feature we might need.

Stenope does that.


In your existing Symfony app:

composer require stenope/stenope

If you plan to create a new app from scratch, you can give a try to the Stenope Skeleton.


bin/console -e prod cache:clear
bin/console -e prod stenope:build ./static

Your Symfony app is now a static website in: ./static! ✨

Next: learn more about Stenope's content management system.

Philosophy and goals

Stenope was designed with these goals in mind:

  • Stenope meets your needs, not the other way around.
  • Stenope runs in any Symfony project out of the box, connects with standard Symfony components and feels natural to Symfony developers.
  • Stenope is highly extensible: features can be replaced, added or removed.

How it works

  • 🔍 Stenope scans your Symfony app (like a search engine crawler would) and dumps every page into a static HTML file.
  • 🛠 Stenope provides tools for loading and parsing various data sources (like local Markdown files or distant headless CMS).
  • 🖌 Stenope enriches the parsed data by applying a series of processors (like Syntax Highlighting, slug generation, etc.).
  • 🧲 Stenope finally hydrates your custom PHP objects with the enriched data and provides interfaces for listing and retrieving them (like an ORM would).
  • ⚙️ Stenope gives you a lot of control over the whole process by providing entrypoints, interfaces and default implementations that are entirely replaceable.

What Stenope is not

Stenope is not a ready-to-use bloging system: but you could quickly write your own blog system with it!

In-depth documentation