Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Admin Ui Laravel Package

ibexa/admin-ui

Ibexa Admin UI provides the Back Office interface for Ibexa DXP, bundling the templates, assets, and configuration needed to run and extend the admin panel. Part of Ibexa DXP; install via the official guide.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this package actually is. Despite being distributed via Composer, ibexa/admin-ui is not an installable standalone library — it is the Back Office (admin) UI bundle of Ibexa DXP, a commercial enterprise CMS/DXP. The README states the constraint directly: "To use this package, install Ibexa DXP." It ships Twig templates, Symfony bundle configuration, PHP controllers/views, ES-module JavaScript (validators, pickers, menus, tooltips), CSS, and a Behat acceptance-test suite. It is the presentation layer of a platform, split into a read-only repository for dependency management.

Architecture fit. Fit is binary: it fits Ibexa DXP projects and nothing else. This is a Symfony 7.x bundle (v5.0.7 bumped symfony/* to 7.4 LTS), and it assumes DXP services — content model, field types, permissions, workflows, translations, search, and the ibexa/* core packages. There is no Laravel integration path and no meaningful way to lift the JS components into a non-Ibexa app without re-implementing the backend contracts they call. Recommendation: treat this as platform code, not application code — you consume it, you extend it at documented seams, you do not fork it.

Integration feasibility. High within a DXP engagement, low outside it. The documented extension seam is the window.ibexa.BaseFieldValidator class: subclass it, declare classInvalid, fieldSelector, and an eventsMap of {selector, eventName, callback, invalidStateSelectors, errorNodeSelectors}, implement validateInput() returning {isError, errorMessage}, and call init()/reinit(). Optional overrides (findValidationStateNodes, findErrorContainers, findExistingErrorNodes) exist for complex DOM. Beyond field validation, release notes show the vendor actively adding extension points (richtext config extensibility, content-edit translation selector) and refactoring internals (NodeFactory translation fetching, CSS Grid layout refactor). That is a healthy sign, but it also means the extension surface is a moving target.

Technical risk.

  • Licensing (primary risk). Dual-licensed under the Ibexa Business Use License (requires a paid Ibexa DXP subscription) or GPLv2 (copyleft). NOASSERTION in metadata means SCA/SBOM tooling will flag it, and legal review is mandatory before adoption. There is no permissive path here.
  • Misleading adoption signals. 7 stars and 0 dependents do not indicate abandonment — this is a split, read-only mirror of a monorepo component; consumption happens via ibexa/dxp, not direct installs. Do not use these metrics in a build-vs-buy argument.
  • Data quality. The recorded last release (2026-08-20) is forward-dated relative to normal metadata; verify against the live release feed before citing a version baseline.
  • Upgrade coupling. Customizations live in your project (Twig block overrides, YAML, JS subclasses), so DXP major upgrades are re-validation events, not drop-ins. Note the legacy ez- CSS class prefixes and markup-dependent selectors — layout refactors (e.g., the CSS Grid change in v5.0.5) can silently break overrides.
  • Opaque backlog. Changelogs reference IBX tickets on Ibexa's Atlassian/support portal; public GitHub issues are not the source of truth. Roadmap visibility comes only with a subscription.

Key questions for the vendor/account team. (1) Which license tier are we on, and does our contract cover the 4.6 and 5.0 branches we plan to run? (2) What is the support lifecycle and EOL date for our target major? (3) Are Twig block names and ez-/ibexa- class names covered by any backward-compatibility policy, or explicitly not? (4) Which extension points are declared stable vs incidental? (5) What is the vendor's patch cadence and security-response SLA?

Integration Approach

Stack fit. Symfony + Twig + PHP 8.x + ES modules + a front-end build. Back Office work is mostly the first three; the JS layer is only relevant when customizing field editing behavior. If the team is Laravel-only, this is not an integration — it is a separate platform decision with its own hiring and architecture implications.

Migration and install path. There is exactly one supported route: install/pin Ibexa DXP via Composer and let it pull ibexa/admin-ui. Do not add the package directly, do not pin it independently of the DXP metapackage, and do not vendor a fork. Keep composer.lock under review so bundle version moves are visible when the platform is upgraded.

Compatibility. Two maintained branches (4.6 and 5.0) receive parallel patch releases, including merged/backported fixes — good for teams mid-migration. Symfony 7.4 LTS alignment in 5.0.7 constrains PHP and third-party bundle versions in the host app. Validate every other custom bundle against the same Symfony minor.

Sequencing (recommended).

  1. Gate 0 — commercial/legal. Confirm subscription tier and license applicability; get written clearance on the BUL vs GPLv2 election. Nothing else starts first.
  2. Baseline platform. Stand up a clean DXP install at the target version; capture the stock Back Office as the reference implementation.
  3. Inventory customizations. Catalogue every Back Office change you require: field type validators, Twig overrides, YAML/policy config, custom field types, menu/dashboard additions, notification and translation behavior.
  4. Classify each customization as supported extension point (field validator subclass, richtext config hook, translation selector hook) vs template/DOM override (higher risk) vs core patch (reject).
  5. Build a regression suite covering the customized flows before writing much code — the vendor's Behat suite is not yours, and override breakage is the dominant failure mode.
  6. Implement behind extension points first, falling back to template overrides only where no seam exists, and annotate each override with the template path and version it targets.
  7. Establish an upgrade train (e.g., monthly patch intake, quarterly minor review, planned major migration) with changelog triage scoped to the paths you override.

Operational Impact

Maintenance. Low run-rate cost if you stay on supported extension points; the vendor ships frequently (multiple patch releases per month across both branches, spanning UX fixes, accessibility/padding issues, datepicker i18n, and JS escaping). Budget ongoing effort for changelog triage against your overrides, not for patching the package itself. Every Twig override is a small, permanent maintenance liability — keep the count small and documented.

Support. With a subscription you get the Ibexa support portal and IBX ticket workflow, which is where the changelog entries point. On GPLv2 you get community/self-support only, and this repository is not a discussion venue (7 stars, read-only mirror). Decide explicitly which model you are operating under; do not assume GitHub issues are a support channel.

Scaling. This is an admin/authoring interface — scaling is about concurrent editors, asset build size, and browser performance, not request throughput. The vendor is actively addressing front-end weight and correctness (lazy dropdown initialization, NodeFactory batching translations via a new endpoint, popup positioning, table action-cell dropdowns). Content-tree refactors indicate they are managing large-repository UX. Realistic risk is degradation on very large content trees and heavy translation sets; load-test the editorial workflow your authors actually use.

Failure modes to watch.

  • Silent override breakage after a patch — renamed Twig blocks, CSS Grid/layout refactors, changed DOM selectors invalidating eventsMap configs.
  • License drift — using BUL-covered code without an active subscription, or GPLv2 copyleft exposure in a proprietary product.
  • Fork temptation — a one-line core fix in a read-only mirror becomes an unmergeable divergence within one release cycle.
  • Version skew — pinning ibexa/admin-ui outside the DXP metapackage.
  • Support gap — GPL users discovering post-incident that there is no SLA.
  • Metadata blind spots — low stars/dependents read as "unmaintained" by stakeholders unfamiliar with split-repo patterns; pre-empt this in any governance review.

Ramp-up. A mid-level Symfony/Twig developer becomes productive on Back Office templating in roughly two to three weeks; productive on the DXP domain model (content types, field types, policies, workflows, translations, multi-language editing) takes more like two to three months. The Behat suite and the docs site are the fastest onboarding assets. Add a named owner for "Back Office customizations and upgrade validation" — this is the role that prevents 80% of the failure modes above.

Bottom line for the TPM. Low standalone score (32.8) alongside a high opportunity score (79) is the correct read: this is a capable, actively maintained, commercially backed admin UI that is not adoptable as a component and carries a hard licensing gate. Approve it only as part of an Ibexa DXP platform commitment, with legal clearance, a documented override inventory, and a funded upgrade cadence. Reject it outright as a UI source for a non-Ibexa PHP or Laravel application.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dakiquang/laravel-oauth-refresh-lock
woda/laravel-worktrees
dalefranks/ramasite
faghy/laracashbook
roundly-consulting/google-places-for-laravel
roundly-consulting/kubernetes-api-for-laravel
roundly-consulting/plausible-for-laravel
gvp/gvp-laravel-template
metasyncsite/laravel-metasync-client
roundly-consulting/onboarding-for-laravel
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
adachsoft/changelog-linter