photo of James Watts James Watts
Plaza Mayor
Madrid, MADRID, 28005 Espaņa

James Watts

James Watts
Internet Survivor


thoughts on cakephp

With CakeFest upon us for another year I've been thinking about the framework and my involvement with the project. Unfortunately I couldn't attend this year, as it coincides with other plans, but after helping organize the annual conference over the course of 4 years I'd say I've had my fair share. There are also some genuinely amazing people involved and helping make it all come together, not forgetting about the incredible Open Source community surrounding it. Everything is in good hands.

Although I've taken on a lot of difficult tasks during my time with the project (like writing the CakePHP 2 Application Cookbook, which was an exhausting process in itself), I've really enjoyed the ride. This was also true for my tenure as director at CakeDC, which was a challenging undertaking, yet equally rewarding. At one point we had people working remotely from across the globe, from the US west coast and Panama, all the way over to Hong Kong and Malaysia. There's nothing quite like coming online in the morning and having people say "goodnight", and then leave later that night while others are coming online and saying "good morning". It's an odd experience at best.

We also had a lot of fun during that period. Just the other day I was remembering that whenever someone would refer to CakePHP as the "PHP CAKE" it would get Larry Masters really pissed. It was quite amusing sometimes, I'm sure he'd even admit that. But that care and attention to detail with the project's image was something that rang home for me. Also, it's worth mentioning that behind that badass marine stance and short temper there's a kind and caring person, who's done a lot more for others than people may know about (a perfect moment to plug OSMI). But then, he does refuse to smile in public. So go figure.

I've been lucky to see the framework grow over the past decade, and feel privileged to have played a small part in that process. More than anywhere, I think that growth has been most visible in the community, which has without a doubt been a huge part of the project's success. Since I joined, the Twitter account has almost doubled in followers, while the Facebook group has reached more than 8,000 members. But those numbers pale in comparison to the Google group, which had over 18,000 users (now moved to discourse). And looking back over the community posts I'd publish towards the end of each year you can see how strong the advance was. It was really exciting to see it grow.

Here are some more stats, for those who love numbers:

  • 11 years in development
  • 211 releases to date
  • 418 contributors to the framework
  • 424 contributors to the documentation
  • 13,591 likes on Facebook
  • 14,845 followers on Twitter
  • 26,306 questions on Stack Overflow
  • 49% of the community are aged 25-34 *
  • 11% of the community are female *
  • Top countries are USA, India and Brazil *

* Source: Limited to data from Facebook page

However, the most humbling experience I had was witnessing the amazing influx of support for the development of version 3.0, which in my mind has been a pivotal point in the lifetime of the project (if you're really itching you can also checkout the preliminary roadmap for 4.0 here). The graphs for the repository went off the charts, truly showing how much muscle was behind the framework.


There were also some pretty fanatical people in the community, who weren't shy to show off their support.


And now we're on the peak of a re-branding of the project, and I think people couldn't be more excited, especially after the revolution that the 3.x series is bringing to the community. If you haven't checked out the new logo and design you can see it live on the main CakePHP site, as well as other satellite sites of the project. For those who want to see the progression over the years, there's a great reveal video (see below). I'd also recommend checking out a great post by Mark Story, about the last major re-branding process back in 2012.

Even though I'm an engineer and grew up in code, I slowly realized over time that I gravitate a lot more towards product. So I really love these moments of renewal, and bringing new life to something. Whenever I'd discuss aspects of framework I found myself mostly on the end of the conversation about the framework as a product, not necessarily just a technical solution. I would even have awkward discussions about the direction of the Open Source development, because my mind naturally drifts towards business solutions, which isn't everyone's interest in a heavily technical space. And understandably so.

Sure, the framework has a lot to offer with regard to options and features, but to me that's just details. Every framework has them, and there are plenty of frameworks to go around. No one can sell you details. That's something I'd argue that you look into once you're moving to make the purchase. Really you're already sold when you get that far. It's the product that captivates you first, and that's much harder to nail down.

This is what I feel the framework's strong point is, getting to the value proposition quickly. It's the experience you have in those first minutes or hours, from installation to seeing something happen, that really counts. For me, that user experience is the killer feature of CakePHP.

On-boarding is a key component of any successful product. Just to see the real impact, check out these experiences. Some are quite depressing, others are amazing. You could argue the technical merits of those implementations, but the real deal breaker is the overall product experience. A framework could be awesome, but if when you're using it you don't get that "feel good" experience, you're fighting a lost battle to those other frameworks which do. The DX initiative in Symfony is an excellent example of this.

I would say that a framework is a product, and so these characteristics also apply. Sure, there's no need to go so far as tracking KPIs or ROI, and maybe it's a stretch to consider acquisition, retention, churn or attrition metrics for a framework, but the core concepts of product value and user (developer) experience still hold true.

Take the installation process as an example. This is probably the first experience you have with CakePHP when starting from scratch, and which we could label as the on-boarding phase. It has a real "feel good" factor to it. Quick. Simple. Done. Don't underestimate how important this is. The first few minutes of experience that someone has with a product can undermine all other efforts made beyond that point. Basically, people just get turned off. And in the framework space, with so many solutions available, anyone can just move on to the next option.

On that note, I also think that Jose Lorenzo and all those who contributed to the new ORM in 3.0 also understood that the experience was fundamental to the success of the implementation. It has a great product feel to it. I even remember talking to him about it in IRC, and him mentioning how he wanted the interface to have that same fluid design and "feel good" factor that Laravel had been introducing in its APIs.

In my view, this is what makes CakePHP stand out from the crowd. Nothing is black and white, and many factors come into play, but if anything moved me more with the framework it's that feeling that you're using a great product, which puts the user experience and the value proposition front and center from first contact. Everyone who has contributed to the framework deserves major kudos for that.