PHPackages                             couscous/couscous - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. couscous/couscous

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

couscous/couscous
=================

Documentation website generator

1.10.0(3y ago)84167.6k↓23.8%102[15 issues](https://github.com/CouscousPHP/Couscous/issues)[7 PRs](https://github.com/CouscousPHP/Couscous/pulls)20MITPHPPHP &gt;=7.4

Since May 15Pushed 1y ago30 watchersCompare

[ Source](https://github.com/CouscousPHP/Couscous)[ Packagist](https://packagist.org/packages/couscous/couscous)[ GitHub Sponsors](https://github.com/mnapoli)[ RSS](/packages/couscous-couscous/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (16)Versions (43)Used By (20)

   layout     home

  Couscous generates a [GitHub pages](https://pages.github.com/) website from your markdown documentation.

[![Build Status](https://camo.githubusercontent.com/9028c52e59e2edeb396db0084c9051f6898a5d74dc8ea461aa8b2fb3a527eb55/68747470733a2f2f7472617669732d63692e6f72672f436f7573636f75735048502f436f7573636f75732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/CouscousPHP/Couscous)[![Average time to resolve an issue](https://camo.githubusercontent.com/da796f036d17cefc071a385ff20e5912ee941b35b4844e982c3f86b4f0a457ee/68747470733a2f2f697369746d61696e7461696e65642e636f6d2f62616467652f7265736f6c7574696f6e2f436f7573636f75735048502f436f7573636f75732e737667)](https://isitmaintained.com/project/CouscousPHP/Couscous "Average time to resolve an issue")[![Percentage of issues still open](https://camo.githubusercontent.com/095bb9a98b476d4f3cdbcef54137cfcbe1248cd79649a9f2ca27623c995c6a74/68747470733a2f2f697369746d61696e7461696e65642e636f6d2f62616467652f6f70656e2f436f7573636f75735048502f436f7573636f75732e737667)](https://isitmaintained.com/project/CouscousPHP/Couscous "Percentage of issues still open")

**Everything is documented on [couscous.io](https://couscous.io/).**

What follows is the documentation for contributors.

How Couscous works?
-------------------

[](#how-couscous-works)

Couscous was designed to be as simple as possible. By embracing simplicity, it becomes extremely simple to extend.

### Website generation

[](#website-generation)

The website generation is composed of a list of **steps** to process the `Project` model object:

```
interface Step
{
    /**
     * Process the given project.
     *
     * @param Project $project
     */
    public function __invoke(Project $project);
}
```

Steps are very granular, thus extremely easy to write and test. For example:

- `LoadConfig`: load the `couscous.yml` config file
- `InstallDependencies`: install the dependencies (using yarn, npm or bower)
- `LoadMarkdownFiles`: load the content of all the `*.md` files in memory
- `RenderMarkdown`: render the markdown content
- `WriteFiles`: write the in-memory processed files to the target directory
- …

For example, here is a step that would preprocess Markdown files to put the word "Couscous" in bold:

```
class PutCouscousInBold implements \Couscous\Step
{
    public function __invoke(Project $project)
    {
        /** @var MarkdownFile[] $markdownFiles */
        $markdownFiles = $project->findFilesByType('Couscous\Model\MarkdownFile');

        foreach ($markdownFiles as $file) {
            $file->content = str_replace('Couscous', '**Couscous**', $file->content);
        }
    }
}
```

Couscous uses [PHP-DI](https://php-di.org/) for wiring everything together with dependency injection.

The full list of steps is configured in [`src/Application/config.php`](src/Application/config.php).

### Website deployment

[](#website-deployment)

Couscous deploys by cloning (in a temp directory) the current repository, checking out the `gh-pages` branch, generating the website inside it, committing and pushing.

In the future, Couscous will support several deployment strategies.

Contributing
------------

[](#contributing)

See the [CONTRIBUTING](CONTRIBUTING.md) file.

License
-------

[](#license)

Couscous is released under the MIT License.

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity53

Moderate usage in the ecosystem

Community44

Growing community involvement

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 72.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~82 days

Recently: every ~43 days

Total

40

Last Release

1182d ago

Major Versions

0.3.3 → 1.0.0-beta12014-11-29

PHP version history (5 changes)0.1.0PHP &gt;=5.3.3

1.0.0-beta1PHP &gt;=5.4.0

1.7.0PHP &gt;=5.6.0

1.8.0PHP &gt;=7.1

1.9.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/329a6111724074f5388e95dd41a03ccf3c43f4bfe1ecf27c94c9efc6f7823228?d=identicon)[mnapoli](/maintainers/mnapoli)

---

Top Contributors

[![mnapoli](https://avatars.githubusercontent.com/u/720328?v=4)](https://github.com/mnapoli "mnapoli (384 commits)")[![wysow](https://avatars.githubusercontent.com/u/632747?v=4)](https://github.com/wysow "wysow (42 commits)")[![Baptouuuu](https://avatars.githubusercontent.com/u/851425?v=4)](https://github.com/Baptouuuu "Baptouuuu (15 commits)")[![cyberbit](https://avatars.githubusercontent.com/u/7350183?v=4)](https://github.com/cyberbit "cyberbit (15 commits)")[![lombartec](https://avatars.githubusercontent.com/u/3073746?v=4)](https://github.com/lombartec "lombartec (10 commits)")[![Nyholm](https://avatars.githubusercontent.com/u/1275206?v=4)](https://github.com/Nyholm "Nyholm (9 commits)")[![leoruhland](https://avatars.githubusercontent.com/u/1785552?v=4)](https://github.com/leoruhland "leoruhland (7 commits)")[![BilelJegham](https://avatars.githubusercontent.com/u/20130405?v=4)](https://github.com/BilelJegham "BilelJegham (6 commits)")[![henriquemoody](https://avatars.githubusercontent.com/u/154023?v=4)](https://github.com/henriquemoody "henriquemoody (6 commits)")[![jubianchi](https://avatars.githubusercontent.com/u/327237?v=4)](https://github.com/jubianchi "jubianchi (4 commits)")[![max-preno](https://avatars.githubusercontent.com/u/102341225?v=4)](https://github.com/max-preno "max-preno (4 commits)")[![jdecool](https://avatars.githubusercontent.com/u/433926?v=4)](https://github.com/jdecool "jdecool (3 commits)")[![eguvenc](https://avatars.githubusercontent.com/u/482833?v=4)](https://github.com/eguvenc "eguvenc (3 commits)")[![alanpoulain](https://avatars.githubusercontent.com/u/10920253?v=4)](https://github.com/alanpoulain "alanpoulain (2 commits)")[![bobmulder](https://avatars.githubusercontent.com/u/5465074?v=4)](https://github.com/bobmulder "bobmulder (2 commits)")[![lex111](https://avatars.githubusercontent.com/u/4408379?v=4)](https://github.com/lex111 "lex111 (2 commits)")[![nklatt](https://avatars.githubusercontent.com/u/186526?v=4)](https://github.com/nklatt "nklatt (2 commits)")[![odan](https://avatars.githubusercontent.com/u/781074?v=4)](https://github.com/odan "odan (2 commits)")[![pnowy](https://avatars.githubusercontent.com/u/3254609?v=4)](https://github.com/pnowy "pnowy (2 commits)")[![snipe](https://avatars.githubusercontent.com/u/197404?v=4)](https://github.com/snipe "snipe (2 commits)")

---

Tags

documentationmarkdownstatic-site-generator

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/couscous-couscous/health.svg)

```
[![Health](https://phpackages.com/badges/couscous-couscous/health.svg)](https://phpackages.com/packages/couscous-couscous)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19562.3M1.3k](/packages/drupal-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[simplesamlphp/simplesamlphp

A PHP implementation of a SAML 2.0 service provider and identity provider.

1.1k12.4M193](/packages/simplesamlphp-simplesamlphp)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6939.5M343](/packages/drupal-core-recommended)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
