The community-driven store of framework definitions that powers Lerd — teach Lerd a new PHP framework by editing YAML, no binary release required.
When you run lerd link on a project, Lerd detects which framework it is and pulls the matching definition from this store — then it knows how to serve it, which workers to run, how to set up its .env, how to scaffold it, and how to health-check it. Everything is a versioned YAML file. Add a framework here and every Lerd install can use it within 24 hours, with no new Lerd release and no Go code.
That's the whole point: Lerd is framework-agnostic, and this repo is where that agnosticism lives. Laravel, Symfony, WordPress, Drupal, CakePHP, CodeIgniter, Statamic, and Tempest are all defined here — not hardcoded in the binary — and so is whatever framework you add next.
A single frameworks/<name>/<version>.yaml teaches Lerd to:
- 🔎 Auto-detect the framework and its major version on
lerd link, from lockfiles, marker files, orcomposer.jsonentries - 🐘 Pin PHP to the versions the framework supports, so the right runtime is selected automatically
- 🌱 Set up
.env— wire database, cache, and service hosts, generate app keys, and apply framework-specific defaults - ⚒️ Run the right workers — queue, schedule, Horizon, Reverb, a host-side Vite dev server, and more, each self-healing and idle-suspendable
- 🚀 Scaffold new projects with the framework's own
create-projectcommand - 🩺 Health-check the site through Lerd's framework-agnostic doctor, with checks declared right in the definition
- 🧪 Drive the Tinker REPL, custom commands, log tails, and post-link setup steps (migrations,
storage:link, and friends)
All of it is data. None of it ships in the binary.
| Framework | Versions | Detection |
|---|---|---|
| Laravel | 13, 12, 11, 10 | artisan file or laravel/framework in composer.json |
| Symfony | 8, 7 | symfony.lock file or symfony/framework-bundle in composer.json |
| WordPress | 6, 5 | wp-login.php file or wp-config.php file |
| Drupal | 11, 10 | drupal/core-recommended or drupal/core in composer.json |
| CakePHP | 5, 4 | bin/cake file or cakephp/cakephp in composer.json |
| CodeIgniter | 4 | spark file or codeigniter4/framework in composer.json |
| Statamic | 6, 5 | statamic/cms in composer.json |
| Tempest | 3 | tempest file or tempest/framework in composer.json |
Don't see yours? Add it — that's what this repo is for.
You rarely touch the store directly: link a project and Lerd offers to install the matching definition for you. When you want to manage it by hand:
lerd framework search # list everything available
lerd framework search symfony # search by name
lerd framework install symfony # auto-detects the version from composer.lock
lerd framework install laravel@12 # install a specific major version
lerd framework list --check # compare your local definitions against the store
lerd framework update # refresh all installed definitionsInstalled definitions auto-refresh every 24 hours, so improvements landed here reach existing installs without an update.
New frameworks and version bumps are welcome — this store is only as good as the community around it.
- Fork this repo
- Add or update
frameworks/<name>/<version>.yaml - Add or update the entry in
frameworks/index.json(name, label, versions, latest, detect rules) - Open a pull request
Every definition declares a version matching the major release it targets, plus detection rules and whichever capabilities apply:
name: myframework
version: "7"
label: My Framework
public_dir: public
detect:
- composer: myvendor/myframework
php:
min: "8.2"
env:
# database/cache/service wiring, app key generation
workers:
# queue, schedule, and other long-running processes
setup:
# post-link commands (migrations, symlinks)
doctor:
# declarative health checksSee the frameworks documentation for the full schema reference and every available field.
MIT