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 yesterday

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 35% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity42

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

562d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/225180?v=4)[Adrian Şilimon-Morariu](/maintainers/adrian7)[@adrian7](https://github.com/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

[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[laravel/framework

The Laravel Framework.

34.8k543.8M20.1k](/packages/laravel-framework)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[sulu/sulu

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

1.3k1.4M203](/packages/sulu-sulu)[drupal/core-recommended

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

6942.5M421](/packages/drupal-core-recommended)

PHPackages © 2026

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