<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: bakewizard</title>
    <description>The latest articles on DEV Community by bakewizard (@bakewizard).</description>
    <link>https://dev.to/bakewizard</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3291837%2Fb7f1c611-1063-4e6d-b63e-52bd51087f71.jpeg</url>
      <title>DEV Community: bakewizard</title>
      <link>https://dev.to/bakewizard</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bakewizard"/>
    <language>en</language>
    <item>
      <title>BakeKit — A Starter Kit for CakePHP Developers</title>
      <dc:creator>bakewizard</dc:creator>
      <pubDate>Tue, 24 Jun 2025 20:56:25 +0000</pubDate>
      <link>https://dev.to/bakewizard/every-application-deserves-a-solid-foundation-2l36</link>
      <guid>https://dev.to/bakewizard/every-application-deserves-a-solid-foundation-2l36</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User authentication and password recovery&lt;/li&gt;
&lt;li&gt;Role-based access control&lt;/li&gt;
&lt;li&gt;Administration interfaces&lt;/li&gt;
&lt;li&gt;Navigation menus&lt;/li&gt;
&lt;li&gt;Application settings&lt;/li&gt;
&lt;li&gt;Media management&lt;/li&gt;
&lt;li&gt;Dashboard widgets&lt;/li&gt;
&lt;li&gt;Theming support&lt;/li&gt;
&lt;li&gt;Localization and logging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;h2&gt;
  
  
  Introducing BakeKit — If you can make it, bake it!
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;BakeKit&lt;/strong&gt; is an open-source starter kit built on top of CakePHP.&lt;/p&gt;

&lt;p&gt;Its purpose is simple: provide the infrastructure that most applications need from day one, while staying as close as possible to standard CakePHP conventions.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;h2&gt;
  
  
  Designed for CakePHP developers
&lt;/h2&gt;

&lt;p&gt;One of BakeKit's goals is to feel familiar to anyone who already knows CakePHP.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;You only need to make small adjustments when you want to integrate with BakeKit-specific features such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing plugin settings through the administration interface&lt;/li&gt;
&lt;li&gt;Registering plugin actions in the administrative navigation&lt;/li&gt;
&lt;li&gt;Exposing CakePHP cells as configurable content blocks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach allows developers to continue writing standard CakePHP code while benefiting from additional tooling provided by BakeKit.&lt;/p&gt;




&lt;h2&gt;
  
  
  Flexible content blocks and regions
&lt;/h2&gt;

&lt;p&gt;BakeKit includes a powerful block and region system that allows content areas to be assembled dynamically.&lt;/p&gt;

&lt;p&gt;Blocks can contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plain text&lt;/li&gt;
&lt;li&gt;HTML content&lt;/li&gt;
&lt;li&gt;Dynamic CakePHP cells&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;This provides flexibility for developers while remaining easy to manage for administrators.&lt;/p&gt;




&lt;h2&gt;
  
  
  Composer integration
&lt;/h2&gt;

&lt;p&gt;BakeKit ships with Composer support built directly into the project setup.&lt;/p&gt;

&lt;p&gt;A local &lt;code&gt;bin/composer&lt;/code&gt; executable is available, ensuring that dependency management works consistently across environments without relying on a global Composer installation.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The result is a workflow that remains familiar to PHP developers while reducing maintenance overhead.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why CakePHP?
&lt;/h2&gt;

&lt;p&gt;CakePHP continues to be an excellent choice for developers who value productivity, convention-based development, and long-term maintainability.&lt;/p&gt;

&lt;p&gt;BakeKit builds on CakePHP because it offers:&lt;/p&gt;

&lt;p&gt;✅ Convention Over Configuration&lt;/p&gt;

&lt;p&gt;✅ Powerful ORM and database tooling&lt;/p&gt;

&lt;p&gt;✅ Authentication, authorization, validation, and testing support&lt;/p&gt;

&lt;p&gt;✅ Rapid development without excessive complexity&lt;/p&gt;

&lt;p&gt;✅ Long-term stability and mature architecture&lt;/p&gt;

&lt;p&gt;Rather than introducing a new way of building applications, BakeKit embraces the CakePHP way and extends it with practical tools that many projects need.&lt;/p&gt;




&lt;h2&gt;
  
  
  What BakeKit provides
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ Administration Panel
&lt;/h3&gt;

&lt;p&gt;A modern AdminLTE-based administration interface ready to use from the first installation.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Authentication &amp;amp; Authorization
&lt;/h3&gt;

