Technical insights and software architecture

Deep dives into PHP development, Horde Framework evolution and practical software engineering. Focused on real-world solutions for complex technical challenges. “Always close to the source”.

Core Topics

PHP, Horde Framework, authentication systems, composer workflows and modern development practices.

Long-form Analysis

Comprehensive technical articles exploring architectural decisions, migration strategies and lessons learned from real projects.

Code & Community

Open source contributions, framework development and sharing knowledge with the PHP developer community.

  • Cache Cache – Wicked Whupsie

    Why did a wicked wiki page take seconds to load when nobody was editing it? Why did a whups ticket report recalculate the same numbers over and over again even though nothing had changed? And why were we spending CPU time trying to calculate available categories and queues on every single request? Conventional wisdom has…

    Continue reading


  • A Little Bit of SOAP…

    SOAP – Simple Object Access Protocol was born at the turn of the millennium when XML-RPC turned out to be not quite enough for the web’s growing need for integration and collaboration. 1 Horde has always been about integrations and APIs. It’s a framework driving collaboration software after all. Before “API-first” became a buzzword, Horde

    Continue reading


  • Another wicked game in the engine room

    It was the early 2000s when the web was still glowing and deforming, freshly spit out from a volcano at CERN a mere decade earlier, taking its time cooling down and gelling into what we know today. Ward Cunningham’s original Wiki as seen in Portland Pattern Repository was already well established but otherwise barely anybody

    Continue reading


  • Rules must be obeyed

    Horde was never on the hip & trendy side of town. When everybody called monorepos dead, we did a monorepo. Shortly before the great monorepo revival, we did a git split into distinct libraries. This required some tooling. Michael Rubinsky’s git-tools was great for its time. It handled what we couldn’t have handled manually. Now

    Continue reading


  • Worms infested my code base and I am fighting back

    The sabberworm/php-css-parser used to be bundled with the horde/css-parser library. Supposedly the one is a shield before the other, separating the code base from this particular beast. But over time it crept in and infested various places. How to fight back It’s time to teach the worm some manners and throw it out where it

    Continue reading


  • Dark is the road you wander

    While we are pushing forward day by day, processing user reports of alpha and beta version bugs and quirks, we sometimes wonder what path lies ahead beyond those minor worries. Where do we go? I want to know. We have 150+ libraries and apps which are more or less in focus and a body of

    Continue reading


  • Time, it needs time

    As I am writing this, bug reports from users are coming in on last night’s updates to Turba Addressbook. In Turba we first rolled out our new way of date handling and upgrading existing user-selected date formats in backends. The initial results were … mixed. Horde comes from the strftime era, a way of formatting

    Continue reading


  • Intermission: H6 Beta Update Week

    I hesitated the whole last week to release part 4 of our series on Horde 6 architecture decisions since there was a lot going on. The good news is you don’t have another lengthy article to read before next week at the earliest as we are laser focused on delivering beta stage for all 150+

    Continue reading


  • Web: Why “No Frontend Framework” is the Right Framework for Horde 6

    Part 3 of 4: Architectural Evolution in Horde 6 I really did not want to build another frontend framework. Or adopt one for that matter. When jQuery Mobile became untenable (see Part 1), my instinct was to find the next framework. Something modern, well-maintained, with good documentation and community support. React? I embraced it wholeheartedly

    Continue reading


  • JWT Authentication: Building a Hybrid Model That Actually Works

    Part 2 of 4: Architectural Evolution in Horde 6 In part 1 of the evolution series: The jQuery Problem I discussed frontend concerns – How to move off a dead mobile-only framework towards a mobile-first responsive design and not get caught in the next framework I don’t need. This time we move towards authentication concerns.

    Continue reading