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.
Blinq Synth is a synthetic (fake) data generator for Laravel. Instead of hand-wiring Faker calls into every factory, it inspects your schema and/or existing rows and produces plausible replacements — the practical use case is "I need realistic-looking users, orders, and payments for local dev or staging without copying production PII."
Minimal steps:
composer require blinq/synth --dev — almost always a dev dependency, since you don't want a synthesizer running in prod.php artisan vendor:publish --tag=synth-config, then read config/synth.php. This is where you set table allow-lists and per-column overrides.php artisan synth:list or synth:tables) to confirm it sees your tables and infers column types correctly on your driver.users and orders, generate ~100 rows into your local DB, and check FK relationships survived.Before you commit, check the README's Laravel support matrix — the last release was July 2023 (likely Laravel 9/10), so verify it boots on your version.
email, password, json, enum, money-as-integer, timestamps with business meaning. The synthesizer will happily guess wrong.DatabaseSeeder. Call a dedicated SynthSeedUsers::class from DatabaseSeeder, guarded behind a --class flag or app()->isLocal() so CI and prod never trigger it.enum, json, uuid, and decimal columns are read very differently across MySQL / Postgres / SQLite. Smoke-test every column type on your actual target.DB::transaction() and rollBack() to inspect output locally. If the package exposes a dry-run/--pretend flag, use it — otherwise the transaction trick is the fastest loop.How can I help you explore Laravel packages today?