Hey everyone,
I just published my second Directus marketplace extension: Seed Studio.
https://www.npmjs.com/package/directus-extension-seed-studio
GitHub - khanahmad4527/directus-extension-seed-studio: Generate realistic schema-aware test data for any Directus project β in one click. Detects field types, interfaces, and relationships; produces Faker-powered realistic content. Β· GitHub
The problem
Every Directus project starts the same way β you build the schema, then you stare at empty tables. To actually verify your UI, demo a project, or test queries, you need realistic data. The usual options are:
- Hand-create 50+ records (slow, boring)
- Write a one-off seed script (becomes garbage as the schema evolves)
- Use a YAML-based seeder where you still write every value yourself
None of these is great. Seed Studio fixes this by reading your schema directly and generating realistic data automatically.
What it does
Seed Studio is a bundle extension with a module (admin UI) and an endpoint (generation engine).
Schema-aware auto-detection
Open the module, pick a collection, and Seed Studio reads every fieldβs type, interface, name, and validations to suggest a realistic generation strategy automatically:
- A field named
emailβ Faker email - A field named
first_nameβ Faker first name - A
select-dropdownwith choices β random pick from those choices - An
integerwith min/max validation β random int within range - A
directus_filesrelation β reuses an existing image from your library - An M2O relation β picks a random existing parent
- A
slugfield β URL-safe slug - 60+ field name heuristics covered out of the box
Per-field overrides
Donβt like the auto-detected strategy for a field? Click edit and pick from the full Faker method library, set a fixed value, define a sequence pattern (INV-{0000}), or use a random pick list. The Preview button shows 3 sample values before you commit.
Relationship handling (v1)
- M2O: randomly assigns existing parents so every FK is valid
directus_files: reuses images already in your file library β no orphan references- System fields (id, date_created, user_created, sort): handled automatically
Dry-run preview
Toggle dry-run ON, hit Generate, see 10 example rows without writing anything to the database. Perfect for verifying your strategy choices before generating 10,000 rows.
Generate at scale
Default 500-row batches. Server-Sent Events stream live progress to the UI as rows are written. 1,000 rows in seconds. 10,000 rows in under a minute on commodity hardware.
Wipe-and-regenerate
Iterative development workflow: tweak your schema, wipe the collection, regenerate. Protected by a typed-confirmation modal (Stripe-style) so you donβt nuke your data by accident.
Saved presets
Save your field strategies as a preset per collection. Reload it next time. Agencies running many similar projects will love this.
Audit log
Every generation run is logged to seed_studio_runs with strategies snapshot, row count, duration, and status β useful for history and reproducibility.
Install
From the Marketplace:
Settings β Marketplace β search βSeed Studioβ β Install
From npm:
npm i directus-extension-seed-studio
Compatibility
- Directus
^11.0.0 - Admin-only by design (itβs a developer tool)
Whatβs next (v2 roadmap)
- Multi-collection seed plans with full dependency graph resolution
- Image seeding via download + upload (Lorem Picsum, Pravatar, DiceBear, etc.)
- Self-referential relationship handling (tree generation for comments, categories)
- M2M junction auto-population
- Preset import/export as JSON files
Feedback wanted
This is v1 β feedback, bug reports, and feature requests are very welcome. Drop them as GitHub issues or reply here. If thereβs a specific field name or generation pattern youβd love auto-detected, let me know, and Iβll add it.
β Ahmad Khan
GitHub: GitHub - khanahmad4527/directus-extension-seed-studio: Generate realistic schema-aware test data for any Directus project β in one click. Detects field types, interfaces, and relationships; produces Faker-powered realistic content. Β· GitHub
LinkedIn: https://www.linkedin.com/in/khanahmad4527
