typo3/cms-workspaces
TYPO3 Workspaces adds editorial workflow to TYPO3 CMS, letting teams edit content in draft workspaces, preview and review changes, and publish to the live site only when ready.
Bottom line: despite the Packagist framing, this is not a Laravel package. typo3/cms-workspaces is a TYPO3 Core system extension ("sysext") — a Composer package split out of the TYPO3 monorepo, hard-coupled to typo3/cms-core. The "Dependents: 0" figure reflects split-package metadata, not a lack of adoption; 1,219 stars are the monorepo mirror's, not this component's. The low opportunity score (27.21) is consistent with "not designed for reuse outside its host application."
Architecture fit — none for Laravel. Workspaces implements editorial staging: records are versioned in place (t3ver_* fields), edited against a sys_workspace with configurable stages, previewed, and published through DataHandler — TYPO3's central write path. It leans on TCA/TcaSchemaFactory, the Symfony DI container and failsafe container, PSR-15 backend middleware, PSR-14 events, and TYPO3 backend modules with Fluid templates. None of these primitives exist in a Laravel application: no service provider, no Eloquent models, no Blade views, no Laravel events, no queue jobs. There is no seam at which it can be dropped into composer require of a Laravel project.
Integration feasibility — three real options, one of which is "don't."
$GLOBALS['TCA'], and DataHandler.Technical risk — high.
DataHandler operation with dependency resolution across versioned relations; partial failures and large publish sets are the known sharp edges.Key questions for the requesting team:
Stack fit. Zero fit with Laravel's container, ORM, routing, or view layer. Fit with TYPO3 v13 LTS/v14 is native by definition — it is a core sysext, installed as part of the TYPO3 package set, not as an independent library. Treat "integration" as federation between two applications, or reject it.
Migration path. There is no migration from a Laravel codebase to this package. Migration only exists in the reverse direction: if we adopt TYPO3 for content, it is a greenfield TYPO3 install (base distribution, site configuration, TCA-defined content model, backend users assigned to workspaces, stages configured per workspace), with the Laravel application retaining its own domain data and consuming published content over an API boundary. Nothing is shared at the database or session level — do not attempt a shared MySQL schema.
If we instead build the capability natively (recommended for a Laravel shop), the path is: version table keyed on model + version, draft state machine (draft → in review → published → archived), publish action dispatching a queued job that resolves relation dependencies, preview route behind policy gates, and an audit log. Existing Laravel versioning/audit packages cover roughly half of this.
Compatibility. Runs on current PHP 8.x with MySQL/MariaDB/PostgreSQL/SQLite and TYPO3's supported web servers. Incompatible with Laravel's service container, Eloquent, Blade, Horizon, and Laravel's event dispatcher — by construction, not by version drift. No compatibility matrix to negotiate; there is simply no intersection.
Sequencing (if leadership still wants it):
Maintenance. Two release trains to track if both platforms are retained. This sysext moves with TYPO3 majors; skipping a major is expensive, and the deprecation policy removes APIs one major after marking them. Upstream fixes require Gerrit review, so we carry any local divergence as a fork — a fork of a GPL core package we then must maintain ourselves.
Support. Community-only: TYPO3 Slack, Forge (Redmine) issues, Stack Overflow, and docs.typo3.org. Commercial SLAs exist only through TYPO3 GmbH or a partner agency, and only for TYPO3. Our Laravel team gets nothing — no vendor, no mutual escalation path, and a bug in publish semantics is a bug in someone else's core.
Scaling. Workspaces is write-amplifying: version rows, sys_history, and sys_log growth on every editorial action, plus publish operations that run as heavy transactional writes. Editorial concurrency is fine at dozens of editors; publish throughput is the ceiling, and large publishes are the operation that times out. Preview rendering adds load to the frontend tier. If content volume is high, plan for archive/pruning of history and publish batching. None of this scales horizontally the way Laravel + queue workers does; it is a monolith with a backend module.
Failure modes to design for.
Ramp-up. A Laravel developer needs roughly 2–4 weeks to be useful in TYPO3 core patterns (TCA, DataHandler, DI/ServiceProvider split, PSR-14, Fluid) and longer to be safe around workspaces publish semantics. That knowledge is largely non-transferable back to the Laravel codebase. Budget a TYPO3 integrator, not a reassigned Laravel engineer.
Recommendation. Do not adopt this package into a Laravel product. Approve a 2-week spike to (a) confirm whether the underlying need is editorial workflow or generic draft/publish, and (b) produce a Laravel-native design if it is the latter. Revisit TYPO3 only if the organisation has already decided to introduce TYPO3 as a CMS for editorial reasons — in which case workspaces is a free, first-class feature of that decision, not an integration project.
How can I help you explore Laravel packages today?