How to kickstart a new Laravel Application with DDEV in 2026?

In 2025 I kickstarted my first real Laravel project. Along the way I noted the needed steps that are (from my perspective) crucial to have like a solid foundation. Now in the beginning of 2026 I’m about to build the next project based on Laravel and I compiled the following list. It made my development - especially the initial steps creating a new application - a lot easier. Helping me to reach the fun part of development quicker - and I hope this helps someone else, too!

VyOS BGP AS-Path Prepending

Usually, routers determine the fastest / cheapest or in general “most suitable” route to reach a destination with some fancy logic. And usually™, it’s perfectly fine to leave the router’s logic and decision process - it’s well tested and normally works out. But there might be situations where one, as the originator of some IP prefixes, wants or needs to influence the way, traffic is steered towards it’s own infrastructure. Scenarios where that might be wanted could be

After Event-Storming comes Event-Modeling - and then?

Since longer, the idea behind Event-Sourcing and event-based applications clicked with me and it felt very natural. After reading Martin Dilger’s Book on Event-Sourcing and Event-Modeling and building a first application “the event-based way”, I was conviced that this will be my general approach for further projects. This first application was pretty small in scope, contained only very few events, the laid out map was pretty easy to oversee and not much on this was changing during development. But now, together with a friend of mine, I’m thinkering about another application, slightly bigger - and it’s forseeable, that the much would be added, or existing stuff changed over time, once the application grows. Also building as a team brings in the requirement to have the map somewhere laid out, visible to discuss about it. And also to change it - but somehow keep track of the changes to the event-model which I understand as the (non-technical) architecture of the application.

Understanding Eventsourcing - Book Review

Thanks to Bastian Waidelich I noticed that there’s a pretty fresh and new book on Event-Sourcing and Event Modeling written by Martin Dilger: The book is available on Leanpub and also as printed edition from Amazon. About the content After having built a first application following the Event-Sourcing approach already (see https://spenden.srk-luzern.ch/ to see it live), that part of the book was not bringing me too much to learn. It was more of a repetition and good to follow and read up again to better memorize some details.

Traefik Configuration for Docker Compose Setups

Recently I played around with letting multiple smaller applications run, containerized, and published via Traefik as the central Gateway and SSL handler. Initial setup was simple - but adding more applications and separating the applications and their backend services into separate docker networks caused problems. The problem I ran into an error that was initially hard to get a grip on, because it was sometimes there, sometimes not a restart via docker-compose up changed the situation all the time (even without changes to the docker-compose.yml config file) the log-output I saw was inexistent or not helpful the error that was output when accessing the application through Traefik was just a “504 Gateway Timeout” after reaching the timeout the Traefik Dashboard showed all services, routers, everything - and everything as “healthy” without problems While trying several things to solve this issue, I two times thought I’d have solved it - then restarted the containers just to find out I was wrong and the problem was back.

A misleading error message in DB migrations

A few days ago we ran into the following error messages during deployment of a Flow 7.x based application where the deployment failed while executing the database migrations: An exception occurred while executing 'ALTER TABLE vendor_package_domain_model_something ADD CONSTRAINT FK_BD82590B2B219D70 FOREIGN KEY (entry) REFERENCES vendor_package_domain_model_something_else (persistence_object_identifier)': SQLSTATE[HY000]: General error: 1005 Can't create table `package`. `vendor_package_domain_model_something` (errno: 150 "Foreign key constraint is incorrectly formed") It took a while to understand that the migration itself was not the problem and fully OK. After using two tons of Google foo and the search in Neos’ Slack, we discovered that the error message is completely misleading and the source of the issue is coming from a completely different source!

Migrating from Kirby to Hugo

Despite working with the PHP based content management systems TYPO3 and Neos on a daily base for over 15 years, about 10 years ago when I last “relaunched” my personal website, I decided to use a different approach. Back then I decided to use Kirby that has evolved a lot since then. I never really upgraded Kirby and rarely wrote any blog posts anyway. Fast forward to end of 2022 I wanted to do some more with my website again and looked into a new static site generator so I can build the site locally or in a Gitlab CI build pipeline and just publish the resulting static files from there on. The team from the TYPO3 Camp Switzerland just started to use Hugo for their event site and while I looked at their git repository I just started playing around with Hugo. Having Hugo up and running that quickly was motivating and well, I just tried how far I can get with it.

How to list all .ch domain names

Intro Starting from January 1st 2021, SWITCH started to publish the .ch zone with all *.ch domain names as one of a few TLD operators. With this, each and everyone can have a look into all avilable and active domain names within the .ch zone that have a DNS delegation set. Details and limitations are listed on the open data page at SWITCH. Fetch the whole .ch zonefile I followed the example command that Markus Ritzmann tweeted:

Setting up ddev for Flow based projects

Intro Since years, this is one of the topics that comes back every now and then - and until now it was always a choice out of many ways that all had their good sides but also their drawbacks. Until now, I used several things to develop PHP based projects: local on Mac, with MAMP local on Mac, within a Vagrant-Box local on Mac, with Homebrew-based installations of Nginx, PHP-FPM and MySQL on a shared Development-Server But now I learned about ddev and how it solves many of the issues the above solutions had. I’ve now tested it for a few days and for now this seems to be a very cool solution:

Ways to add cache-breaking for static assets in TYPO3 Neos

Updated 2015-04-01, added solutions E, F and G Updated 2017-02-22, updated solution D The problem Given you work on a project and continuously deploy new versions of the site, you’ll probably also deliver fresh static assets like CSS and JS files. We noticed that our changes (including bugfixes) were not recognized by the browser of the user/customer… The reason was mostly, that the CSS/JS files were cached locally by the browser from an earlier visit.