owenvoke/laravel-xdg
A Laravel package for working with the XDG Base Directory specification, helping resolve standard config, data, cache, and state directories across platforms. It provides convenient helpers for using XDG paths within Laravel applications.
env() checks and hardcoded ~/.config/... paths with a maintained implementation of the freedesktop XDG Base Directory spec.XDG_CONFIG_HOME, XDG_CACHE_HOME, XDG_DATA_HOME, XDG_STATE_HOME and their spec-defined fallbacks.Adopt when:
Look elsewhere when:
storage_path()/config_path() conventions and skip this entirely.%APPDATA%/%LOCALAPPDATA%. Verify the package's behavior there before committing, and if cross-platform parity is a hard requirement, plan for an abstraction layer of your own on top.Upgrade risk for this release: v1.5.0 is additive/compatibility only — Laravel 12 support, no API changes, no deprecations, no breaking changes. v1.4.0 → v1.5.0 is a low-risk bump; treat it as maintenance hygiene rather than a planned work item.
For executives: This is a small, low-risk dependency that makes our product behave like a well-behaved native Linux application — config, cache, and data files go exactly where users and system administrators expect them to. That reduces a whole class of support complaints about stray or misplaced files, and it costs us almost nothing to adopt. The v1.5.0 release confirms the package is actively maintained and already supports Laravel 12, so it won't hold up our framework upgrade.
For engineering: It's a thin wrapper around XDG Base Directory resolution — it replaces bespoke environment-variable and path-joining code with a maintained, spec-correct implementation, with negligible runtime overhead and a narrow API surface, so lock-in is minimal. v1.5.0 only adds Laravel 12 support; there are no breaking changes or deprecations, so the bump from v1.4.0 is safe to take whenever we next touch dependencies. Recommendation: adopt only if we are genuinely writing user-scoped files from a locally-installed app; otherwise leave it out of the dependency tree.
How can I help you explore Laravel packages today?