- What is TomatoPHP used for?
- TomatoPHP is a modular Laravel admin panel built on Filament, giving you a ready-made dashboard with users, roles and permissions, settings, menus, media manager, and a CRUD generator. It is best suited to greenfield, internal-facing, CRUD-dominant admin surfaces on a Filament stack. It is not a routine fit for existing Laravel apps, API-first services, or non-Filament UIs.
- What Laravel and Filament versions does tomatophp/tomato support?
- The available context places the last release, from April 2024, in the Laravel 10/11 and Filament v3 era. A layer this deep into Filament and Laravel pins specific majors, and both frameworks ship breaking majors on roughly annual cadences. Check the actual release and README for current constraints, and treat the upgrade path to newer Laravel or Filament majors as a planning question rather than a routine Composer install.
- How do I install tomatophp/tomato?
- The integration is described as mechanically low-friction: a Composer install, publishing configuration, and scaffolding. The context does not provide exact commands, so use the package README for current installation steps. The bigger constraint is not installation effort but version coupling to your Laravel and Filament versions.
- Is TomatoPHP good for existing Laravel applications?
- The assessment says to reject it fast for existing Laravel applications. TomatoPHP is an opinionated application scaffold with a module system, directory conventions, and a broad helper surface, so adopting it into an existing app means inheriting those conventions. Its value is concentrated in greenfield, internal-facing, CRUD-dominant admin surfaces on Filament.
- Does TomatoPHP work for API-first services or non-Filament UIs?
- The context explicitly places API-first services and non-Filament UIs outside the recommended envelope. Those projects gain nothing from the CRUD generators while inheriting the module system, directory conventions, and helper surface. Evaluate a narrower alternative or build the equivalent scaffolding yourself.
- What are the risks of using TomatoPHP's CRUD generator?
- Generated CRUD is a snapshot of the generator's opinions, not a continuously maintained abstraction. Once output is hand-edited, regeneration either overwrites work or stops happening and the generator becomes archaeology. That constrains how you staff and iterate, so treat generated code as disposable scaffolding and plan ownership accordingly.
- Is TomatoPHP actively maintained?
- The assessment describes it as effectively single-maintainer, with 162 stars, zero recorded dependents, and no release in roughly a year at the time of evaluation. That is a staleness signal against a one-year framework cadence, so treat it as schedule risk to your next platform upgrade. MIT licensing means the failure mode is fork and maintain rather than being locked out, but that is a real staffing commitment. Check current commit cadence, issue response time, and open-PR age before committing.
- Can I use TomatoPHP in production?
- It can be plausible in the narrow case of a greenfield, internal-facing, CRUD-dominant Filament admin app where the first weeks of scaffolding matter. The structural risks are single-maintainer bus factor, version coupling to Laravel and Filament majors, zero downstream dependents to absorb upgrade pain, and a helper-heavy global surface. Require production references beyond the author's own projects and decide who owns a fork if upstream stalls. A pilot on your exact Laravel and Filament versions is more useful than a README claim.
- What are alternatives to TomatoPHP?
- The provided context does not name specific alternative packages. The realistic comparison is building the equivalent admin scaffolding yourself on Filament or adopting only the generator subset and keeping runtime helper coupling shallow. Evaluate that build cost against the maintenance tax of the module system and helper surface.
- Can I adopt only the CRUD generator without the runtime modules and helpers?
- The assessment recommends considering exactly that to keep coupling shallow if the value is one-time, disposable scaffolding. The generator's value is one-time and disposable, while runtime modules and helpers create ongoing lock-in, so separating them limits dependency risk. Verify in the package whether generator output can be used without pulling in the runtime helper dependency. If that boundary is unclear, treat full adoption as the real commitment.