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

Slidewire Laravel Package

wendelladriel/slidewire

SlideWire lets you build beautiful presentation decks in Laravel with Livewire. Write slides in Blade and get a full-page experience with keyboard, swipe, and hash navigation, themes, fragments, code highlighting, diagrams, vertical stacks, backgrounds, and auto-slide timers.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

SlideWire is not a presentation product — it is a rendering layer inside a Laravel application. Decks are Blade files (Markdown since v1.4.0) resolved from config('slidewire.presentation_roots') and rendered through a full-page Livewire component. That means it inherits the host app's routing, middleware, auth, layouts, config cache, and Tailwind pipeline instead of standing up a parallel stack. For a TPM, that is the entire value proposition: presentation infrastructure that costs one composer require and no new deployment surface.

The features it supplies are the commodity mechanics you would otherwise have to spec and staff: keyboard/click/swipe/hash navigation, horizontal slides with nested vertical groups, fragments, transition presets, auto-animate, progress and fullscreen controls, auto-slide timers with config → deck → slide precedence, Phiki syntax highlighting, diagrams, Reveal-style color/image/video backgrounds, theme presets with typography controls, and a growing first-party component set (title-slide, two-column-slide, media-split-slide, timeline-slide, steps-slide, agenda-slide, panel). That component vocabulary is what makes a reusable deck template a realistic deliverable — one shell, one theme, one authoring convention, many decks.

The differentiating capability is data binding. Because decks are Livewire/Blade, a slide can read current pricing, feature flags, roadmap status, or live metrics directly from the application. That solves deck drift and stale-collateral problems in a way Google Slides or Keynote structurally cannot. This is the argument to lead with internally.

Where it does not fit: pixel-perfect brand collateral, PDF/PPTX handoff, offline delivery, SCORM/LMS distribution, and SEO-critical public pages. It is an HTML/JS runtime requiring JavaScript. Scope it to internal enablement, onboarding, architecture walkthroughs, roadmap/release comms, and product demos behind existing auth.

Integration feasibility

Mechanically low-friction for the target stack: install via Composer, scaffold with php artisan make:slidewire demo/product-launch --title="...", register a route via Route::slidewire(). No additional frontend build beyond Livewire's existing assets. A competent Laravel engineer gets a working deck inside a day.

Three non-obvious integration items must be on the checklist, not in tribal knowledge:

  1. Tailwind source wiring. resources/css/app.css needs @source entries for vendor/wendelladriel/slidewire/resources/views/**/*.blade.php and src/**/*.php. Without them, first-party components render with correct markup and missing styles — a confusing failure mode that reads like a package bug.
  2. Config caching. Theme/typography config feeds DTOs; v1.3.2 fixed DTO config serialization. php artisan config:cache must be an explicit test case, not an assumption.
  3. CI dependencies. The package validates with Playwright/Pest Browser (npx playwright install chromium), which pulls Node and Chromium into CI. It validates the package, not your deck template or your data bindings — plan your own smoke coverage.

Hard requirements: Livewire 3.x and a modern Laravel/PHP baseline. Teams on Livewire 2.x, legacy Laravel, or Inertia/Vue/React front ends are looking at a migration project, not a package adoption.

Technical risk

  • Maturity and bus factor. 142 stars, zero dependents, one primary maintainer, a young 1.x line. Treat SlideWire as a dependency to isolate, not a platform bet. Note that published release metadata lists a date beyond the present — confirm the actually installable version on Packagist during the dependency audit before pinning.
  • Ecosystem lock-in. Rendering and navigation are coupled to Livewire. Content survives replacement if decks are kept thin in Blade/Markdown; the presentation layer does not.
  • Moving surface. Recent minors added Markdown/composed decks, first-party UI components, and media split layout; v1.4.2 fixed slide offsets after repeated navigation — a navigation correctness bug reaching production in a 1.4.x patch. Pin versions and read release notes.
  • Accessibility and SEO. No documented ARIA or accessibility guarantees, no SEO metadata, JavaScript required. Excludes external, accessibility-mandated, or search-indexed content without additional engineering.
  • Export gap. HTML only. If stakeholders expect a PDF/PPTX handoff, define the compensating workflow (print stylesheet, headless-Chromium capture) before committing.
  • Content safety. Decks are trusted Blade/Livewire — a template-execution surface. Non-engineer authoring without review is an XSS and code-execution path.
  • Brand control. Theme presets are structured, but brand-exact layouts will need custom components and CSS overrides. Budget a theming spike.

Key questions

  • Are we standardized on Laravel 10+ and Livewire 3.x, and is that strategic or incidental?
  • Which decks are internal/semi-public versus external, export-driven, offline, or SEO-critical?
  • Who authors decks after the pilot, and who reviews them before they ship?
  • Do we require PDF/PPTX export, SCORM/LMS, localization, or formal accessibility compliance?
  • Can we accept single-maintainer risk, and is there a named owner for upgrades and a replacement path?
  • Will SlideWire's theme presets and Tailwind assumptions collide with our brand system and design tokens?
  • What live data may appear in decks, and what renders when that data source or JavaScript fails?
  • What is the success metric: authoring hours saved, deck freshness, fewer stale-collateral requests, or route-level engagement?

