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

Symfony Static Dumper Laravel Package

symplify/symfony-static-dumper

Symfony Static Dumper converts a Symfony application into a static HTML site. It crawls configured routes, renders pages, and writes them to disk, enabling fast, low-maintenance static deployments while preserving Symfony routing and templates.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Delivery architecture: dynamic vs static vs hybrid. Determines whether a PHP app can be pre-rendered to HTML at build time and served from a CDN/object store, with genuinely dynamic behavior isolated behind APIs or edge functions.
  • Hosting and cost model. Static output removes PHP-FPM and database work from the read path; enables cheap object-storage/CDN hosting. Directly informs the "what are we paying for runtime on pages nobody writes to?" conversation.
  • Build vs buy vs adopt. Serves as a concrete reference architecture for "export an existing PHP app to static files" — useful for scoping a spike or a 2–4 week internal build instead of a vague "we could make it static" proposal.
  • Roadmap sequencing for read-heavy surfaces. Good fit for marketing pages, docs, blog, changelog, help center, landing pages — high read-to-write ratio, low personalization.
  • Stack consolidation. For a Symfony shop, this is the native static-export option (Laravel analogue: spatie/laravel-export; maintained Symfony alternative: Stenope). Supports the "one framework, one build pipeline" argument.
  • Decommissioning old surfaces. Tells you whether a legacy Symfony subsite can be frozen to static, its runtime retired, and its content still served — a real cost-removal lever.

Explicitly not supported: authenticated areas, personalized pages, real-time data, multi-step forms, CSRF-protected POST flows, anything depending on server-side session state.

When to Consider This Package

Consider it — as reference material, not as a dependency:

  • You already run Symfony and want to see what a static export of the current app actually looks like before committing.
  • Your routes are GET-only, cacheable, session-free, and you can enumerate every URL (sitemap, route list, or DB query).
  • You need a timeboxed spike to size the effort before choosing Stenope, spatie/laravel-export, or an in-house dumper.
  • You want working code for the crawl → request → render → write loop rather than designing it from scratch.
  • You're doing a deprecation/exit analysis and need to know what functionality would have to be replaced.

Look elsewhere — or stop:

  • Any production dependency. The repo lives under deprecated-packages; score 0, 0 dependents, no visible maintenance. No security patches, no Symfony LTS guarantees, no issue triage. Inheriting this means inheriting the maintenance.
  • Newer Symfony/HttpKernel versions — verify version constraints early and expect breakage. Assume it targets an older Symfony.
  • Laravel stacks → spatie/laravel-export (maintained, framework-native).
  • Symfony stacks wanting something supported → Stenope.
  • You need incremental builds, ISR, image optimization, asset hashing, edge middleware, or preview/draft workflows — use a platform that ships those (Astro, Next.js, Eleventy, Hugo) rather than bolting them onto a dumper.
  • Auth, CSRF forms, live data — static export is the wrong lever; look at reverse-proxy caching, SSR caching, or edge rendering instead.

Due-diligence checklist before any go-ahead: last release date; supported Symfony range; open issues/PRs; license; how it enumerates URLs; handling of redirects, 404s, and 500s; asset copying step; whether output is byte-deterministic across runs; whether it can leak secrets or drafts into HTML.

How to Pitch It (Stakeholders)

For executives (one paragraph): "Static export" means taking our existing PHP application and writing every page out as plain HTML at build time, then serving those files from a CDN — no PHP and no database in the request path. It typically reduces hosting cost, improves page load, and shrinks attack surface. The package under review is a Symfony tool that does exactly this, but it is officially deprecated and effectively unmaintained (0 dependents, no active release signal). My recommendation is not to adopt it as a dependency. Instead, treat it as a reference design and either use a maintained alternative — Stenope for Symfony, spatie/laravel-export for Laravel — or budget a short internal spike. Indicative effort: 3–5 days to validate on a subset of routes; 2–4 weeks to productionize with build pipeline, cache invalidation, and draft-preview handling.

For engineering:

  • How it works: boots the Symfony kernel, iterates a supplied URL list, issues an internal Request per URL, captures the Response, and writes the body to output/<path>/index.html. No magic — which is also the entire risk surface.
  • Watch for: non-determinism (timestamps, random IDs, CSRF tokens, cache-busting query strings), redirect/404 handling, absolute vs relative URLs, the asset/Webpack copy step, completeness of route enumeration, and build time scaling linearly with page count.
  • Deprecation means we own it. If we adopt the pattern, plan on roughly 300–600 LOC to own and test — smaller than it sounds, but it is ours forever.
  • Spike success criteria: N representative routes export byte-identical on re-run; no secrets or unpublished content in output; build under an agreed time budget; output deployable to a CDN with no server-side rewrite rules.

The ask: approve a one-week timeboxed spike on the marketing/docs routes against a maintained alternative, with a go/no-go decision on retiring the PHP runtime for those surfaces.

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