4 Laravel & PHP Packages That Actually Solve Real Problems

These are four links I expect to use in real projects.

  • Laravel Pennant: A Practical Guide to Feature Flags: This hands-on guide to Laravel’s first-party feature flag package covers the parts that tend to cause trouble. It shows how Feature::for($user->team) scopes flags above the individual user, why a null scope skips the closure unless the type is nullable, and how non-boolean values support lightweight A/B tests. It also treats each flag as temporary scaffolding and recommends deleting it in the same PR that completes the rollout.

  • Laravel WhatsApp: Two Backends Behind One Facade: This package wraps Meta’s official Cloud API and an unofficial whatsapp-web.js Node sidecar behind one WhatsApp:: facade, so application code does not need to know which backend handles a message. Its trade-off table is useful: the Cloud API offers business templates and official support but lacks groups and limits free-form replies to 24 hours; the web sidecar supports groups, QR pairing, and unrestricted timing through a personal account without official backing. An optional Livewire admin UI is available with Flux.

  • You Probably Don’t Need a Database Per Tenant: Ollie Read examines multitenancy strategies from fully separate instances to one discriminator column, with the isolation and operational cost of each spelled out by database engine. His central distinction is useful: isolation concerns security and correctness, while separation concerns storage. PostgreSQL row-level security can provide meaningful isolation without the cost of a separate database. He frames the decision around the amount you are willing to pay per tenant for that isolation over the system’s lifetime.

  • Composer in Docker: Best Practices for Production Images: This detailed checklist keeps Composer out of the final production image. It covers bind-mounting the binary, ordering COPY instructions so dependency layers cache separately from code changes, using build secrets instead of ENV for private-package credentials, and pinning the Composer image to a digest rather than a mutable tag. The final Dockerfile combines the techniques into a reusable template.