Appearance
Introduction
What is kitloom?
kitloom is a set of Composer packages that turn a Laravel application into a content management system: grow on Laravel, run it with AI. Start a new site, with an admin in Filament or Nova whose screens editors already know, or bring the WordPress site you have, with its database as it is. Either way, an AI agent can do the site's work over MCP, with the rights of the user whose key it holds — see AI Agents.
It gives you what a typical content site needs — posts and pages, categories and tags, menus, media, widgets, custom fields, SEO, redirects, contact forms, sliders, a shop — a public site rendered by a theme, and a REST API.
Content is stored in the WordPress database: posts, postmeta, terms, term_taxonomy, options, users and the rest of WordPress's tables. That choice is deliberate:
- the schema is battle-tested and well understood;
- a site moving from WordPress keeps its database as it is — kitloom reads and writes the same rows, in the formats WordPress and its popular plugins use (ACF field groups, Rank Math head meta and redirects, Contact Form 7 forms and Flamingo messages, Slide Anything sliders, WooCommerce products and orders);
- a brand new site gets the same tables from
php artisan migrate, andphp artisan wordpress:installleaves what WordPress needs to run on that database too.
Compatibility is about the data, not the names. kitloom's modules are its own — Custom Fields, Post Types, Forms, Shop, Sliders — and they are not affiliated with WordPress or the plugins whose formats they read.
kitloom is not WordPress running inside Laravel. There is no PHP from WordPress, no hooks, no wp-admin. It is plain Laravel code that understands the WordPress data model.
Where exactly the line runs — which tables, names and rules are WordPress's, what each costs and how to work around it — is on What Is WordPress Here, What Is Laravel.
Laravel13PHP 8.3 or newer. Eloquent over the WordPress tables, providers, events, queues, Octane.Filament5The admin of Kitloom for Filament. MIT — nothing else to buy.Laravel Nova5The admin of Kitloom for Nova. Needs a Nova license from Laravel.
A site handled like WordPress
The public site follows the WordPress developer documentation rather than inventing its own rules. Every address that is not one of your own routes goes through the same steps WordPress takes:
- rewrite rules turn the address into query vars, following the site's permalink settings;
- the main query finds what the vars ask for — one record, a list, or nothing — and answers WordPress's conditional tags (
isSingle(),isCategory(),isSearch()…); - a record reached by a wrong address gets a 301 to its canonical address;
- the template hierarchy lists template names from the most specific (
single-book) down toindex, and the active theme renders the first one it has.
Posts, pages, archives, search, pagination and permalinks therefore behave the way site builders already know. See Architecture.
AI agents and headless
kitloom/ai puts an MCP server at /mcp, so Claude, Cursor and other agents read and write the site with the rights of a user: content, media, settings and the tools every installed module adds, through the same code as the admin. Nothing is deleted for good, locked settings stay out of reach, and every change is in the activity log — AI Agents. The other way round, kitloom/ai-writer lets the site ask a model itself, with its own key and a monthly budget, for the modules' "with AI" buttons; and kitloom/assistant puts the agents' tools in a chat on every admin page, answering with that model, every change waiting for the user's approval — Three Ways to Use AI.
The same address answers a browser with the rendered page and a client that sends Accept: application/json with the page's data. Without an active theme every page is JSON — a headless site. The REST root /wp-json/ belongs to the site, as it does in WordPress. kitloom/api mounts wp/v2 there, with application passwords; other modules mount their own namespaces. See Headless & APIs.
Two admin panels
The admin panel is your choice. kitloom supports both:
| Filament | Nova | |
|---|---|---|
| Version | Filament 5 | Laravel Nova 5 (needs a Nova license) |
| Admin packages | kitloom/*-filament | kitloom/*-nova |
| Starter project | kitloom/filament-skeleton | kitloom/nova-skeleton |
The domain logic of a module never depends on an admin panel. Each module is a trio of packages:
text
kitloom/redirects domain: models, rules, middleware — no admin code
kitloom/redirects-filament the Redirects section in Filament
kitloom/redirects-nova the Redirects section in NovaYou install the domain package and the admin package for the panel you use. See Modules › Overview.
Every kitloom package is commercial, under the kitloom License: a license buys one edition, Filament or Nova, with the core, every module and the themes — see Pricing.
Modules and themes
Modules add features. A module declares itself in its composer.json and appears on the Modules screen, where an administrator can switch it off and on again — the way plugins work in WordPress. Installing new code is still the job of Composer and your deployment, never of the admin panel. Each module has its own section in the admin menu, ending with a How it works page made from the module's README.
Themes render the public site. A theme is a package too; it names its engine — Blade, or Inertia 3 with Vue or React templates — and holds one template per name of the WordPress template hierarchy. The active theme is picked on the Appearance → Themes screen.
Menu locations and widget zones are declared by the theme in code — every theme has at least a footer zone — and the admin can add more: a new place for a menu on Menu Locations, a new column of widgets on Appearance → Widgets, without the register_nav_menus() or register_sidebar() and the deploy WordPress would need. The theme draws them by id. See Menus & Widgets.
Where to go next
- Installation — start a site from a skeleton or add kitloom to an existing Laravel app.
- Architecture — how a request becomes a page.
- Headless & APIs — page JSON, the REST root and the MCP server.
- Installing Modules and Installing Themes.
- Writing a Module and Writing a Theme.