bebo925/tall
TALL Stack preset for Laravel with Blade components for buttons, inputs, panels, tables, modals, messages, and page headings. Install via Composer and run tall:install to scaffold JS deps, Tailwind, Mix, and app layout.
<x-tall::button>, <x-tall::input.*>, <x-tall::panel>, <x-tall::table>, <x-tall::page-heading>, <x-tall::messages>, <x-tall::dropdown>, <x-tall::multiple-select>) for Laravel + Livewire + Alpine + Tailwind. For a PM, that maps to one concrete decision: whether admin panels, settings screens, and CRUD workflows ship with a small team in weeks rather than quarters.<x-tall::input> semantics, replacement is a migration project, not a refactor. Treat adoption as a one-way-ish door and size it accordingly.session()->flash('message', [...]) and Livewire browser events, plus the wire-elements/modal confirmation dialog, define an opinionated UX for confirmations and alerts. That's a product decision about tone and safety (destructive-action confirmation, undo vs. confirm), not merely a technical one — make it deliberately.Consider it when:
webpack.mix.js, tailwind.config.js, and app.blade.php.Look elsewhere when:
style="primary", fixed type variants) with no documented theming hook.error="property_name" display.Gating recommendation: do not adopt org-wide on the strength of the README. Run a two-week spike on one non-critical internal screen, then decide. Set an explicit exit criterion — if the team hits customization limits twice, stop and build a thin in-house component layer instead.
Executives (one line): "A free, MIT-licensed starter kit that gives our Laravel admin screens pre-built buttons, forms, tables, and modals so we ship internal tools faster without hiring frontend specialists — the tradeoff is a generic look and a single-maintainer dependency we'd need to own if it sticks."
Executives (fuller framing): Frame it as time-to-market on non-differentiating surfaces. The value is not the components themselves but the avoided cost of rebuilding the same input, validation-display, notification, and confirmation-dialog patterns on every screen. Be explicit that the savings are real only for internal and form-heavy tooling; applied to a customer-facing product, the "savings" convert into design debt and a later restyle. Flag the risk honestly in the same breath: one maintainer, one star, no dependents — so if it becomes load-bearing, budget a fork-and-own line item. That converts an unknown into a priced option, which is the decision executives actually need to make.
Engineering: Position it as a convention, not a framework. php artisan tall:install scaffolds JS deps, Tailwind config, build tooling, and an app.blade.php layout, then you compose Blade components and publish views via --tag="tall-views" to override. Selling points: zero-config start, Tailwind-native, Vite hot reload after setting the host variable. Be candid about the costs: it will touch tailwind.config.js and webpack.mix.js, so land it on a clean branch with a rollback; the modal path requires wire-elements/modal and therefore Livewire; component styling is largely static, so plan for published-view overrides rather than a token system. Ask for a one-screen spike with a written verdict on customization limits before any broad commitment.
Design: It supplies pre-styled Tailwind primitives aligned with a utility-first approach, which buys consistency cheaply. The honest constraint: no design tokens, limited prop surface, and a fixed default aesthetic. Ask design for a one-hour audit of the defaults against brand guidelines, and decide in advance whether the answer is "publish and override the views" or "use it as reference only, build our own." Note that accessibility has not been verified — treat that as an open question with a defined owner before this reaches any external audience.
How can I help you explore Laravel packages today?