capell-app/site-discovery
Site discovery for Laravel: publish sitemaps, robots.txt, and other discovery files so search engines and AI crawlers can find and index your Capell-powered site. Simple configuration, automatic generation, and integration with your existing site setup.
What changed in v1.0.49: The release is a patch increment (v1.0.48 → v1.0.49) published with no release notes beyond an auto-generated compare link. There is no disclosed feature, fix, breaking change, or deprecation. Treat the change surface as unknown but bounded by semver: patch releases in a Composer-distributed package cannot introduce breaking API changes without violating the contract most Laravel consumers rely on, but they can and do change rendering output, config defaults, route behaviour, or transitive dependency constraints.
Architecture fit: capell-app/site-discovery is a Laravel package in the site-discovery / SEO surface area (sitemap and crawler-guidance concerns, per the package name and vendor). Architecturally this class of package is a thin, low-coupling addition: it typically registers a service provider, publishes config, and exposes one or more routes or artisan commands that emit machine-readable output consumed by search engines rather than by application code. That makes it a peripheral dependency — it sits at the edge of the request lifecycle and has little reason to intersect with domain logic, auth, or persistence. Fit is therefore good for any Laravel app that serves public, indexable content; poor only where the app is API-only, fully behind auth, or multi-tenant with per-tenant hostnames that the package does not model.
Integration feasibility: High on paper. Composer install, provider auto-discovery, config publish, and a route or scheduled command. The realistic effort is not wiring the package but reconciling it with whatever already produces sitemaps and robots directives — static files in public/, a hand-rolled controller, a CDN/WAF rule, or an SEO plugin on a separate marketing stack. Duplicate or conflicting sitemap sources are the single most common failure here.
Technical risk (ranked):
lastmod values, or robots directives, with effects that appear in search console data days later.^1.0) will pull changes we cannot review in advance.Key questions to answer before adoption:
/sitemap.xml and /robots.txt routes, or generate files? Which wins if both exist?Stack fit: Native Laravel. Expected footprint is a service provider plus publishable config, with no infrastructure requirement beyond the web tier and the scheduler. No queue, no new datastore, no external service call at request time. That is the ideal shape for a peripheral SEO package and means it slots into an existing Laravel deployment with no platform change.
Migration path: Adopt additively rather than by replacement.
1.0.49 exactly ("capell-app/site-discovery": "1.0.49") so the assessment reflects a known artefact.Compatibility: Verify the declared Laravel and PHP support matrix against our current runtime before installing — the constraint may already exclude us, or may force a framework bump we have not planned. Check for route-path and middleware collisions, and confirm behaviour under any global middleware (auth, maintenance mode, locale detection) that could intercept the discovery routes. If we run behind a CDN or reverse proxy, confirm the package's host/scheme resolution respects TrustProxies; otherwise generated absolute URLs will be wrong.
Sequencing:
Maintenance: Low steady-state effort — this is a dependency that should mostly be installed and forgotten. The recurring cost is upgrade review, and this release is the evidence: 49 patch releases with an empty changelog means every bump requires reading a diff rather than reading notes. Budget for that, or deliberately lag on upgrades and batch them, rather than allowing an unpinned constraint to pull changes silently through CI.
Support: Internal-only, in practice. Escalation beyond the team means an upstream issue on a small vendor's repository with no SLA. For a package in the SEO path — a channel that is often material to acquisition — accept that we own the outcome regardless of who owns the code. Keep the ability to override or fork the output generation; if the package's output cannot be customised without patching vendor code, that is a reason to reconsider.
Scaling: The package itself is not a scaling bottleneck if it caches or is generated at build/schedule time. It becomes one if it enumerates URLs from the database on every request: a large catalogue turns each sitemap fetch into a full table scan, and crawlers fetch repeatedly. Confirm whether output is cached, whether an index-file strategy exists for very large URL sets, and whether generation is a scheduled job or per-request. For high-traffic sites, serve the artefact statically or from cache; do not let a crawler hit the database.
Failure modes to plan for:
robots.txt overriding the generated one; results in confusing, partial indexing that is slow to diagnose.APP_URL misconfiguration yields absolute URLs pointing at staging or http://; crawlers index the wrong origin.lastmod and membership silently drift; needs a freshness alert, not just an uptime check.Ramp-up: Minimal for a Laravel-fluent engineer — installation and configuration are an hour; understanding the URL-discovery mechanism is half a day. The real ramp-up is domain knowledge: who currently owns sitemap/robots generation, what the SEO stakeholders expect, and how to read search console coverage reports to know whether the change helped or hurt. Involve whoever owns SEO before rollout, not after — they are the ones who will notice a regression, and they should be the ones who define the acceptance diff.
Verification note: This assessment is necessarily provisional. The v1.0.49 release body contains no information, so no claim here about the package's behaviour or this release's contents is confirmed. Resolve the key questions in Technical Evaluation — starting with an actual read of the 1.0.48→1.0.49 diff and a staging output diff — before treating this as an adoption decision.
How can I help you explore Laravel packages today?