PHPackages                             noveltylanterns/raven - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. noveltylanterns/raven

ActiveProject[Utility &amp; Helpers](/categories/utility)

noveltylanterns/raven
=====================

Raven CMS

0.8.3(2mo ago)20GPL-3.0-or-laterPHPPHP ^8.5

Since Feb 26Pushed 1mo agoCompare

[ Source](https://github.com/noveltylanterns/raven)[ Packagist](https://packagist.org/packages/noveltylanterns/raven)[ Docs](https://raven.lanterns.io)[ Fund](https://www.amazon.com/hz/wishlist/ls/1DBOGWQBSIKEM)[ Fund](https://cash.app/$boycottcalifornia)[ RSS](/packages/noveltylanterns-raven/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (12)Versions (6)Used By (0)

Raven CMS
=========

[](#raven-cms)

An experiment in vibe-coding a better content management system, and a better foundation for your web sites. It is a classic self-hosted CMS built on common open-source technologies where you own your own data.

It is also an AI-powered website generation platform all-in-one. It is designed to be flexible for hobbyists &amp; professionals. You can customize &amp; extend it the old-fashioned way with a text editor, or by pointing your clanker to [AGENTS.md](AGENTS.md) &amp; asking it for help with setup or building a theme/extension. And if you're a traditionalist, all the AI bullshit is completely optional - nothing is dependent on the machine. Even the build tools, if I lost access to Codex, all of this could still be maintained like a traditional piece of software.

I told Codex to go liberal on the inline comments and produce human-readable code. Rather than starting with a vague overall blueprint, I had Codex build this piece-by-piece as if I were doing it manually. Because of this I was able to somewhat-force the machine to adhere to my [workflow](https://bestpoint.institute/tactics/unix-philosophy) as best as I could. *(This whole project is just an excuse to explore the possibilities of AI-assisted tooling in minimalist server frameworks.)*

How to Install
--------------

[](#how-to-install)

### Requirements

[](#requirements)

- A web server *([Nginx](docs/examples/nginx.md) or [Grackle](docs/examples/grackle.md) ideal)*
- PHP 8.5 *(May work on earlier PHP 8.x releases, but I have not tested yet)*
- SQLite3 or a clean MySQL/PgSQL database

### Agent Notes

[](#agent-notes)

If you're using this on a production web server, for the love of God do not run your Agent as the same user that has write permissions over the Agent's binary. And the user for the server process shouldn't even be able to see the binary at all. You really do need to keep these things on a short leash, or they will just run rampant like demons at the least-convenient opportunity. Ideally just put your whole Agent-powered dev environment on a cheap private VPS somewhere, and use your production server to `git fetch` Raven-sans-AI so that it can't escape.

It sounds dystopian, but the AI is much like a German Shephard dog. It was bred to be a working animal. It needs focused tasks to do or it will hallucinate and possibly bite someone. But boundaries, in my experience so far, seems to help focus the machine.

### Steps

[](#steps)

1. Upload the package to your webhost, with the contents of `public/` going into your web root. *(May be called `public_html/` on some systems.)*
2. Run `composer install` in the application root to pull in Composer dependencies.
3. Go to your-domain.com/install.php
4. Fill out the form, configure your database driver, and create your first admin user.
5. Verify your site works, delete `install.php`, and start creating content.
6. ???????
7. PROFIT!!!

Updating Raven
--------------

[](#updating-raven)

That's the neat thing: You don't!

No but seriously, the Agent has been very uncooperative about this one. I'm not gonna get hung up on it yet since this is still a prototype. Once the core architecture is nailed down, I'm just gonna manually build an updater later.

Building on Raven
-----------------

[](#building-on-raven)

There are several places in your local install that are going to be ignored by the future update process: Your **Theme** and **Extension** folders. They are designed to safely accomodate your modifications and preserve them through system updates. If you need further architectural info, I had Codex [document](docs/README.md) its work.

### Themes

[](#themes)

Raven supports public themes with child-theme fallback chains for rapid customization.

The frontend includes an ExpressionEngine-style brace-tag templating layer (`{site:name}`, `{if ...}`, `{each ...}`, etc.) that works in both custom theme views and core fallback views, while still allowing regular PHP in templates. Point your agent at [public/theme/AGENTS.md](public/theme/AGENTS.md) to build custom themes, then activate the theme in the Theme Manager.

The default themes are all built using [Bootstrap](https://getbootstrap.com), but it is not a required dependency. If you have the coding know-how *(or know how to phrase it to the machine)* then you can build a frontend using whatever you want.

#### Theme Fallback Chain

[](#theme-fallback-chain)

When loading the frontend, Raven first checks `public/theme/{slug}` for whatever theme you have set in your config. Whatever views are missing from your theme, it should pull default basic styles from `private/tpl/`. If your theme is set as a "child theme," it will pull the missing views from the parent first before checking `private/tpl/` for the rest.

In theory.

#### Custom Admin Panel Themes

[](#custom-admin-panel-themes)

The admin panel is a bit more rigid, since its focus is to be a robust out-of-box scaffold to enable rapid frontend prototyping. However, it is themable to some extent. Refer to [panel/theme/AGENTS.md](panel/theme/AGENTS.md) for architectural info.

### Extensions

[](#extensions)

If you need to add content types, helper functions, or even whole new parts of the panel, use the Extensions system. This will help your complex modifications remain compatible with future core changes.

There are several extension types:

- **Helper:** Utility extensions for reusable logic and shortcodes. No public routes.
- **Content:** Content-model extensions that can provide custom editor fields. No public routes.
- **Plugin:** Combined helper/content extensions that can provide both shortcodes and custom fields.
- **Module:** Full-stack extensions that can expose both panel routes and public routes.
- **System:** Administrative extensions shown under the System area for high-level configuration workflows.

Raven also ships with several useful bundled stock extensions. They are disabled by default on new installs. These official Stock extensions **cannot** be deleted.

Point your Agent at [private/ext/AGENTS.md](private/ext/AGENTS.md) to get started with building Raven extensions, or generate a skeleton in your panel's [Extension Manager](docs/Extensions.md).

#### Enable the Output Profiler

[](#enable-the-output-profiler)

The option is available in your [System Configuration](docs/Configuration.md). It puts a little debug toolbar at the bottom of every page, so you can easily chase down hiccups &amp; bloat - exactly what you need for auditing AI-generated code.

Caveats
-------

[](#caveats)

- This application is very much still a proof-of-concept prototype.
- I have not been able to personally verify the contents of every file.
- Raven has not gone through a proper full security audit yet.
- There are still some pretty nonsensical things I've caught the clanker doing, so some of the code might be horribly inefficient. *(But it is at least readable! So we can hammer that one out in time.)*
- I am not generating upgrade or migration scripts yet. ***Prepare to rebuild a few times until this is out of the prototype stage.***

But Why?
--------

[](#but-why)

After spending the past twenty years freelancing in web development &amp; building blogs for people, I have come to harbor an intense hatred for Wordpress. Wordpress is a mess and it sucks. The community sucks even more. God help you if you need to extend your system, as third-party plugins &amp; themes trap you in bloated Javascript frameworks &amp; dependency hell. Developing for Wordpress makes me want to die.

I desire nothing more than to see the Wordpress ecosystem abandoned en masse for a platform that is actually streamlined for the 21st century.

Furthermore, a quick survey of the code produced by popular AI website generators revealed **absolutely unreadable spaghetti code out the wazoo**, so that even if you managed to escape the walled gardens and self-host your site, you still wouldn't be able to figure out how to edit it without the AI. I've consulted on several projects that have already ran into this problem.

Brothers, truly I tell you: ***There is a better way.***

Useful Links
------------

[](#useful-links)

Documentation Index: [docs/README.md](docs/README.md)

Official Site: [raven.lanterns.io](https://raven.lanterns.io)

Packagist: [noveltylanterns/raven](https://packagist.org/packages/noveltylanterns/raven)

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance97

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

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

Total

4

Last Release

65d ago

### Community

Maintainers

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

---

Tags

aiai-agent-toolsai-toolsbootstrapcmscomposercontent-management-systemphpphp8

### Embed Badge

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

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

###  Alternatives

[jason-munro/cypht

Lightweight Open Source webmail written in PHP and JavaScript

1.5k146.0k](/packages/jason-munro-cypht)[patricktalmadge/bootstrapper

Twitter Bootstrap markup generator

557407.2k4](/packages/patricktalmadge-bootstrapper)[datatables.net/datatables.net-bs5

DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table. This is DataTables with styling for \[Bootstrap5\](https://getbootstrap.com/)

2185.7k16](/packages/datatablesnet-datatablesnet-bs5)[datatables.net/datatables.net-bs4

DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table. This is DataTables with styling for \[Bootstrap4\](https://getbootstrap.com/docs/4.6/getting-started/introduction/)

2924.0k15](/packages/datatablesnet-datatablesnet-bs4)

PHPackages © 2026

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