blinq/synth
Synth is a Laravel package for generating realistic synthetic data. Define your data shape once, then synthesize records for seeding, testing, and demos, with support for relationships, custom generators, and repeatable results.
Consider it when all of the following hold:
Look elsewhere when:
Factories + Faker + a small set of hand-authored "hero" fixtures already clear the realism bar — that is the cheapest option and is already maintained.For executives: This is a low-cost, MIT-licensed Laravel utility that generates realistic synthetic data, so we can demo and test the product with convincing data without copying production customer records into staging. The business case is speed — faster, more frequent stakeholder and customer demos, and a defensible "no real customer data outside production" position on security reviews. The recommendation is a timeboxed 1–3 day evaluation, not adoption: the package has no downstream users in the ecosystem and has not shipped a release since mid-2023, so we will prove it out behind our own abstraction and keep native Laravel factories as the fallback. Expected spend is measured in engineer-days; the downside if it is abandoned is a revert to tooling we already have.
For engineering: Treat this as a throwaway-able dev dependency. Scope a spike that (1) generates data across two or three of our most relational models, (2) confirms nothing leaves the environment and that the mechanism is auditable, (3) checks compatibility with our current Laravel/PHP versions since the last release predates our upgrade, and (4) demonstrates the fallback: the same fixtures expressible as factories. Contain it behind an internal seeder interface so removal is a one-file change, keep it out of production dependency graphs and CI determinism paths, and document the pin. If the spike passes, we get faster demo environments for roughly a day of work; if not, we lose the day and keep factories — and we have a documented reason not to revisit it.
How can I help you explore Laravel packages today?