Modern web development moves fast. When starting a new application, developers usually have a clear goal in mind: build a SaaS platform, an internal business tool, an e-commerce solution, or a custom portal.
Frameworks like CakePHP provide an excellent foundation, but every project still requires a set of common features before any business-specific functionality can be delivered:
- User authentication and password recovery
- Role-based access control
- Administration interfaces
- Navigation menus
- Application settings
- Media management
- Dashboard widgets
- Theming support
- Localization and logging
These features are essential, but they are rarely unique to the project itself. Rebuilding them for every application consumes time that could be spent on solving actual business problems.
Introducing BakeKit — If you can make it, bake it!
BakeKit is an open-source starter kit built on top of CakePHP.
Its purpose is simple: provide the infrastructure that most applications need from day one, while staying as close as possible to standard CakePHP conventions.
BakeKit is not a framework replacement. It is not a CMS. It is a foundation for developers who want to start building features immediately instead of spending days or weeks recreating the same administrative functionality over and over again.
Designed for CakePHP developers
One of BakeKit's goals is to feel familiar to anyone who already knows CakePHP.
Plugins, themes, models, controllers, views, and cells work exactly as CakePHP developers expect. There is no proprietary architecture to learn and no custom plugin ecosystem to adapt to.
You only need to make small adjustments when you want to integrate with BakeKit-specific features such as:
- Managing plugin settings through the administration interface
- Registering plugin actions in the administrative navigation
- Exposing CakePHP cells as configurable content blocks
This approach allows developers to continue writing standard CakePHP code while benefiting from additional tooling provided by BakeKit.
Flexible content blocks and regions
BakeKit includes a powerful block and region system that allows content areas to be assembled dynamically.
Blocks can contain:
- Plain text
- HTML content
- Dynamic CakePHP cells
Each block instance can have its own configuration, making it possible to build reusable and configurable widgets without creating custom administration interfaces for every use case.
This provides flexibility for developers while remaining easy to manage for administrators.
Composer integration
BakeKit ships with Composer support built directly into the project setup.
A local bin/composer executable is available, ensuring that dependency management works consistently across environments without relying on a global Composer installation.
When plugins or themes are loaded, BakeKit automatically updates Composer's autoloader, ensuring that newly added classes become available immediately while keeping optimized production autoloading intact.
The result is a workflow that remains familiar to PHP developers while reducing maintenance overhead.
Why CakePHP?
CakePHP continues to be an excellent choice for developers who value productivity, convention-based development, and long-term maintainability.
BakeKit builds on CakePHP because it offers:
✅ Convention Over Configuration
✅ Powerful ORM and database tooling
✅ Authentication, authorization, validation, and testing support
✅ Rapid development without excessive complexity
✅ Long-term stability and mature architecture
Rather than introducing a new way of building applications, BakeKit embraces the CakePHP way and extends it with practical tools that many projects need.
What BakeKit provides
✅ Administration Panel
A modern AdminLTE-based administration interface ready to use from the first installation.
✅ Authentication & Authorization
Users, roles, permissions, and access control are already integrated.
✅ Plugin & Theme Architecture
Build modular applications using familiar CakePHP concepts.
✅ Content Blocks & Regions
Create dynamic layouts powered by text, HTML, or CakePHP cells.
✅ Developer-Friendly Architecture
Clean code, predictable behavior, and complete control over customization.
Who is BakeKit for?
BakeKit is designed for developers who:
- Build custom web applications
- Want to start with a solid administrative foundation
- Prefer CakePHP conventions over proprietary abstractions
- Need flexibility without sacrificing maintainability
- Value clean architecture and long-term project stability
Whether you're creating internal tools, SaaS products, e-commerce solutions, or client projects, BakeKit helps you focus on the unique parts of your application rather than rebuilding common infrastructure.
🚀 What's New in BakeKit 2.0
BakeKit 2.0 is the biggest release so far and introduces numerous architectural improvements, new developer tools, and a simplified administration experience.
✨ New Features
- Themes now define available regions through
config/regions.php - Blocks are managed directly from the theme view via the Blocks button
- Two system menus (Plugins Menu and Custom Menu) are automatically created during installation
- A plugin page can now be configured as the site's homepage via
App.defaultHomepage - New
#[Link(summary: '...', description: '...')]PHP attribute for menu integration - New
#[Resource(label: '...')]PHP attribute for permission resources - Simplified region management with fewer administrative steps
🔧 Improvements
- Updated to CakePHP
5.3 - Improved breadcrumb and navigation behavior throughout the admin panel
- Refactored image processing layer
- Refactored access control system
- Upgraded to AdminLTE 4
- Migrated frontend tooling from Gulp to Vite
🧪 Quality & Testing
- Test coverage increased from 57.75% to 74.11%
- Added
dereuromark/cakephp-ide-helperfor improved IDE support - Continued focus on maintainability, stability, and developer experience
⚠️ Breaking Changes
- Updated CakePHP dependency to
5.3.* - Removed
aliasfield from blocks table - Added
labelcolumn toresourcestable - Added
themecolumn to regions table - Added unique index on
(alias, theme)for regions - Added
#[Link]PHP attribute - Added
#[Resource]PHP attribute - Renamed
CmsPlugintoBasePlugin - Renamed
addCrumb()toaddBreadcrumb() - Renamed configuration key
CmstoSystem - Removed
mobiledetect/mobiledetectlibdependency
Get Started
BakeKit is open source and available on GitHub:
👉 https://github.com/bakewizard/BakeKit
If you're building a CakePHP application and want to start with a production-ready foundation, BakeKit can help you get there faster.
If you can make it, bake it.
BakeKit — a starter kit for building modern CakePHP applications.
Top comments (4)
While I don't mind that you promote your work. I don't appreciate you put others work in the shadow.
The whole section is just about putting down other CMS solutions.
Drupal is know for being modular, people think it is too much of a framework and that it takes to long to set it up. That is why they now have Drupal CMS.
Statamic and Craft CMS are easy to learn CMS solutions and easy to extend.
Symfony is a great choice for all sorts of projects, The example I like to use to counter the enterprise label is the single file framework from the documentation.
With this paragraph you put your own solution down, because you call it a "fully-featured CMS foundation" in your project readme.
Hi David, thank you for taking the time to read the article and share your feedback — I truly appreciate it.
You’re absolutely right: the section on other CMSs and frameworks came across as dismissive, and that wasn’t my intention. I have a lot of respect for projects like Drupal, Statamic, Craft, and Symfony — they’ve helped shape the web, and each offers real strengths depending on the use case.
What I was trying to express is that, for developers like me who prefer a lighter, code-centric foundation — especially in CakePHP — many existing CMSs feel more complex than necessary. But that’s a perspective, not a universal truth, and I could have communicated it with more balance.
Thanks again for calling it out. It means a lot, and it helps me keep BakeKit aligned with the spirit of open source — collaboration, not competition.
I love how BakeKit keeps the power in the developer’s hands instead of locking you into a rigid system. Any plans to support other frameworks, or is it CakePHP all the way?
Thanks so much, @dotallio — I’m really glad that came across! That’s exactly the spirit of BakeKit: giving developers power and flexibility without locking them into anything.
For now, it’s CakePHP all the way — BakeKit is deeply tied to its conventions and plugin architecture. But the philosophy behind it (developer-first, modular, no unnecessary magic) could definitely inspire something similar in other ecosystems down the line. But for now, I want to make the CakePHP experience as smooth and powerful as possible.
Would love to hear what frameworks you’re working with or thinking about!
Appreciate the support — and if you’re building anything with it, I’d love to hear about it!