TPM verdict: run a narrow pilot for internal or semi-public decks inside an existing Laravel/Livewire app. Do not standardize broadly until authoring time saved, theming compatibility, accessibility expectations, and maintenance ownership are proven.

Integration Approach

Stack fit

Adopt only where the application is already Laravel + Livewire and decks can sit behind existing auth. Reuse the app's middleware, layouts, asset pipeline, and design tokens rather than creating a second presentation surface. If the org is Inertia/Vue/React or non-PHP, the cost shifts from setup to platform migration — rarely justifiable for presentations.

Keep deck content thin: Blade/Markdown composing first-party components, with data pulled through explicit, bounded queries passed in from the route or a small presenter class. No business logic inside slides. This is what preserves the exit ramp if SlideWire is ever replaced — the content survives, only the wrapper is rewritten.

Migration path

  1. Inventory existing decks and classify: internal enablement, sales/demo, roadmap/release, external public, export-required, offline-required. Migrate only the first three initially.
  2. Pick one deck that currently causes pain — stale onboarding material, a sales deck with hand-refreshed metrics, a roadmap deck that drifts from the tracker. That is the pilot, not a greenfield demo.
  3. Port it with make:slidewire, wire the route with Route::slidewire() behind existing auth middleware, and confirm the Tailwind @source entries and config:cache behavior in a staging deploy.
  4. Run old and new in parallel for one review cycle. Only then redirect the internal link. Keep the old deck archived, not deleted.
  5. Codify the template after the pilot: route naming, auth middleware, theme config, component conventions, data-access pattern, review checklist. Standardize the template, not the package internals.

Compatibility

Verify against the host app's actual versions before pinning: Laravel version, PHP floor, Livewire 3.x, Tailwind version, and the existing asset build. Confirm the installable Packagist version given the anomalous release date metadata. Check whether the team already runs a headless browser in CI; if not, decide whether to adopt test:browser at all or rely on a small custom smoke suite for the deck template.

Sequencing

Pilot deck (1–2 weeks) → theming/brand spike in parallel → template codification → 2–3 additional internal decks → review gate on authoring model (who writes, who approves) → decide on broader rollout or stop. Do not open authoring to non-engineers before the review gate exists.

Operational Impact

Maintenance

Low runtime footprint, but real ownership. Someone must own: version pinning and upgrade testing (the package is moving quickly through 1.x), the @source wiring in resources/css/app.css, config-cache regression checks after theme changes, and the deck template itself as a shared asset. Budget a fractional engineer, not zero. Track upstream releases and read the changelog before bumping — a slide-offset correctness bug shipped in a patch release is a signal about the release cadence.

Support

No vendor, no SLA, MIT license, single maintainer. Support is your own team plus GitHub issues. Escalation path is: read the docs at slidewire.dev → check recent release notes → vendor or patch locally. Have an explicit policy on forking if upstream goes quiet. For non-engineer authors, support burden lands on whichever engineer owns the template — plan for office hours or a short internal guide rather than ad-hoc Slack questions.

Scaling

Scales fine along the axes that matter here: number of decks (each is a route + a Blade file), content volume, and page weight (all static assets). It does not scale into high-traffic public delivery — every view is a Livewire round-trip and requires JavaScript, and there is no CDN/static-export story. If a deck needs to be viewed by thousands of unauthenticated visitors, that is a different problem. Also watch the compiled Tailwind output as package sources are added to @source: it is a modest growth, but it affects every page in the host app, not just decks.

Failure modes

  • Missing styles after install. @source entries absent → components look broken. Highest-probability first-day failure.
  • Stale config after theme changes. Config cache holding old DTOs → settings silently ignored. Mitigate with php artisan optimize:clear in the runbook and a cache-clear step in deploy.
  • Navigation state bugs. Slide offsets and hash routing after repeated navigation were fixed in v1.4.2; verify a full forward/back pass in your own smoke test before each upgrade.
  • Data-source failure inside a live deck. A slide bound to a metrics query fails mid-presentation. Always define a static fallback; never let a live deck depend on an unguarded external call.
  • JavaScript unavailable or blocked. Livewire requires JS; a locked-down conference network or a hardened browser kills the deck. Have a PDF fallback for anything presented externally.
  • Untrusted authoring. A non-engineer editing Blade without review is a code-execution and XSS path. Gate authoring on a PR review.
  • Upstream abandonment. Single maintainer, zero dependents. Mitigate by pinning, vendoring if necessary, and keeping deck content portable.

Ramp-up

Engineers: hours to a first deck, a day to understand theming and component composition. Designers and enablement staff: days, and only after the template is codified — they should be composing existing components, not writing new Blade. Expect a one-to-two-week pilot to produce a trustworthy estimate of authoring time saved; that number, plus a theming verdict and a named owner, is the gate for any broader rollout.

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.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin