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

Addblock Extension Laravel Package

visiosoft/addblock-extension

Visiosoft AddBlock extension for Laravel and the Streams Platform, adding block management to PyroCMS so you can create, organize, and reuse content blocks across pages. A lightweight addon for extending module functionality.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. visiosoft/addblock-extension is not a general-purpose Laravel library — it is a module for the Streams Platform (visiosoft/streams-platform), the Laravel-based CMS layer behind PyroCMS 3.x and OpenClassify. Its purpose is narrow: it exposes a UI affordance ("Add Block") for inserting reusable content blocks into page/module-managed content. Architectural fit is therefore essentially binary: it is a good fit only if the host application is already a Streams Platform app (typically OpenClassify or a Pyro-derived build) and already runs the Pages module. In any conventional Laravel application the package is inert — it registers field types, admin views, and Streams hooks that have no meaning outside that runtime.

Integration feasibility. Installed via Composer plus the Streams extension lifecycle (composer require → php artisan addon:install visiosoft.extension.addblock-extension → php artisan streams:compile). That is a moderate, non-standard integration path compared to service-provider auto-discovery: it mutates the Streams registry, runs migrations, and compiles a cache that must be rebuilt on deploy. Feasible in a day for someone who knows Streams; opaque for anyone who does not. The real gate is version alignment with streams-platform, which is the package's dominant transitive constraint.

Technical risk. High, and mostly signal-driven rather than code-driven:

  • Zero stars, zero dependents, zero downstream users. No community validation, no bug discovery by third parties, no StackOverflow footprint. Every defect will be found by our own team.
  • Single-vendor provenance. Maintained in the OpenClassify orbit (Visiosoft/OpenClassify). Its roadmap is subordinate to that product's needs; it can go dormant without notice.
  • Release lag. Last tagged release 2023-11-11 places it before Laravel 11 and before several Streams Platform minor cycles. Untested against modern Laravel/PHP; the constraint set may hard-block a current app.
  • Admin-surface blast radius. Anything that renders inside the CMS page editor touches the highest-privilege UI in the app. A broken release degrades content authoring, not just a peripheral feature.
  • Small code footprint is a mitigant. Extensions of this shape are typically a few field types, views, and a migration — fork-and-vendor is a realistic escape hatch under MIT.

Key questions.

  1. Does our target app actually run Streams Platform, and at which streams-platform version?
  2. What does composer.json pin — Laravel, PHP, streams-platform? Does that solve against our current lockfile without --ignore-platform-reqs?
  3. Is the block content stored inline in the page body, or as separate records with references? This determines deletion semantics and migration risk.
  4. Who owns the fork if the upstream goes quiet — and do we have the Streams expertise to maintain it?
  5. Is "Add Block" a required user-facing capability, or can it be satisfied by an existing field type already in the distribution?

Integration Approach

Stack fit. Assumes Laravel + Streams Platform + the Pages module, PHP 8.x, and the Streams admin asset pipeline. Confirm the app is a Streams distribution (look for streams-platform in composer.json, a core.php/addons manifest, and php artisan streams:* commands). If that check fails, stop — there is no adaptation path.

Migration path. Treat this as a vendored dependency, not a public package:

  1. Spike on a throwaway branch pinned to an exact tagged commit.
  2. If the Composer constraint conflicts, fork to an internal namespace, relax the constraint, and run the extension's own test/QA surface (there likely is none — budget for manual verification).
  3. Deploy via the standard Streams lifecycle; ensure streams:compile and asset publishing are in the deploy script, not run by hand.
  4. Verify the authoring flow end to end: create page → add block → save → re-edit → publish → render, plus delete-page cleanup.

Compatibility. Build an explicit matrix of Laravel / PHP / streams-platform / extension version and test the deployment on a staging clone of production data. Pay particular attention to the admin JS bundle — Streams extensions that inject editor UI are the most fragile part across upgrades, and are the most likely cause of a silent regression.

Sequencing. (1) Confirm Streams dependency and business need. (2) Composer resolution and fork decision. (3) Staging install + authoring walkthrough. (4) Content round-trip and deletion semantics test. (5) Production rollout behind an admin-only feature flag so authoring regressions can be disabled without a deploy. Do not sequence this ahead of a platform upgrade; do it in a quiet window, because the compile step can surface unrelated Streams cache issues.

Operational Impact

Maintenance. Effectively zero upstream maintenance guarantee. Plan for self-maintenance: an owner, a fork in our VCS, and a documented patch process. Budget is small in absolute terms (this is a thin extension) but the expertise cost — Streams Platform fluency — is the real constraint and is scarce.

Support. No SLA, no vendor contract, no issue-triage expectation on a repo with no stars. Internal escalation only. MIT license means we can fix anything; it does not mean anyone will.

Scaling. Runtime cost is negligible — it renders authoring UI and resolves block content at page render, so it adds nothing meaningful to request latency at typical CMS traffic. The scaling concern is content scaling: if blocks are embedded inline in page bodies, page size grows, full-text search and cache keys get heavier, and cache invalidation granularity worsens (editing one block may invalidate every page that embeds it). Confirm the storage model before assuming horizontal scaling is unaffected.

Failure modes.

  • Silent compile failure — streams:compile errors during deploy leave the admin without the extension or, worse, with a stale cache.
  • Editor regression — a Streams or asset-pipeline upgrade breaks the Add Block modal with no error surfaced server-side.
  • Orphaned references — deleting a block that pages still reference; depends on referential integrity the extension may not enforce.
  • Migration drift — extension migrations applied out of order across environments, leaving schema divergence that only appears on a fresh install.
  • Abandonment — no upstream fix for a future Laravel/PHP incompatibility; the fork becomes the product.

Ramp-up. Low for an end user (one button in the page editor). Moderate-to-high for an engineer: Streams Platform concepts (addons, extensions, field types, compile lifecycle) are idiosyncratic and thinly documented relative to core Laravel. Assume 2–3 days for a strong Laravel engineer to become productive in this codebase, plus the initial spike. Given the zero-signal risk profile, the honest recommendation is: adopt only if "Add Block" is a genuinely required capability and Streams is already the platform — otherwise satisfy the need with an existing field type or a small in-house extension you control from day one.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core