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

Larecipe Rtl Laravel Package

binarytorch/larecipe-rtl

Adds right-to-left support to LaRecipe documentation pages, adjusting layout, typography and navigation for Arabic, Hebrew and other RTL languages. A small companion package for Laravel projects already publishing docs with LaRecipe.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit is unchanged. LaRecipe compiles Markdown into a Vue-driven SPA served from inside a Laravel app; RTL is a presentation-layer concern (dir="rtl", mirrored layout, Arabic/Hebrew/Persian font stacks) and belongs in a thin service provider that publishes a stylesheet and flips a config flag. A v1.0.0 tag does not change what the package has to be, so the architectural judgment stands: this is small, low-coupling code, and the correct question is whether to own it or depend on it, not whether it fits.

What changes is the project-state premise, and it changes in a way that is mostly uninformative. The prior assessment characterized the package as archived with an April 2019 last release and no path to upstream fixes. A v1.0.0 publication falsifies the narrow claim that nothing has been released since 2019, and possibly falsifies the archived claim outright. The release notes — "First Release", two words, no changelog, no compatibility statement — do not tell us which of three things happened: a re-tag of the 2019 tree under a new versioning scheme, a rewrite or fork republished under the same name, or a packaging/CI cleanup with no functional change. Those three have completely different implications for us and are indistinguishable from the release note.

The version reset itself is a signal worth respecting. Resetting to 1.0.0 after a multi-year gap discards lineage: anyone pinning ^1.0 inherits whatever the tag contains, and any prior 0.x references inside our codebase become meaningless. It also means we cannot infer the diff from version numbers — we have to read the tree. A package resurfacing after years under a new tag is precisely the case where provenance must be verified rather than assumed: confirm the Packagist entry and repository ownership have not changed hands, and confirm the tag is not a force-push/re-tag of old content.

Integration feasibility is unchanged in the mechanical sense and still gated on compatibility evidence that the release does not supply. The cheapest discriminator remains the require block in composer.json: if v1.0.0 still pins PHP 7.x and Laravel 5.x/6.x, nothing material has changed and the prior conclusion holds without further work. If it declares PHP 8.1+/Laravel 10+ and targets LaRecipe 2.x selectors, the calculus shifts and adoption becomes a live option rather than a non-starter.

Technical risk is now concentrated in provenance rather than abandonment:

  • Unverified contents. "First Release" is not documentation. Selector coverage against our LaRecipe version, PHP/Laravel constraints, and whether the package ships JS/Vue overrides that could conflict with LaRecipe internals are all still open.
  • False maturity signal. A 1.0.0 reads as "stable" to a reviewer who does not know the history. That is the most likely way this tag causes harm — not through the code, but through the assumption it invites.
  • Provenance. Repo/Packagist ownership and tag integrity need a two-minute check before anything else.
  • Still no community signal. Three stars and zero dependents were the prior evidence base; unless the release moved those numbers, the absence of a user base to pressure-test the package remains.

Key questions, revised:

  • Is v1.0.0 a functional change from the 2019 tree, or a re-tag? What does the commit history between the last old commit and this tag show?
  • Has repository or Packagist ownership changed, and is the tag signed/immutable?
  • What does the require block declare for PHP and Laravel/illuminate versions?
  • Which LaRecipe major does it target, and do the selectors it references still exist in our version?
  • Does it ship CSS only, or service provider/view/JS overrides?
  • Is there now a changelog, CI, or test fixture set — any artifact of sustained maintenance rather than a single event?
  • License and vendoring permissions (unchanged, still required).
  • Is the RTL requirement scoped to docs, or does it extend to the host app shell? (unchanged)

Integration Approach

Stack fit remains conditional, but the condition is now testable rather than assumed. The release notes assert nothing about PHP 8 or Laravel 10+ support, so we treat support as unproven until we read the manifest. Two branches follow: if constraints are still pinned to the 2019 era, the package remains a poor fit on a modern stack and the "harvest the artifact" path applies unchanged; if constraints are current and selectors target LaRecipe 2.x, we have a legitimate build-vs-adopt decision instead of a foregone one.

