<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Marten Ackermann — Blog</title><description>Engineering notes from production work: Laravel, Symfony, Vue, Nuxt, and architecture decisions.</description><link>https://marten-ackermann.com/</link><language>en-US</language><item><title>Solo SaaS with Laravel and Nuxt: Five Decisions That Paid Off</title><link>https://marten-ackermann.com/en/blog/solo-saas-laravel-nuxt/</link><guid isPermaLink="true">https://marten-ackermann.com/en/blog/solo-saas-laravel-nuxt/</guid><description>Building a SaaS product alone — API, app, billing, iOS, and marketing site. Five architecture decisions from building PEX that I would make again.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Race Conditions in Booking Systems: Conflict Detection with Symfony 7</title><link>https://marten-ackermann.com/en/blog/race-conditions-booking-systems/</link><guid isPermaLink="true">https://marten-ackermann.com/en/blog/race-conditions-booking-systems/</guid><description>How do you prevent double bookings when two users book the same room at once? A transaction with an overlap query — and why the answer depends on your database.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item></channel></rss>