PHPackages                             rkn/cms - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. rkn/cms

ActiveProject[HTTP &amp; Networking](/categories/http)

rkn/cms
=======

Flat-file CMS for shared hosting — Markdown, Twig, Yoyo reactive components, PSR-7/11/15/16, no database required.

v1.6.4(2w ago)1134GPL-3.0-or-laterPHPPHP ^8.2

Since Mar 3Pushed 2w agoCompare

[ Source](https://github.com/RakunVentures/rakuncms)[ Packagist](https://packagist.org/packages/rkn/cms)[ Docs](https://rakuncms.com)[ RSS](/packages/rkn-cms/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (132)Versions (67)Used By (0)

RakunCMS
========

[](#rakuncms)

**The flat-file PHP CMS that deploys to shared hosting in minutes.**

RakunCMS is a blazing fast, flat-file CMS built for shared hosting environments — powered by Markdown, Twig, Yoyo reactive components, and PSR standards. Content can live in flat Markdown files or a database — no heavyweight stack required.

[![Latest Stable Version](https://camo.githubusercontent.com/06b2edf332c9276b2506c29c6d35adff4a735a693788dce33e601915366b1880/68747470733a2f2f706f7365722e707567782e6f72672f726b6e2f636d732f762f737461626c65)](https://packagist.org/packages/rkn/cms)[![Total Downloads](https://camo.githubusercontent.com/6f783b9f070ab376b7bbec26fcc96315f1a1324153b05ece74985ac84cd6a7fd/68747470733a2f2f706f7365722e707567782e6f72672f726b6e2f636d732f646f776e6c6f616473)](https://packagist.org/packages/rkn/cms)[![License](https://camo.githubusercontent.com/9d16ac68e92cd6248ebfb1ff7e80f0b865d31ca505f7f5c4cfcb3e580c41a293/68747470733a2f2f706f7365722e707567782e6f72672f726b6e2f636d732f6c6963656e7365)](https://packagist.org/packages/rkn/cms)

Why RakunCMS?
-------------

[](#why-rakuncms)

We built RakunCMS as an alternative to CMSs like WordPress, Grav, Statamic, and Kirby. Our core philosophy is simplicity, performance, and accessibility.

- **Flat-file or database**: content lives in Markdown files (folder = site structure) by default, or in MySQL via the opt-in content store — same Query API either way.
- **Runs on $3/mo shared hosting (cPanel/Plesk)**: Deploy effortlessly via FTP/cPanel. No persistent processes, no VPS required.
- **No Node.js or Docker required**: Everything runs in a pure PHP ecosystem.
- **Composer-installable**: Manage your site easily with Composer.
- **Reactive components without writing JavaScript**: Build interactive UIs with PHP components that update seamlessly without full page reloads, powered by Yoyo (htmx).
- **PSR-7/11/15/16 compliant**: Built on a custom micro-framework with under 5MB of total dependencies.

Installation &amp; Quick Start
------------------------------

[](#installation--quick-start)

Getting started with RakunCMS is incredibly fast:

```
# 1. Create a new site via Composer
composer create-project rkn/cms my-website
cd my-website

# 2. Initialize the site structure
php rakun init

# 3. Start the built-in development server
php rakun serve
```

Open `http://localhost:8080` in your browser to see your site running!

Core Features
-------------

[](#core-features)

- **Flat-File Architecture (default)**: By default, everything is stored in Markdown and YAML — no MySQL configuration, no database backups. Opt in to a MySQL content store by setting `content.driver: mysql` in config, powered by `ContentStorageFactory` selecting between `FileContentStorage` and `MysqlContentStorage` via the `ContentStorage` interface. A SQLite-backed content index (set `index.driver: sqlite`) is also available for large collections where a PHP-array index would be memory-intensive.
- **Reactive Yoyo Components**: Build interactive, stateful PHP components (similar to Livewire) using HTMX under the hood.
- **Built-in SEO Engine**: Automatically generates Open Graph tags, JSON-LD markup, handles consent management, and integrates with WebMCP.
- **Full-Text Search**: Features an integrated inverted index for blazing fast search capabilities without needing external services like Algolia or Elasticsearch.
- **Native i18n**: Out-of-the-box support for multi-locale routing and content localization.
- **Multi-Level Caching**: Achieve 1-3ms response times in production using static HTML full-page caching coupled with OPcache.
- **CLI Tools**: Integrated `rakun` command-line tool to easily clear the cache, make components, or run background queue workers.
- **Static Export**: `bin/rakun build` renders every published entry to `dist//index.html` and generates `sitemap.xml`/`rss.xml`/`robots.txt` — source-agnostic and fully compatible with both `file` and `mysql` content stores. Deploy to any cheap or static host.
- **Optional Admin Panel**: `rakuncms-admin` is a separate, optional Laravel + Filament application that manages one or more RakunCMS sites over the HTTP content API. Flat-file sites can still be edited by hand or via Git with no admin panel required.

Developer Experience (DX)
-------------------------

[](#developer-experience-dx)

- **Laravel Herd Integration**: Includes a custom Valet driver (`RakunCmsValetDriver`) and the `php rakun herd:install` command for automatic site discovery and blazingly fast local development on macOS.
- **Clean Architecture**: Built on a highly optimized, custom PSR-compliant micro-framework. Total production dependencies are kept strictly under 5MB, ensuring a lightweight footprint for any hosting environment.

How It Works
------------

[](#how-it-works)

1. **Write Content**: Create or edit `.md` files directly in the `content/` directory.
2. **Customize Design**: Edit the `.twig` templates located in `templates/` to match your brand.
3. **Add Interactivity**: Build stateful Yoyo components in `src/Components/` with matching views in `templates/yoyo/`.

Deployment — Plesk via Git + GitHub webhook
-------------------------------------------

[](#deployment--plesk-via-git--github-webhook)

RakunCMS sites deploy cleanly on **Plesk** using Plesk's built-in **Git** integration pulling from **GitHub**, with a **GitHub webhook** that triggers a deploy on every push. This is the canonical reference for the RakunCMS ecosystem (the sites built on top of `rkn/cms` follow the same flow).

**Flow:** GitHub `push` → webhook → Plesk pulls the branch → Plesk runs the deployment actions (`composer install` + cache/sitemap warmup) → the new code is live under the domain's document root.

### 1. Prepare the domain in Plesk

[](#1-prepare-the-domain-in-plesk)

- Create or choose the subscription/domain that hosts the site.
- **Hosting Settings → PHP**: select **PHP 8.2+** (8.3 recommended) with `mbstring` enabled.
- Ensure the **Git** component is installed (Plesk → *Tools &amp; Settings → Updates → Add Components → Git*).

### 2. Connect the GitHub repository — *Websites &amp; Domains → Git → Add Repository*

[](#2-connect-the-github-repository--websites--domains--git--add-repository)

- Repository URL:
    - Public repo: `https://github.com//.git`
    - Private repo: use SSH `git@github.com:/.git` and add the **deploy key** Plesk shows to **GitHub → repo → Settings → Deploy keys** (read-only access is enough).
- **Branch:** `main`.
- **Deployment path:** the folder Plesk publishes to (e.g. the domain's `httpdocs`).

### 3. Point the document root at `public/`

[](#3-point-the-document-root-at-public)

RakunCMS serves from the `public/` front controller. Set **Hosting Settings → Document root** to `/public` (e.g. `httpdocs/public`).

### 4. Enable automatic deployment + actions

[](#4-enable-automatic-deployment--actions)

In the repository's settings in Plesk:

- **Deployment mode:** *Automatic* (deploy when the repository is updated) — this is what the webhook drives.
- **Additional deployment actions** (run after each pull, from the repo root): ```
    /opt/plesk/php/8.3/bin/php /usr/lib/plesk-9.0/composer.phar install --no-dev --optimize-autoloader --no-interaction
    /opt/plesk/php/8.3/bin/php vendor/bin/rakun cache:clear
    /opt/plesk/php/8.3/bin/php vendor/bin/rakun cache:warmup
    /opt/plesk/php/8.3/bin/php vendor/bin/rakun sitemap:generate
    # If the site uses the SQLite/MySQL content index, also run:
    # /opt/plesk/php/8.3/bin/php vendor/bin/rakun index:rebuild
    ```

    > Use the **explicit Plesk PHP 8.3 binary** (`/opt/plesk/php/8.3/bin/php`) — the default `php` in deployment actions can be an older version. Adjust the `composer.phar` path to your Plesk install (or use a `composer` available on `PATH`).

### 5. Add the GitHub webhook

[](#5-add-the-github-webhook)

Plesk shows a **Webhook URL** for the repository once *Automatic deployment* is on. Copy it, then in **GitHub → repo → Settings → Webhooks → Add webhook**:

- **Payload URL:** the Plesk webhook URL.
- **Content type:** `application/json`.
- **Which events:** *Just the push event*.
- Save. Pushing to `main` now calls Plesk and deploys automatically.

### 6. Writable paths &amp; config

[](#6-writable-paths--config)

- Ensure `cache/` and `storage/` are writable by the subscription's web user.
- Site config lives in `config/rakun.yaml`; keep secrets (API keys, mail, payment keys) in environment variables / `.env` on the server — never commit them.
- First deploy of a brand-new site only: scaffold the structure with `php bin/rakun init`.

> RakunCMS also ships its own `deploy:*` commands (atomic FTP/SSH deploys for shared hosting without Git). The Plesk + GitHub webhook flow above is the recommended path when the host runs Plesk.

Documentation
-------------

[](#documentation)

Full documentation, guides, deployment instructions, and API reference can be found at:

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

[](#contributing)

We welcome all contributions from the community! If you're looking to help out, report bugs, or understand how RakunCMS works under the hood, please read our [Contributing Guide](CONTRIBUTING.md) which includes an in-depth **Architecture Overview**.

License
-------

[](#license)

GPL-3.0-or-later

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance95

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity54

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 ~2 days

Total

66

Last Release

3d ago

Major Versions

v0.1.0 → v1.0.02026-03-03

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1626624?v=4)[ElAlecs](/maintainers/elalecs)[@elalecs](https://github.com/elalecs)

---

Top Contributors

[![elalecs](https://avatars.githubusercontent.com/u/1626624?v=4)](https://github.com/elalecs "elalecs (99 commits)")

---

Tags

psr-7phptwigpsr-16markdowncmsflat filepleskhtmxcpanelyoyoshared hostingreactive-components

###  Code Quality

TestsPest

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[laravel/framework

The Laravel Framework.

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

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[getgrav/grav

Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

15.6k86.4k1](/packages/getgrav-grav)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)[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)
