Articles
The blog
Laravel, PHP, architecture, testing and AI applied to development. No hype, just real code.
Laravel 13.35 makes scheduler locking easier
A global setting to avoid duplicate scheduled tasks when Laravel runs across multiple replicas.
Gitea 28 drops the 1.x prefix and adds audit logging
Gitea 28 adds audit records, but its upgrade also changes settings worth checking before deployment.
WhenMounted and BigInt in Inertia 3.8
Inertia 3.8 keeps browser-only components from breaking SSR and preserves large IDs without losing precision.
Copilot dynamic workflows for repeatable automation
GitHub Copilot can define agent-driven processes with limits and review points for Laravel, homelabs, and CI/CD.
Repository-level Dependabot runners for private networks
GitHub now lets each repository choose its Dependabot runner, which is useful when packages live on private networks.
Update your self-hosted runners before Laravel CI stops picking up jobs
GitHub now blocks old runners in Enterprise Cloud, and its API can flag versions approaching retirement.
Laravel Doctor adds real checks before deployment
Laravel Doctor checks your application configuration and dependencies before they become production failures.
Ollama defaults to MLX on Apple Silicon
Ollama now selects MLX automatically for supported model architectures on Apple Silicon.
VS Code agents can now work inside your remote Dev Container
VS Code 1.139 lets agents run inside a Dev Container for remote projects connected through SSH, Tunnel, or WSL.
Laravel AI SDK 1.0 makes agents a serious Laravel building block
Laravel AI SDK 1.0 brings agents, tools, approvals, conversation storage, and local providers into a practical Laravel workflow.
Laravel 13.33 combines memoized cache and tags
Avoid repeated Redis reads during one request without giving up tag-based cache invalidation.
umbrelOS 2.0 makes a homelab easier to operate
Virtual machines, ZFS storage, GPU support, and permission-scoped MCP make Umbrel more practical for running a homelab.
Difflock checks Laravel migrations before production
A Laravel linter that evaluates migrations against the real database schema before they reach production.
LobeHub moves self-hosted chats to a server gateway
LobeHub v2.2.18 changes the self-hosted Compose setup with gateway URLs, service tokens, keys, and reverse-proxy checks.
Fresh Package brings discipline to Laravel package development
A Laravel package starter that includes testing, a workbench app, static analysis, and practical guidance for AI coding agents.
A forensic scanner for suspicious Laravel filesystem changes
Laravel Scalpel inspects a Laravel project’s filesystem for intrusion evidence and unauthorized changes.
Mercure Broadcasting in Laravel 13.32
Laravel adds Mercure as a broadcasting driver for real-time SSE updates through a hub you can run yourself.
Laravel Vet reviews dependencies before Composer updates
Laravel Vet turns dependency review into a versioned trust record that Composer can enforce.
Kubernetes 1.37 moves Memory QoS to beta
Memory QoS is enabled by default in Kubernetes 1.37, but memory protection and throttling still need explicit kubelet configuration.
Claude Code can now test plugins before they break your workflows
Claude Code adds evals to measure whether a plugin actually helps and catch regressions before they reach CI.
Control who writes the cache in GitHub Actions
cache-mode lets Laravel pipelines limit which jobs can restore or save dependency caches.
NemoClaw v0.0.122 respects your Docker context
NemoClaw no longer assumes the default Docker daemon when preparing local inference on a homelab.
Laravel 13.31 improves queue metrics and worker shutdowns
Two small changes for measuring full queue backlog and handling interrupted Laravel workers more clearly.
Laravel Cloud CLI now understands GitLab and Bitbucket repositories
cloud-cli 0.6.0 detects more Git providers and prevents unbounded waits during the deployment flow.
Using GPT-6 Astra for longer GitHub Copilot tasks
A practical way to use GPT-6 Astra in Copilot for Laravel and Docker Compose changes that still require human review.
Edera 1.12 brings workload identity to Kubernetes
Edera integrates SPIFFE and SPIRE to deliver short-lived X.509 identities to isolated workloads.
Laravel 13.30 improves worker logs and hardens Storage paths
Laravel 13.30 makes worker shutdowns easier to observe and closes a path traversal gap in Storage::path().
Laravel 13.30.1 returns newly created rows without duplicate inserts
`insertOrIgnoreReturning()` makes idempotent imports simpler and removes extra queries just to find out what was inserted.
Laravel LSP brings framework context to every editor
Laravel’s official language server gives editors practical awareness of routes, Blade, configuration, containers, and more.
Codex CLI 0.152.0 adds MCP output limits
A new Codex setting helps prevent noisy MCP logs from consuming an agent’s context.
Putting limits on GitHub agents without stopping automation
How to use declarative limits in GitHub Agentic Workflows to investigate incidents without multiplying runs or risk.
Laravel starter kits simplify frontend tooling with Vite+
Vite+ brings development, builds, formatting, linting, and type checks into one configuration and a simpler command flow.
Dockhand v1.0.45 adds KeePassXC to Compose deployments
Dockhand can resolve KeePassXC secrets during stack deployments and flag common Compose issues before applying them.
Laravel Boost 2.6 improves MCP safety and testing guidance
Boost 2.6 makes MCP database queries safer and gives coding agents one clearer approach to Laravel testing.
Laravel 13.27 improves sensitive queries and locking
Three small Laravel 13.27 changes that reduce data leaks in errors and simplify concurrency-sensitive code.
Guide GitHub agents from a pull request before they write code
`steer: true` opens a draft pull request before an agent runs, giving reviewers a way to redirect the work in progress.
Switch buckets without downtime, with read-through disks
Laravel 13.26 ships a disk driver that reads from two places and moves files across as it goes. Migrating from S3 to R2 stops being an all-nighter.
PocketBase 0.40 changes backups and file handling
The new release reduces database locking during backups, but Go extensions need careful testing before upgrading.
Automate your homelab with Claude Code
An agent with access to your server can save you hours of maintenance, or wipe your data. Here's how I set mine up so only the first one happens.
Build your homelab with Proxmox without going broke
A second-hand mini PC, Proxmox and a couple of afternoons. Everything you stop paying for once you run your own server at home.
Three mistakes AI keeps making in Laravel
Coding assistants write Laravel fast, but they always trip over the same three stones. Learn to spot them before you hit merge.
Lock Claude Code inside Docker
Giving an AI agent access to your terminal is unnerving. A well-configured container lets you keep the speed without betting your machine.
Five Home Assistant automations I use every day
Home automation without useless gadgets: the automations I've kept running for months and that genuinely took work off my hands.
Pest PHP: from zero to productive in an afternoon
Why I swapped PHPUnit for Pest across all my projects, and how to build a suite that actually survives over time.