marcreichel/igdb-laravel
A Laravel wrapper for the IGDB (Internet Game Database) API that handles Twitch OAuth authentication automatically and provides a fluent query builder for fetching games, covers, genres, and more. Config and facade integrate cleanly with Laravel.
Architecture fit
Executable, Logo, Report, AgeRatingContentDescriptionV2) plus the lookup tables replacing deprecated enums (GameType, GameStatus, PlatformType, WebsiteType, ExternalGameSource, DateFormat). This shifts the package from "core game queries" toward "credible catalog adapter" and reduces how often engineering needs a raw-HTTP escape hatch — it does not eliminate it.IGDB_WEBHOOK_BASE_URL is the most architecturally significant line in the release. Decoupling webhook ingress from APP_URL lets a relay or proxy (Hookdeck, a queue front door) sit in front of deliveries without forking. That converts "IGDB webhooks have no durable delivery guarantee" from a package limitation into our engineering task, with a supported configuration hook.Integration feasibility
Technical risk
Webhook\Category as @deprecated with unchanged case values — nothing breaks today, but this is scheduled recurring work, not a one-time integration cost. It belongs in the roadmap as a standing line item with a named owner.$game->tags returns to a plain attribute (no longer a relation Collection) and the GameTimeToBeat.game cast was removed. Both are evidence that even minor bumps require a deliberate regression pass; a blind composer update in CI is not an acceptable posture.Key questions to get answered before committing
Stack fit
GameCatalogRepository) from day one so the vendor is replaceable and testable with fixtures.Migration path
Compatibility
IGDB_WEBHOOK_BASE_URL now allows that endpoint to differ from APP_URL, which is what makes staging and relay-based production viable.Sequencing
Webhook\Category to replacement lookup models as a scheduled ticket, before IGDB removes them.Maintenance
$game->tags semantics and dropped a relation cast; the upgrade checklist must include a regression pass over every endpoint the product actually uses.Support
Scaling
IGDB_RETRIES deliberately per query (Game::retries(5)) rather than accepting the default everywhere, and pair retries with backoff and circuit breaking at the adapter boundary.IGDB_WEBHOOK_BASE_URL + relay. Put a queue in front of webhook processing; never do catalog writes synchronously in the webhook handler.Failure modes to design for
Ramp-up
Bottom line for the roadmap
Use it as an accelerator for a validated catalog/discovery use case, behind an internal interface, with a pinned version, an owned caching layer, contract tests, and a named maintenance owner. Fund dependency upgrades and the enum→lookup migration as standing roadmap items. Revisit build-vs-buy — fork, vendor, or replace — at the point where catalog-dependent features become business-critical or uptime-committed; the low current adoption footprint means that decision should be made on our terms and ahead of time, not under pressure.
How can I help you explore Laravel packages today?