Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Blacksmith Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

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.

When to Consider This Package

Consider it only under narrow conditions:

  • Rapid prototyping on a legacy Laravel 5.x codebase already pinned to that era, where introducing new tooling is more disruptive than reusing something that fits.
  • Throwaway demos, spikes, and internal admin tools where a rewrite is expected and speed materially outweighs maintenance.
  • As a reference implementation, not a dependency — reading its schema grammar and stub design is a fast, free shortcut for shaping our own generator.
  • To validate schema-first workflows (schema → models → migrations → controllers) before investing in a maintained generator like Laravel Blueprint or a custom Artisan command.

Look elsewhere — or pre-budget replacement — when:

  • Production use is intended. A 2016 release won't track modern Laravel/PHP, and generator bugs propagate into every generated file.
  • We're on modern Laravel (8+) or PHP 8+. Composer constraints and era-specific assumptions (service providers, Blade syntax, route conventions, Eloquent APIs) are near-certain blockers, and any patches we write we own indefinitely.
  • A maintained alternative exists. Blueprint or a small internal Artisan generator covers the same use case with a support path.
  • No named PHP/Laravel owner exists to fork, patch, and eventually retire it — or to enforce stub discipline.
  • Community validation matters. Zero dependents means no issue activity, no Stack Overflow corpus, no one else hitting the same edge cases. Every edge case is ours alone.
  • Org-wide consistency is the goal. Multiple developers generating from drifting stubs produces inconsistent code; that argues for a generator we control, not an abandoned third-party tool.

How to Pitch It (Stakeholders)

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin