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

Laravel Core Laravel Package

coderstm/laravel-core

Core foundation package for Laravel applications by Coderstm, bundling shared helpers, base classes, traits, and common utilities. Provides reusable scaffolding so packages and apps share consistent configuration, models, and service providers.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is not a utility library — it is an application core. The surface area (61 Eloquent models, 39 traits, 11 payment processors, 60+ report types, dual Sanctum guards, cart/checkout, wallet, RBAC, CMS, multi-currency) describes a pre-built SaaS/e-commerce backend that a host app skins and extends. Fit is therefore binary in practice:

  • Strong fit if the roadmap is "Laravel monolith selling subscriptions and/or physical or digital goods," the team is already fluent in Laravel service providers, facades, traits, and Eloquent, and the differentiator is domain/brand rather than infrastructure.
  • Poor fit if the target is headless, API-first with separate services, multi-tenant by design (tenancy is not claimed anywhere in the provided material), event-sourced, or non-Laravel-adjacent. Retrofitting this into a polyglot or microservice estate means carrying a large Laravel island with its own scheduler, queue, session, and webhook ingress.

The architecture itself is conventional and readable for a Laravel team: a static entry facade (Coderstm), four service providers, request-scoped facades (Blog, Shop, Currency), interface-driven payments (PaymentProcessorInterface + AbstractPaymentProcessor), and event-driven side effects. The interface-first payment layer and the useUserModel() / ignoreRoutes() / ignoreMigrations() / withoutCart() toggles are the two genuinely encouraging signals — they indicate the author designed for embedding rather than only for a single downstream product.

Integration feasibility. Composer-installable with a publishable single config file (config/coderstm.php). The extension seams are explicit: model binding instead of class references, processor registration for new gateways, report registration in a map, feature gating via Feature/Plan records. Adoption can be partial — the opt-out toggles let a team disable route registration, migrations, or cart wholesale, which is the primary de-risking lever and should be the basis of any proof of concept. The counterweight is schema ownership: 61 models implies the package owns a substantial migration set and table namespace, and ConfigLoader/AppSetting persists runtime configuration in the database, which introduces cache-invalidation and environment-drift concerns that must be understood before go-live.

Technical risk. Rated high, driven by evidence quality rather than code quality:

Risk Severity Basis
Vendor concentration High 0 stars, 0 dependents, single publishing org; no visible community or third-party validation
Release provenance High Latest release dated 2026-09-24 — verify tag, changelog, and whether this is a real cut or a metadata artifact
Breadth-over-depth Medium-High 20+ gateway integrations, 60+ reports, and a wallet system are individually hard to get right; no test-coverage or CI evidence provided
Payments/compliance surface High Card flows, refunds, subscriptions, and provider webhooks pull the team into PCI scope and reconciliation obligations regardless of who wrote the code
Upgrade drift Medium-High Deep coupling to Laravel, Sanctum, and Cashier majors; a lagging package pins the whole app's framework version
Documentation depth Medium The supplied "documentation" is an agent skill file with search-docs pointers; useful for AI-assisted onboarding, not a substitute for API reference, upgrade guides, or a support contract

Key questions for the vendor or code audit.

  1. What is the supported Laravel / PHP / Cashier / Sanctum compatibility matrix, and what is the historical turnaround for new Laravel majors?
  2. Are migrations published or auto-loaded, and what is the table prefix or namespace strategy against an existing users/orders schema?
  3. Is there a written policy on breaking changes and does the package follow semver? What does the upgrade path between minors look like?
  4. Who maintains it, what is the bus factor, and is a support or escrow arrangement available? Is there a public issue tracker with response history?
  5. What is the automated test suite, coverage, and CI status? Are payment processors tested against sandbox or recorded fixtures?
  6. Are webhook handlers idempotent and replay-protected, and how are charge-succeeded/refund-failed partial states reconciled?
  7. Does ConfigLoader cache DB-stored settings, and how are secrets (payment keys, mail credentials) protected and invalidated?
  8. Is the data model single-tenant, and if multi-tenant, what is the isolation boundary?
  9. What is the license position on the "enterprise-grade" claims versus the MIT grant — i.e., is anything held back commercially?
  10. Do the scheduled commands (subscriptions:renew, update:exchange-rates, process:abandoned-checkouts) take locks and degrade safely under overlap?

Verdict. Not approvable on the current evidence for a revenue-critical system. Approvable as a time-boxed evaluation against a greenfield prototype, with gating criteria: a passing integration spike, an audited migration/auth collision story, verified test coverage and release provenance, and a named internal owner.

Integration Approach

Stack fit. Target profile: Laravel 11/12-era application, PHP 8.2+, MySQL/PostgreSQL, Redis-backed queue and cache, Sanctum sessions/tokens, Laravel Cashier for Stripe billing, a scheduler entrypoint (routes/console.php or equivalent), and at least one non-HTTP worker for webhooks and subscription jobs. Confirm the exact constraint set from composer.json before committing — the compatibility matrix is the single highest-leverage unknown.

Migration path.

  • Greenfield (recommended). Stand up a new Laravel app, install the package, run php artisan install, and treat the package as the baseline. Publish config and migrations immediately so the schema lives in your repository under version control rather than being implicitly owned by the vendor. Bind your own models via Coderstm::useUserModel() from day one even if you have no customisations — it converts a future refactor into a no-op.
  • Brownfield (caution). Expect collisions on the users table, auth route prefixes (/auth/{guard?}/*), Order/Product/Subscription naming, and the admins/users guard split. Do not attempt to graft this onto an existing authenticated application in one step. If brownfield is mandatory, isolate to one bounded domain (e.g., subscriptions only) with ignoreRoutes() + ignoreMigrations() for everything else, and front it behind your own controllers.
  • Strangler (enterprise). Run the package behind an internal API boundary in its own deployable, with the main application as a client. Preserves optionality and contains the blast radius, at the cost of duplicated auth and a second operational surface.

Compatibility. Verify in this order: PHP → Laravel → Cashier/Stripe → Sanctum → database driver → queue/cache driver. Cashier is the usual hard pin because it tracks Laravel minors aggressively; if the package lags Cashier, billing upgrades stall. Also confirm the front-end assumption implied by /user/* (SPA) and the theme/license config sections — if the package ships a bundled UI, decide explicitly whether you adopt, replace, or disable it.

Sequencing. Five phases, each independently valuable and independently abandonable:

  1. Spike (1–2 weeks). Fresh app, install, exercise signup/login on both guards, one subscription via Cashier sandbox, one webhook round-trip. Output: go/no-go memo and a list of every override you needed.
  2. Foundations (2–3 weeks). Publish and own config + migrations; wire model bindings; stand up RBAC (Module → Permission → Group); replace /auth/* routes with your own if the shape does not fit; establish the scheduler and queue topology.
  3. Billing (3–5 weeks). Plans, features, coupons, promo validation, the four subscription lifecycle commands, grace/cancel/expiry state machine, and reconciliation reporting. This phase carries the audit weight — do not compress it.
  4. Commerce (optional, 3–6 weeks). Cart, checkout, abandoned-checkout job, and only the payment processors actually on the roadmap. Registering a processor you will never enable is pure attack surface.
  5. Content and analytics (2–3 weeks). Blog/CMS and a curated subset of reports. Treat the 60+ report catalogue as a menu, not a deliverable — each one is query load and a correctness claim you own in front of stakeholders.

Gate each phase on an explicit exit criterion; phase 3 failing its criteria is a legitimate stop point with the earlier work still intact.

Operational Impact

Maintenance. Assume you own it. With zero dependents and no visible maintainer community, the realistic posture is "MIT source we vendor and patch," not "dependency we track." Budget one engineer at roughly 20–30% for the first two quarters tapering to 10% steady state, plus an explicit fork policy: pin to a tagged commit, maintain a patch branch, and review upstream monthly. Every Laravel major is a scheduled project, not a routine bump. Maintain a written inventory of local overrides so a future upgrade is a checklist rather than archaeology.

Support. No commercial support is evidenced. Escalation for a payment or subscription defect therefore terminates internally. Require, before production: a named owning team, an on-call rotation covering webhook and scheduler failures, a documented runbook for the ten most likely incidents, and — if the vendor is reachable — a written support agreement or at minimum an escrow/roadmap commitment. If neither is obtainable, record that as accepted risk with a named signer.

Scaling. Four pressure points, in order:

  • Webhook ingress. Bursty, externally paced, and unforgiving of cold starts. Isolate on its own queue and worker pool; do not share with report generation.
  • Scheduler. subscriptions:renew, reset:subscriptions-usages, update:exchange-rates, process:abandoned-checkouts, cleanup:expired-reports. These must be lock-protected and idempotent, particularly under multi-instance deploys where naive cron duplication double-charges customers.
  • Reporting. 60+ report types over transactional tables is a read-amplification problem. Serve from replicas or pre-aggregated tables, cap exports, and enable only the reports with named consumers.
  • Currency. Currency is request-scoped with a cached rate table; stale or partially refreshed rates silently misprice. Alert on rate age.

Failure modes to instrument and alert on.

  • Webhook lost or duplicated → subscription active without payment, or double entitlement. Needs idempotency keys and a reconciliation sweep.
  • Processor partial failure → charge succeeded, refund or subscription write failed. Needs a compensating-transaction path and a daily drift report against the provider.
  • Scheduler overlap or silent skip → mass expiry or mass non-renewal discovered by customers. Needs a heartbeat plus a "subscriptions renewed in last 24h" canary.
  • DB-backed config desync (ConfigLoader/AppSetting) → different behaviour per node after deploy or cache flush. Needs cache-warm on deploy and config-drift logging.
  • Migration collision on upgrade → deploy-time DDL against a live tenant. Needs a staging rehearsal gate and forward-only migrations.
  • Guard confusion in custom code → privilege escalation between users and admins. Enforce the user()/is_admin()/guard() helpers in code review; forbid auth()->user() in application code.
  • Stale exchange rates → pricing and reporting divergence.

Ramp-up. The provided agent skill file is a real accelerant — an AI-assisted workflow that already knows the facades, commands, and workflow checklists will shorten onboarding meaningfully. But the human learning curve is still steep: 61 models and 39 traits is a large implicit mental model, and the highest-risk knowledge (subscription state machine, processor normalisation, RBAC resolution) is precisely where documentation is thinnest. Plan two to three weeks for a senior Laravel engineer to become productive on billing, add a half-day knowledge-transfer per phase, and require every discovered behaviour to be written into the internal runbook rather than left in one person's head.

Bottom line for the TPM. The package is a credible accelerator for a greenfield Laravel SaaS and a poor bet as an unbudgeted dependency inside an existing system. Proceed only with a funded integration spike, a vendored-fork maintenance model, a phased adoption that can stop after foundations or billing, and an explicit, signed acceptance of the single-maintainer and payments-compliance risks.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource