redaxo/source
REDAXO is an easy-to-learn, flexible open-source CMS with content built from custom modules and full control over input and output. Multilingual, highly extendable, and adaptable to your workflow, it has been powering websites since 2004 and is backed by a friendly, helpful community.
What this package actually is. redaxo/source is not a Laravel package — it is the distribution payload for REDAXO, a standalone PHP CMS (v5.21.5) that ships its own application framework plus a set of system addons (structure, mediapool, media_manager, backup, cronjob, metainfo, be_style, install). It does not register a service provider, publish config, or expose facades. It owns the request lifecycle end to end.
Architecture fit.
rex_sql / rex_sql_table instead of Eloquent + migrations, fragments/templates/modules instead of Blade, rex_list for grids, rex_escape for output encoding, its own user/session tables (rex_user, rex_user_session, passkeys) and a category/language-scoped permission model.rex_sql_table's idempotent ensure semantics as a migration reference).Technical risk.
structure/history plugin allowed an unauthenticated attacker to obtain a backend session for any account, including administrators. 5.21.5 fixed a package-API privilege escalation (revoked admins could still install/uninstall addons), CSRF on safe-mode toggling, plus stored XSS and permission-scope fixes across mediapool, metainfo, structure.composer check, with regenerable baselines. PHP 8.3+ baseline, with forward-compat work already landed for PHP 8.5/8.6 deprecations.NOASSERTION while LICENSE.md and the README badge say MIT. Get this recorded in writing before any legal sign-off.Key questions for the requester.
Stack fit. PHP 8.3+, MySQL or MariaDB (note rex_sql_table now normalizes column types and defaults across both so ensure stops churning schema), Apache/nginx with the directory-protection mechanic in play. It suits an editorial/content-heavy requirement on commodity LAMP infrastructure. It does not suit a team that wants a Laravel-native content module.
Decision gate before any code. Run a two-week spike: one throwaway instance from the release tarball, install demo_base (the only demo fully translated to English and explicitly designed to explain the major concepts), and prototype one vertical slice — a template, a module with custom input/output, and a media-manager variant. Kill or continue on the evidence from that spike, not on the README.
Migration path.
composer require this as a library. Deploy the release artifact and treat the instance as an application.structure history table getting its status column appended out of position after the fact is exactly why schema is addon-owned and versioned by addon install/update routines.Compatibility and sequencing.
demo_base; document the addon/permission model.Maintenance and support. There is no vendor and no SLA. Support is the community Slack and FriendsOfREDAXO, German-first, with English, Spanish, Italian, Swedish and Portuguese localization in progress. Budget a named internal owner plus a documented "how we patch this" runbook; the changelogs are German, so either translate them in-process or accept that the on-call engineer needs to read them.
Patch cadence. Assume multiple security releases per year, sometimes clustered. The October 2026 set alone carried three core GHSAs plus fixes in five bundled addons. Your SLA should be explicit ("security patch deployed within X business days"), and the runbook must include disabling an addon as an interim mitigation — the project itself recommended disabling structure/history when immediate upgrade isn't possible.
Scaling. Conventional PHP CMS scaling: opcache, full-page or static export, read replicas, offloaded media. Two specifics matter: the nightly directory-protection check has been reduced to one directory per day and is now disable-able via use_directory_protection_check, because the request volume was tripping fail2ban and locking backend users out — expect to touch this in hardened environments. Cache invalidation across concurrent requests has produced sporadic "No clang found" errors, so cache coherency under load deserves a test.
Failure modes to design around.
backup[export] but no admin rights could previously export all tables, including password hashes and remember-me keys. Re-verify export scoping post-5.21.4.Ramp-up. Editors: low — the module model makes content entry genuinely simple, which is the product's core promise. Developers: moderate — fragments, templates, modules, plugins, package.yml metadata and the rex_* API are learnable in a few weeks for a competent PHP developer. TPM/architecture: higher, because making it behave like a component in a larger platform requires custom addon work and ongoing cross-release maintenance.
Exit cost. Content lives in MySQL with REDAXO-specific structure tables plus files on disk. Extraction is scriptable but not trivial. Decide up front whether content portability is a hard requirement, because retrofitting a clean export later is materially more expensive.
Overall TPM read. A 50.99 composite with opportunity at 28.61 and zero dependents matches the reality: this is a mature, competently maintained, self-hosted CMS with a loyal regional community, not a platform component for a Laravel-centric organization. It is the right call when the requirement is "capable, cheap, self-hosted PHP CMS with fine-grained editorial control" and the org accepts self-support and a fast patch discipline. It is the wrong call when the requirement is "embed content management into our existing Laravel application." Make that distinction the gate on the decision.
How can I help you explore Laravel packages today?