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

Core Laravel Package

salt/core

Core package for Salt, providing shared foundations and utilities for Laravel/PHP applications. Use it as the base layer for Salt-powered projects, with Composer-ready integration and a lightweight, framework-friendly structure.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this package actually is. The description — "core logic, templates and components used by Salt web applications" — is the key signal. This is not a general-purpose library with an external consumer base; it is the shared kernel of a single vendor's application family. It most likely contains base service providers, Blade view components, config stubs, and possibly migrations that a proprietary "Salt" application skeleton depends on. That framing should drive the entire evaluation: the correct question is not "is this a good package?" but "are we, or will we be, a Salt customer?"

What changed in 1.1.2. A single additive change: a routeGroup attribute on the MenuItem class, added explicitly to "improve downstream app menu item indicator functionality." Three things follow from that one line, and all three matter more than the feature:

  • It confirms the thesis directly. "Downstream app" is Salt's own application portfolio. The package's roadmap is driven by Salt's internal consumers, not by external users. There is no evidence of, or mechanism for, outside influence on the API.
  • It reveals an undeclared UI surface. MenuItem implies a menu/navigation component layer with rendering semantics. That is presentation-layer code that other applications' templates consume — the highest-coupling, hardest-to-fork category of shared code, and the least likely to be covered by tests we can see.
  • It is evidence of release activity, not of maintenance commitment. A patch bump with one attribute is consistent with a repository that is alive but unstaffed for external support. It softens "dormant" to "sporadic and vendor-driven," and it should not be read as a supportability signal.

