{"id":"https:\/\/freek.dev\/feed\/php","link":{"@attributes":{"href":"https:\/\/freek.dev\/feed\/php","rel":"self"}},"title":{},"subtitle":"All PHP blogposts on freek.dev","updated":"2026-03-25T13:30:28+01:00","entry":[{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3021-liminal-a-full-laravel-playground-in-your-browser"}},"id":"https:\/\/freek.dev\/3021","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-25T13:30:28+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3058-whats-new-in-laravel-activitylog-v5"}},"id":"https:\/\/freek.dev\/3058","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-25T11:39:31+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3020-moving-from-phpstorm-to-zed-for-laravel-development"}},"id":"https:\/\/freek.dev\/3020","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-23T13:30:28+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3019-chat-with-your-documents-a-practical-guide-to-rag-using-the-laravel-ai-sdk"}},"id":"https:\/\/freek.dev\/3019","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-20T13:30:26+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3018-build-an-mcp-server-with-laravel"}},"id":"https:\/\/freek.dev\/3018","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-19T13:30:29+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3052-laravel-query-builder-v7-a-must-have-package-for-building-apis-in-laravel"}},"id":"https:\/\/freek.dev\/3052","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-16T14:57:04+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3048-how-to-easily-access-private-properties-and-methods-in-php"}},"id":"https:\/\/freek.dev\/3048","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-12T11:39:39+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3011-quick-tips-sending-laravel-output-to-ray-automatically"}},"id":"https:\/\/freek.dev\/3011","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-11T14:30:27+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3004-how-to-tell-if-youre-testing-the-framework"}},"id":"https:\/\/freek.dev\/3004","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-04T14:30:28+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3015-laravel-backup-v10-serializable-events-resilient-multi-destination-backups-and-more"}},"id":"https:\/\/freek.dev\/3015","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-04T14:19:52+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3041-laravel-sitemap-v8-is-here-automatic-splitting-xsl-stylesheets-and-crawler-v9"}},"id":"https:\/\/freek.dev\/3041","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-03T11:50:27+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3039-a-better-way-to-crawl-websites-with-php"}},"id":"https:\/\/freek.dev\/3039","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-03-02T21:56:46+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3032-generate-og-images-for-your-laravel-app"}},"id":"https:\/\/freek.dev\/3032","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-26T01:01:01+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3035-building-a-php-cli-for-humans-and-ai-agents-with-almost-no-hand-written-code"}},"id":"https:\/\/freek.dev\/3035","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-25T12:12:21+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3034-let-your-ai-coding-agent-fix-your-errors-and-review-performance"}},"id":"https:\/\/freek.dev\/3034","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-25T12:11:49+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3003-tempest-30"}},"id":"https:\/\/freek.dev\/3003","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-23T14:46:54+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3030-a-clean-api-for-reading-php-attributes"}},"id":"https:\/\/freek.dev\/3030","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-23T08:41:50+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3022-how-to-make-your-laravel-app-ai-agent-friendly"}},"id":"https:\/\/freek.dev\/3022","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-21T14:30:00+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/2999-no-chrome-no-node-no-problem-pdf-generation-in-laravel-finally-grows-up"}},"id":"https:\/\/freek.dev\/2999","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-20T14:27:23+01:00"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/freek.dev\/3024-turn-any-openapi-spec-into-laravel-artisan-commands"}},"id":"https:\/\/freek.dev\/3024","author":{"name":{},"email":{}},"summary":{"@attributes":{"type":"html"}},"updated":"2026-02-20T09:50:00+01:00"}]}