PHPackages                             unscrew/unscrew - 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. [API Development](/categories/api)
4. /
5. unscrew/unscrew

ActiveLibrary[API Development](/categories/api)

unscrew/unscrew
===============

Markdown-to-JSON headless CMS

0.5.1(1y ago)0191MITPHPPHP ~8.1

Since Nov 25Pushed 1y ago1 watchersCompare

[ Source](https://github.com/codebase-io/unscrew)[ Packagist](https://packagist.org/packages/unscrew/unscrew)[ RSS](/packages/unscrew-unscrew/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (10)Versions (7)Used By (1)

Unscrew
=======

[](#unscrew)

*Markdown-to-JSON headless CMS*

Built atop **symfony/http**, **league/commonmark** and **league/flysystem**, Unscrew is your bare-bones hackable JSON API in front of your Markdown files. Although it's main purpose is to expose JSON, you thanks to the powerful commonmark library, you can serve HTML too.

Reasons
-------

[](#reasons)

**The best reason** probably is that you can decouple the content from the publishing platform.

Installation
------------

[](#installation)

```
composer create-project unscrew/project unscrew
cd unscrew
docker compose up -d
```

Open  . The default composer stack uses Apache, with the config file located under `public/apache2.conf`.

Configuration
-------------

[](#configuration)

The configuration options are stored in `config.php`. Here you'll see we create a commonmark parser object and filesystem adapter to be used when parsing and locating files. You can use any of the flysytem adapters (s3/ftp/box/azure/dropbox):

- defaultFormat: the format to parse Markdown files to. `json`, `html` or `md`.

Routing
-------

[](#routing)

Customization
-------------

[](#customization)

Parsing
-------

[](#parsing)

Parsing markdown it usually done to HTML. However, when it comes to JSON there's a much higher coupling with the code consuming it. So don't settle for the default collection of parsers, and don't hesitate to implement your own.

The parser's interface only requirement is the `parse(string $filename)` method:

```
interface ParserInterface
{
    public function parse(stream, ?string $documentRoot=NULL, ?string $documentId=NULL): array;
}
```

Check the list of available parsers (// TODO)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance40

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~4 days

Total

6

Last Release

510d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0b9879c3495c26d08d77d10502e41ea39b07d78199ff10fbcfa624934d8b8acd?d=identicon)[adrian7](/maintainers/adrian7)

---

Top Contributors

[![adrian7](https://avatars.githubusercontent.com/u/225180?v=4)](https://github.com/adrian7 "adrian7 (23 commits)")

###  Code Quality

TestsPest

### Embed Badge

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

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

###  Alternatives

[laravel/framework

The Laravel Framework.

34.6k509.9M17.0k](/packages/laravel-framework)[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)[sulu/sulu

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

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[statamic/cms

The Statamic CMS Core Package

4.8k3.2M720](/packages/statamic-cms)

PHPackages © 2026

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