Architecture fit. Poor for a greenfield or vendor-neutral Laravel codebase. A package whose value proposition is "the internals our apps share" typically assumes conventions, directory layouts, and sibling packages (salt/*) that are not published. Adopting it standalone risks dragging in an unpublished dependency graph or requiring you to reconstruct the parent skeleton. Fit is only plausible if the decision has already been made to build on the Salt platform, in which case this package is a consequence of that decision rather than a choice in itself.

Integration feasibility. Mechanically simple, organizationally hard. Composer installation is presumably trivial. Everything around it is not:

  • License is still the gating item. NOASSERTION means the license could not be mapped to a recognized SPDX identifier — custom license, missing file, or non-standard notice. A version bump does not resolve this. Until legal has read the actual LICENSE file, commercial use is an open question, and there is no community precedent to lean on.
  • Zero stars and zero dependents means no external party has ever exercised this code in public, no issue-tracker corpus exists, and no third party will notice or care if it breaks. There is no ecosystem buffer.
  • Cadence is the open question, not staleness. The prior release was January 2023; 1.1.2 arrives after a long gap. Whether that gap was an anomaly or the baseline determines the true cost of ownership. The auto-generated "Full Changelog" comparison link and a clean 1.1.1 → 1.1.2 tag suggest conventional-commit tooling and at least basic release hygiene — a modest positive, and the first hard evidence of any process discipline.
  • Framework compatibility is unverified. The 2023 baseline put it roughly two Laravel majors behind; a patch release adding an attribute is not evidence that illuminate/* and PHP 8.3/8.4 constraints were modernized. Check composer.json before anything else.

Technical risk. High, and concentrated in four places:

  1. No committed maintenance. The package is vendor-internal and externally unowned. A recent release reduces the probability of immediate decay but does not create an obligation to us.
  2. Transitive exposure. A dormant "core" package often pins dormant dependencies. One stale package can anchor your entire composer.lock and block framework upgrades across the estate.
  3. Deep coupling, low observability. Core-layer packages touch service container bootstrapping, view rendering, and sometimes migrations. The MenuItem change shows the package owns presentation behavior consumed by other apps' templates — failures surface in rendered output, not at install time.
  4. Unannounced API surface growth. routeGroup is additive and low-risk in itself, but it demonstrates that the public surface of shared components expands without a published deprecation policy, changelog discipline beyond auto-generated notes, or API documentation.

Key questions to resolve before any technical work.

  • Who is "Salt," and do we have (or are we considering) a commercial relationship with them? Is this package distributed as part of a paid platform?
  • What does the actual LICENSE file say, and has legal cleared it?
  • Is salt/core the current artifact, or has it been superseded by a renamed/private package? Check the salthq org for successors and siblings.
  • Does it require unpublished sibling packages? Inspect composer.json require and repositories blocks.
  • What PHP and Laravel versions are declared in composer.json, and did 1.1.2 update them? Is there CI proving the declared matrix?
  • What is the actual tag-to-tag cadence across the full history, and is every merge released? One patch after a two-year gap is not a cadence; graph it.
  • Where does MenuItem live, what renders it, and is routeGroup documented anywhere? With no docs, the API contract is the source. Read it before building on it.
  • Does it auto-register service providers, publish config, or ship migrations that would collide with our application?
  • Is there a changelog, semver commitment, or versioning discipline beyond auto-generated notes? Is there any deprecation policy?
  • Has anyone audited it for security issues, and is there a disclosure channel?

Integration Approach

Stack fit. Only pursue if the answer to the "are we a Salt customer" question is yes. In that case this package is not optional — it is part of the platform contract, and the work shifts from "should we adopt" to "how do we contain it." If the answer is no, the recommendation is to stop here; the effort is better spent on maintained alternatives or first-party code.

Migration path (conditional on a positive fit decision). There is no meaningful migration path from a mainstream Laravel baseline into this package, because it is an internal kernel rather than a feature library. The realistic paths are:

  • Adopt as-is, if a Salt skeleton app is the intended foundation and we can absorb the coupling.
  • Fork and vendor, taking a pinned copy into a private repository or private Composer registry. This remains the most likely outcome for a dependency you cannot get a support commitment on, and it should be costed as "we now own this code."
  • Extract the useful parts, lifting specific components or templates into first-party code and discarding the rest. Cheapest long-term option if the package's surface area turns out to be small — and the MenuItem change is a useful probe of how much surface area that UI layer really represents.

Compatibility work. Pin to an exact version — 1.1.2 if the compatibility spike passes — and commit composer.lock. Diff its illuminate/* and php constraints against our target framework version before writing application code; do not assume the patch release modernized them. Run composer why-not to detect conflicts early. Verify auto-discovery doesn't register providers we don't want. Read the MenuItem class and its render path in vendor/ to understand the new routeGroup attribute's effect on any menu markup we produce.

Sequencing.

  1. License clearance and confirmation of vendor relationship (blocks everything else).
  2. Read composer.json — dependency graph, framework constraints, autoload shape — plus the tag history to establish real cadence. This is an hour of work and answers most of the technical questions above.
  3. Compatibility spike in a throwaway Laravel app at our target version, against 1.1.2: install, boot, render one view including a MenuItem, run the test suite if one exists.
  4. Go/no-go on adopt vs. fork vs. extract, with an ownership assignment.
  5. If adopt or fork: designate an internal maintainer before the first merge, and mirror the source so it survives repo deletion upstream.

Operational Impact

Maintenance. Assume we own it. The correct reading of 1.1.2 is not "the vendor is maintaining this for us" but "the vendor is maintaining this for itself, on its own schedule." Realistic steady-state cost is a named maintainer tracking Laravel release cadence, plus a compatibility patch each framework major — and, given the MenuItem change, occasional reconciliation of shared UI behavior. Budget this explicitly. The mitigating factor is scope: "templates and components" suggests a bounded surface area, so a fork may be genuinely cheap to carry.

Support. No community, no Stack Overflow corpus, no third-party tutorials, no dependents to observe, and no documentation for the newly added attribute. Support exists only if there is a commercial agreement with Salt. Absent that, the effective support channel is the person who originally picked the package.

Scaling. The package is unlikely to be the scaling constraint — Blade templates and view components are not throughput bottlenecks in a well-built Laravel app. The scaling risk is organizational: the more application surface it underpins, the harder the eventual exit becomes. The 1.1.2 change makes this concrete: menu rendering is user-visible chrome present in every application, so a shared component defect has estate-wide blast radius. Treat depth of dependency as the risk metric, not request volume.

Failure modes to plan for.

  • A Laravel major upgrade is blocked because the package's constraints can't be satisfied — and no upstream fix is coming.
  • A security advisory lands in the package or a pinned transitive dependency with no patch path; the only remedy is an emergency fork.
  • Silent behavior change in shared templates affects multiple applications at once — routeGroup on MenuItem shows the mechanism by which this happens.
  • Additive API changes land with no deprecation notice and no docs, so our fork diverges the moment we skip a release.
  • License ambiguity surfaces during due diligence (funding round, acquisition, enterprise procurement) and forces a scramble or a rip-out.
  • Institutional knowledge loss if the original integrator leaves.

Ramp-up. Expect high cost per new engineer and near-zero external learning resources. No documentation, no examples, no community — the routeGroup attribute itself ships with a one-line changelog entry and no usage guidance. Onboarding must run through internal documentation you write yourself, plus a walkthrough of the source in vendor/. Add a half-day to any engineer's onboarding if they'll touch this layer, and require the maintainer to write a short "what this does and why we depend on it" note within the first month of adoption.

Recommendation. Unchanged in substance. Do not adopt salt/core as a foundational dependency unless we are already contractually committed to the Salt platform. Release 1.1.2 is mildly positive — it demonstrates the repository is alive and that releases are tagged and changelogged — but it is one additive attribute on a UI class, driven by Salt's own downstream needs, with the license question, adoption gap, and support commitment all still open. The cost of ownership lands entirely on us with no corresponding ecosystem benefit. If a Salt relationship exists, proceed — but treat the package as vendored third-party code with a named internal owner, a mirrored source, and a pinned version. If no such relationship exists, close this out and redirect the evaluation effort.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console