Craft's defaults are great, but there's nothing built in for generating realistic demo content the way Laravel developers are used to with factories and seeders. Sprout brings that exact workflow to Craft.
Write a factory describing one element:
class BlogPostFactory extends Factory
{
public function elementClass(): string { return Entry::class; }
public function definition(): array
{
return [
'sectionId' => $this->sectionId('blog'),
'title' => $this->faker->sentence(6),
'body' => $this->faker->paragraphs(3, true),
];
}
}
Then from the CLI:
php craft sprout/seed/make-factory BlogPost
php craft sprout/seed/make-seeder BlogPost
php craft sprout/seed/run --count=20
php craft sprout/seed/clean
Every element seed/run creates gets tracked. seed/clean deletes exactly that, and nothing else, after asking for confirmation. A batch that fails partway through automatically rolls itself back, so a broken factory never leaves orphaned content behind.
Built with FakerPHP under the hood, with resolver helpers (sectionId(), entryTypeId(), randomAssetId(), randomEntryId()) for the lookups every factory needs.
Requires Craft CMS 5.0+.
Standard
Plus $9/year after one year.
To install this plugin, copy the command above to your terminal.
This plugin doesn't have any reviews.