Default migration path is still extraction. Pull the v1.0.0 tree, isolate the RTL stylesheet(s) and any direction-flipping logic, commit that CSS into our own asset pipeline alongside our LaRecipe customizations, and replicate only the minimal provider behavior in AppServiceProvider or a small first-party package. Two additions given the version reset: pin to an immutable reference (tag plus commit SHA) and record a checksum of exactly what we vendored, so a future retag of 1.0.0 cannot silently change what "we vendored v1.0.0" means. Provenance note in the repo, as before.

Compatibility work is still a porting exercise, and the 2019→2026 gap is unchanged by a tag. Diff selectors against the DOM our LaRecipe version emits — nav drawer side, code block alignment, table direction, breadcrumb order, search input — and validate with a real Arabic or Hebrew document set, not one smoke-test page. Font loading remains an explicit work item; RTL quality is typographic as much as directional.

Sequencing:

  1. Provenance first. Verify repo and Packagist ownership, tag immutability, and commit history up to v1.0.0. Stop if ownership is unclear.
  2. Read composer.json constraints and the file inventory. This is a fifteen-minute check that determines whether steps 3–5 are worth running.
  3. Time-box a one-day audit of the v1.0.0 tree to establish what is reusable and whether any of it post-dates 2019.
  4. Decision gate. Adopt as a pinned dependency only if the audit shows current PHP/Laravel support, LaRecipe-version-appropriate selectors, a changelog, and a named owner on our side willing to track it. Otherwise vendor the CSS and provider logic; do not composer require.
  5. Port selectors to our LaRecipe version and add RTL fixtures to the docs build so regressions surface in review.
  6. If the audit shows the CSS is trivial or the selectors are unusable, write the stylesheet from scratch — still likely the faster path.
  7. Record the decision, the SHA, and the provenance note.

Operational Impact

Maintenance is where the release changes the story, but not as much as the version number implies. A single tag is an event, not a cadence. The prior "zero upstream patches" finding should be softened to "one upstream event after a multi-year gap, with no changelog" — which is not a maintenance commitment and does not justify transferring our compatibility risk to a third party. The bar for treating the package as maintained is evidence of routine: CI, changelog discipline, issue response, more than one commit in the last year. We do not have that; we have a tag.

Support is unchanged absent other evidence. Three stars and no dependents still means no community to consult and no useful issue history. The new risk is the inverse: a 1.0.0 badge reads as maturity, so the support burden may land on us anyway after someone assumes the package is healthy and skips the audit. Internal ramp-up remains low — CSS plus a service provider, comprehensible to any Laravel-fluent frontend developer in a day. The residual knowledge risk is coverage, not depth: knowing which screens we failed to check.

Scaling remains benign and unworthy of modeling. Static stylesheets, low-traffic developer-facing SPA, no data, no queue, no external service.

Failure modes, updated:

  • False maintenance signal. The 1.0.0 tag invites adoption without the audit. This is now the likeliest failure, ahead of the CSS issues.
  • Silent partial application. Stylesheet loads, old selectors no longer match, some components render LTR and others RTL. Still the hardest failure to catch without bilingual review.
  • Version-reset ambiguity. 1.0.0 with no predecessor changelog means we cannot reason about what changed; only a tree diff answers it.
  • Retag hazard. If 1.0.0 is mutable, "we vendored v1.0.0" is an unstable claim unless we pinned a SHA and checksum.
  • Composer resolution failure on PHP 8/current Laravel, if constraints were not modernized — blocks CI for unrelated reasons if the dependency is global.
  • Asset publish collisions with LaRecipe's own paths.
  • Upgrade breakage at the next LaRecipe major, which drifts the vendored CSS either way; vendoring at least makes it visible and fixable in our repo.

Recommendation: hold, do not adopt on the strength of the tag. The release is a reason to re-run the audit, not a reason to change the conclusion. Verify provenance, read the manifest, and spend the day on the tree; if v1.0.0 turns out to be a genuine modernization with a changelog and an internal owner, adoption as a pinned dependency is defensible. Absent that evidence, extract or rewrite the stylesheet into first-party code, pin it to our LaRecipe version, and add bilingual docs fixtures. The low score and long gap remain accurate signals; the work the package represents is still small enough that ownership is cheaper than adoption.

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