v1.0.0 · Apache 2.0 · PHP 8.4+

Loom

PHP content-application framework. Every service binding, route, and middleware is declared in code you own. Constructors, not facades. We call this Pragmatic Zero Magic.

Install GitHub Packagist

Shape

Clone it and you have a site. Require it and you have a library. Same runtime either way — compact enough to inspect end to end.

Content
.vlt or Markdown with YAML frontmatter. Page index (JSON or SQLite). UUIDv7 identity, slug from the file path. Parsers for @html, Markdown, components. No database required for a content site.
Database
ORM with relations, casts, soft deletes, scopes, events. Query builder, schema builder, versioned migrations. SQLite, MySQL, PostgreSQL.
Tenancy
Host, path, or callback resolvers. Content, views, storage, cache, sessions, and database isolate per tenant. migrate:tenants with batching and resume.
Modules
module.json: semver requires, topological load order, routes, views, and CLI commands declared in the manifest. Folio is a module on this runtime.
HTTP
Named routes, groups, middleware pipelines. CSRF, sessions, rate limiting, ETag caching. Blade-like views. cURL client with retry and typed responses.
Jobs
Database queue with retry, deduplication, queue:work. Cron-style scheduler via CLI or web endpoint.
Ops
File, Redis, or APCu cache with tag invalidation. PSR-3 logs. Standalone validator. diagnose, optimize, config and route cache.

Runtime Composer: php ^8.4 · symfony/yaml · composer/semver · psr/log · psr/container

CLI

The binary is the product, not an afterthought.

loom list
Anvyr Loom 1.0.0

Cache       cache:clear
Config      config:get  config:set  config:cache  config:publish
Database    migrate  migrate:tenants
Make        make:module  make:model  make:command  make:controller
Modules     module:list  module:enable  module:compile  module:provision
Pages       page:list  page:make  page:publish  index:rebuild
Queue       queue:work
HTTP        serve  route:cache
System      diagnose  install  optimize  version  schedule:run

Install

Clone the app. Or require the library.

shell
# site
$ git clone https://github.com/anvyr/loom.git
$ cd loom
$ ./install.sh
$ ./loom serve
http://localhost:8000

# library
$ composer require anvyr/loom:^1.0

PHP 8.4+ · pdo mbstring json openssl · optional curl redis apcu

Not this

  • CMS Folio is the publishing product. Loom is the runtime.
  • Laravel APIs Own the stack or own nothing.
  • PHP 7 forever Current PHP. Legacy detours dropped early.