mpociot/blacksmith
Blacksmith is a Laravel code generation tool that turns a simple YAML schema definition into Eloquent models, migrations, and related scaffolding, cutting boilerplate when starting new projects or adding database-backed features.
Prototype-to-demo velocity. Blacksmith is a concrete data point for "how fast can we stand up a CRUD-heavy Laravel feature?" One schema definition becomes migrations, models, controllers, routes, factories, and optionally tests. That tells us whether schema-driven scaffolding belongs in our spike/demo playbook — not in shipped product.
Build vs. buy vs. scaffold. The decision it actually informs is invest in a thin internal generator, hand-write boilerplate, or adopt an off-the-shelf scaffolder. With a November 2016 last release, ~103 stars, and zero dependents, the honest comparison is "fork an abandoned generator we'd own forever" versus "write a small Artisan command with stubs we control."
Convention standardization (the durable value). The publishable, customizable stub system maps directly to a roadmap item around enforcing team-wide conventions: consistent model style, migration naming, controller structure, validation placement. That value survives even if the package itself is rejected.
Spec-driven workflow validation. Relevant if we're evaluating schema-first / spec-driven development (OpenAPI, Prisma-style schemas, internal YAML manifests). Blacksmith is a cheap reference for the tradeoffs of declaring data models once and generating the rest — before we commit to a maintained tool.
Low-stakes internal tooling and admin panels. A legitimate justification for throwaway scaffolds, demos, and internal CRUD admin tools where speed beats longevity and a rewrite is expected.
What it does not support: standardizing the org on a code-generation platform, or any roadmap commitment where the generator is a dependency. Its age and Laravel 5.x-era assumptions carry a replacement cost that must be budgeted up front.
Gating caveat: package metadata describes Blacksmith as "the unofficial Laravel Forge API," while the repository and docs describe a schema-to-CRUD scaffolder. Different products, different risk profiles. The evidence points to the scaffolder and that's what's assessed here — but any roadmap item citing "Blacksmith" must first confirm which artifact is meant. Stale metadata is itself a trust signal.
Consider it only under narrow conditions:
Look elsewhere — or pre-budget replacement — when:
To executives: Blacksmith turns a short schema description of our data models into Laravel models, migrations, controllers, routes, and tests. It could measurably speed the earliest phase of a Laravel build — MVPs, internal admin tools, demos — by eliminating repetitive boilerplate. The catch: it was last released in 2016, has essentially zero downstream users, and won't run on modern Laravel without patches we'd own forever. Recommendation: treat it as a design reference and a possible spike tool, not a foundation. Budget the real investment as "a small internal generator or a maintained alternative" — roughly a few days of engineering — and don't let project timelines depend on the abandoned package. The concept is worth validating; this specific artifact is not. One housekeeping item first: our package metadata mislabels this as a Laravel Forge API client, so we should correct that record before anyone cites it in a roadmap.
To engineering: Treat mpociot/blacksmith as documentation, not a dependency. It's a schema-driven scaffolder with customizable stubs — last released November 2016, zero dependents, no maintenance path, and near-certainly incompatible with current PHP/Laravel and newer Eloquent features. Architecturally the blast radius is small because it's a development-time tool: it emits code we review and commit, so nothing sits in the production request path. That makes the right move clear — a small internal Artisan generator with a JSON/YAML schema input and stubs we own, roughly a few days of work, giving us full control of conventions and upgrades. Reading Blacksmith's schema format and stub design is a legitimate shortcut for that effort. If anyone does spike it, timebox it, isolate it to a sandbox app, and review every generated file line by line before merge: generation speeds the first draft, not the review. Do not adopt it as a dependency for anything shipped to customers — and confirm we're evaluating the scaffolding tool, not a similarly named Forge client, before logging the decision.
How can I help you explore Laravel packages today?