kerns/dummy
kerns/dummy is a Laravel package for quickly generating dummy data and placeholder records. It helps you seed models and populate applications with realistic sample content for testing, demos, and local development, reducing boilerplate and speeding up your workflow.
text@words:30-60 / sentences / paragraphs / title modifiers let designers and PMs specify realistic content volume for wireframes, empty states, and marketing-page mockups without waiting on copy or risking real customer strings in screenshots.dummy() helper with image and lorem generation is ~a day of engineering to hand-roll, but the maintenance tail (GD cropping, caching, PHP/Laravel version churn) is the real cost. Adopting a small, tested dev dependency is the cheaper default; building in-house is only justified if you need domain-specific fake entities (invoices, patient records), which this does not cover.fakerphp/faker in test fixtures or factories. Roadmap decision: keep it a dev-only presentation tool, and do not let it drift into test-data generation, where determinism and schema awareness matter.Consider adoption when:
@words, @sentences, @paragraphs ranges are the real value-add over pasting fixed lorem text.--dev-only dependency with a documented verification matrix (58 tests × 6 PHP/Laravel combinations) rather than an unmaintained snippet.Look elsewhere or build in-house when:
--dev packages that publish assets and config into the app skeleton, or you have a strict allowlist that a single-maintainer package will not clear without a security review.Adoption checklist for the PM: confirm the dev-only scope (composer require --dev), confirm GD is present in dev/CI images, verify the published config/assets path is excluded from production builds, and pin the major version so a future v3 cannot silently raise the PHP floor mid-sprint.
For executives (one paragraph): This is a small, free, development-only utility that generates placeholder text and images for prototypes, demos, and internal mockups. It replaces ad-hoc lorem-ipsum pasting and third-party placeholder image services with something that runs locally and offline, which removes a recurring source of friction in design reviews and demo prep and eliminates a channel through which real customer content can leak into screenshots. Cost is effectively zero: a dev dependency, no production footprint, no licensing fee, no runtime risk to shipped code. Version 2.0.0 is a hardening release — expanded automated verification across six PHP/Laravel combinations, removal of global session and memory-limit side effects, and proper caching — which materially lowers the "abandoned side-project" risk that normally argues against small dependencies.
For engineering leads: v2.0.0 is a major release with raised floors (PHP 8.3+, Laravel 12/13, GD required) and the removal of native session startup and memory-limit changes — the latter is a good change that removes global side effects, but it means anyone relying on the old behavior must adjust. It is dev-only, so blast radius is limited to local and CI environments; the practical action is a single PR updating the lockfile plus a check that dev containers are on PHP 8.3. Existing dummy(), dumb_luck(), and dumb_question() calls keep working, so migration is close to a version bump. The new counted-text syntax and title casing are additive. Verification is credible (58 tests across six environment combinations, plus fresh-install HTTP checks for Laravel 12, Laravel 13, standalone Composer, and folder-only). The open questions worth a 30-minute spike: output determinism for snapshot testing, GD availability in CI images, and keeping published assets out of the production build.
Recommendation: Adopt as a --dev dependency if you are already on PHP 8.3+/Laravel 12+; upgrade from 1.x with a low-risk version bump. Defer if you are pinned to older runtimes — nothing here is load-bearing enough to justify a platform upgrade. Keep it strictly out of production dependencies and out of customer-facing copy paths.
How can I help you explore Laravel packages today?