ttbooking/baum
Baum is a Laravel package that brings Nested Set trees to Eloquent models, making it easy to store, query, and manipulate hierarchical data such as categories or menus. It provides efficient ancestor and descendant lookups plus simple node movement.
TTBooking vendor name, removes the Baum artisan command, and stops raising events during rebuilds. Any team already on 1.4.x must budget a migration sprint; any team starting fresh should adopt v2.0.0 directly rather than build against the old namespace.Adopt when:
Look elsewhere when:
parent_id adjacency column with a recursive CTE is less machinery and less dependency risk.ltree) and want to keep the logic in the database.composer update. The namespace change touches every model, trait import, config reference, and any code referencing the removed Baum command (including deployment scripts and CI). Verify whether your app relies on events firing during a rebuild — that behavior is now gone.To executives: This is a no-cost, open-source library that lets us ship hierarchical features — category trees, navigation, org structures — without building and maintaining that logic ourselves. It's a small, community-maintained dependency, so the real cost isn't licensing; it's the upgrade work when the maintainer ships a breaking release. v2.0.0 is exactly that: a breaking release requiring a deliberate migration. Recommendation is to adopt v2.0.0 for new work, and to schedule (not absorb) the upgrade for anything on 1.4.x.
To engineering: v2.0.0 is a major version with three changes that will bite: the root namespace now includes the TTBooking vendor segment (every import and reference must move), the Baum artisan command is deleted (audit scripts, CI, and runbooks), and events are no longer raised during rebuilds (any listener doing indexing, cache invalidation, or auditing will silently stop firing — verify this explicitly). On the positive side, the package now has static analysis and a modern Testbench test suite, which is a meaningful signal that it's actively maintained. Pin the exact version in composer.json, add a smoke test that builds and moves a subtree, and if we're on 1.4.x, plan the migration as its own ticket with a rollback path rather than folding it into feature work.
How can I help you explore Laravel packages today?