&lt;p&gt;Users, roles, permissions, and access control are already integrated.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Plugin &amp;amp; Theme Architecture
&lt;/h3&gt;

&lt;p&gt;Build modular applications using familiar CakePHP concepts.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Content Blocks &amp;amp; Regions
&lt;/h3&gt;

&lt;p&gt;Create dynamic layouts powered by text, HTML, or CakePHP cells.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Developer-Friendly Architecture
&lt;/h3&gt;

&lt;p&gt;Clean code, predictable behavior, and complete control over customization.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who is BakeKit for?
&lt;/h2&gt;

&lt;p&gt;BakeKit is designed for developers who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build custom web applications&lt;/li&gt;
&lt;li&gt;Want to start with a solid administrative foundation&lt;/li&gt;
&lt;li&gt;Prefer CakePHP conventions over proprietary abstractions&lt;/li&gt;
&lt;li&gt;Need flexibility without sacrificing maintainability&lt;/li&gt;
&lt;li&gt;Value clean architecture and long-term project stability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What's New in BakeKit 2.0
&lt;/h2&gt;

&lt;p&gt;BakeKit 2.0 is the biggest release so far and introduces numerous architectural improvements, new developer tools, and a simplified administration experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Themes now define available regions through &lt;code&gt;config/regions.php&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Blocks are managed directly from the theme view via the &lt;strong&gt;Blocks&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;Two system menus (&lt;em&gt;Plugins Menu&lt;/em&gt; and &lt;em&gt;Custom Menu&lt;/em&gt;) are automatically created during installation&lt;/li&gt;
&lt;li&gt;A plugin page can now be configured as the site's homepage via &lt;code&gt;App.defaultHomepage&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;#[Link(summary: '...', description: '...')]&lt;/code&gt; PHP attribute for menu integration&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;#[Resource(label: '...')]&lt;/code&gt; PHP attribute for permission resources&lt;/li&gt;
&lt;li&gt;Simplified region management with fewer administrative steps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔧 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Updated to CakePHP &lt;code&gt;5.3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Improved breadcrumb and navigation behavior throughout the admin panel&lt;/li&gt;
&lt;li&gt;Refactored image processing layer&lt;/li&gt;
&lt;li&gt;Refactored access control system&lt;/li&gt;
&lt;li&gt;Upgraded to AdminLTE 4&lt;/li&gt;
&lt;li&gt;Migrated frontend tooling from Gulp to Vite&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧪 Quality &amp;amp; Testing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Test coverage increased from &lt;strong&gt;57.75%&lt;/strong&gt; to &lt;strong&gt;74.11%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;dereuromark/cakephp-ide-helper&lt;/code&gt; for improved IDE support&lt;/li&gt;
&lt;li&gt;Continued focus on maintainability, stability, and developer experience&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚠️ Breaking Changes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Updated CakePHP dependency to &lt;code&gt;5.3.*&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Removed &lt;code&gt;alias&lt;/code&gt; field from blocks table&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;label&lt;/code&gt; column to &lt;code&gt;resources&lt;/code&gt; table&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;theme&lt;/code&gt; column to regions table&lt;/li&gt;
&lt;li&gt;Added unique index on &lt;code&gt;(alias, theme)&lt;/code&gt; for regions&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;#[Link]&lt;/code&gt; PHP attribute&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;#[Resource]&lt;/code&gt; PHP attribute&lt;/li&gt;
&lt;li&gt;Renamed &lt;code&gt;CmsPlugin&lt;/code&gt; to &lt;code&gt;BasePlugin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Renamed &lt;code&gt;addCrumb()&lt;/code&gt; to &lt;code&gt;addBreadcrumb()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Renamed configuration key &lt;code&gt;Cms&lt;/code&gt; to &lt;code&gt;System&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Removed &lt;code&gt;mobiledetect/mobiledetectlib&lt;/code&gt; dependency&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;BakeKit is open source and available on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/bakewizard/BakeKit" rel="noopener noreferrer"&gt;https://github.com/bakewizard/BakeKit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're building a CakePHP application and want to start with a production-ready foundation, BakeKit can help you get there faster.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you can make it, bake it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BakeKit — a starter kit for building modern CakePHP applications.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>php</category>
      <category>cakephp</category>
      <category>webdev</category>
      <category>backend</category>
    </item>
  </channel>
</rss>
