<?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: Segun Mayor</title>
    <description>The latest articles on DEV Community by Segun Mayor (@segunmayor).</description>
    <link>https://dev.to/segunmayor</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F902609%2Fae30cc98-8918-4f7f-a3f1-cb9448ac9ad9.png</url>
      <title>DEV Community: Segun Mayor</title>
      <link>https://dev.to/segunmayor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/segunmayor"/>
    <language>en</language>
    <item>
      <title>Why I Built Bamise Instead of Using Laravel</title>
      <dc:creator>Segun Mayor</dc:creator>
      <pubDate>Thu, 28 May 2026 11:20:16 +0000</pubDate>
      <link>https://dev.to/segunmayor/why-i-built-bamise-instead-of-using-laravel-4eeb</link>
      <guid>https://dev.to/segunmayor/why-i-built-bamise-instead-of-using-laravel-4eeb</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56gntzd4zyo8cwiadja6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56gntzd4zyo8cwiadja6.png" alt=" " width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Laravel is one of the best things that ever happened to PHP.&lt;/p&gt;

&lt;p&gt;It transformed modern PHP development, introduced elegant developer experience patterns, improved the ecosystem massively, and made web application development enjoyable again.&lt;/p&gt;

&lt;p&gt;So the obvious question becomes:&lt;/p&gt;

&lt;p&gt;If Laravel already exists, why build Bamise?&lt;/p&gt;

&lt;p&gt;The answer is not because Laravel is bad.&lt;/p&gt;

&lt;p&gt;It is because I wanted to solve a different engineering problem.&lt;/p&gt;

&lt;p&gt;The Problem I Kept Seeing&lt;br&gt;
Over the years, I worked on many business applications where a huge percentage of the codebase looked almost identical:&lt;/p&gt;

&lt;p&gt;create operations&lt;/p&gt;

&lt;p&gt;update operations&lt;/p&gt;

&lt;p&gt;delete operations&lt;/p&gt;

&lt;p&gt;validation&lt;/p&gt;

&lt;p&gt;authorization&lt;/p&gt;

&lt;p&gt;middleware&lt;/p&gt;

&lt;p&gt;audit logging&lt;/p&gt;

&lt;p&gt;request filtering&lt;/p&gt;

&lt;p&gt;repetitive CRUD controllers&lt;/p&gt;

&lt;p&gt;repetitive admin dashboards&lt;/p&gt;

&lt;p&gt;The same patterns repeated again and again across projects.&lt;/p&gt;

&lt;p&gt;Even with Laravel’s excellent tooling, enterprise CRUD-heavy systems still required a large amount of repetitive wiring and security hardening.&lt;/p&gt;

&lt;p&gt;I wanted a system where CRUD operations became infrastructure instead of application code.&lt;/p&gt;

&lt;p&gt;That idea eventually evolved into Bamise.&lt;/p&gt;

&lt;p&gt;Bamise Was Built Around a Different Philosophy&lt;br&gt;
Laravel is a general-purpose framework.&lt;/p&gt;

&lt;p&gt;Bamise is intentionally focused on secure CRUD automation and enterprise application architecture.&lt;/p&gt;

&lt;p&gt;The goal is not to replace Laravel.&lt;/p&gt;

&lt;p&gt;The goal is to provide a framework and library ecosystem optimized for:&lt;/p&gt;

&lt;p&gt;enterprise CRUD systems&lt;/p&gt;

&lt;p&gt;admin platforms&lt;/p&gt;

&lt;p&gt;dashboards&lt;/p&gt;

&lt;p&gt;RBAC-driven systems&lt;/p&gt;

&lt;p&gt;secure internal tools&lt;/p&gt;

&lt;p&gt;multi-module business applications&lt;/p&gt;

&lt;p&gt;auditable workflows&lt;/p&gt;

&lt;p&gt;Security Was Designed Into the Core&lt;br&gt;
One thing I wanted from the beginning was security as a default architectural concern — not something added later.&lt;/p&gt;

&lt;p&gt;Bamise was designed with:&lt;/p&gt;

&lt;p&gt;CSRF protection&lt;/p&gt;

&lt;p&gt;RBAC authorization&lt;/p&gt;

&lt;p&gt;audit logging&lt;/p&gt;

&lt;p&gt;middleware pipelines&lt;/p&gt;

&lt;p&gt;request validation&lt;/p&gt;

&lt;p&gt;event-driven hooks&lt;/p&gt;

&lt;p&gt;request signing&lt;/p&gt;

&lt;p&gt;rate limiting&lt;/p&gt;

&lt;p&gt;security-first CRUD execution&lt;/p&gt;

&lt;p&gt;built directly into the framework architecture.&lt;/p&gt;

&lt;p&gt;The objective was simple:&lt;/p&gt;

&lt;p&gt;secure-by-default CRUD systems.&lt;/p&gt;

&lt;p&gt;I Wanted Enterprise Engineering Standards&lt;br&gt;
Another major goal was engineering discipline.&lt;/p&gt;

&lt;p&gt;Many frameworks are easy to start with, but large enterprise systems eventually become difficult to maintain if architecture boundaries are weak.&lt;/p&gt;

&lt;p&gt;Bamise was built around:&lt;/p&gt;

&lt;p&gt;SOLID principles&lt;/p&gt;

&lt;p&gt;Hexagonal architecture&lt;/p&gt;

&lt;p&gt;PSR standards&lt;/p&gt;

&lt;p&gt;modular components&lt;/p&gt;

&lt;p&gt;dependency inversion&lt;/p&gt;

&lt;p&gt;constructor dependency injection&lt;/p&gt;

&lt;p&gt;test-first validation&lt;/p&gt;

&lt;p&gt;strict static analysis&lt;/p&gt;

&lt;p&gt;The framework also went through extensive quality verification:&lt;/p&gt;

&lt;p&gt;PHPUnit testing&lt;/p&gt;

&lt;p&gt;mutation testing&lt;/p&gt;

&lt;p&gt;PHPStan strict analysis&lt;/p&gt;

&lt;p&gt;Psalm strict analysis&lt;/p&gt;

&lt;p&gt;security audits&lt;/p&gt;

&lt;p&gt;concurrency reviews&lt;/p&gt;

&lt;p&gt;This was important to me because I wanted Bamise to feel reliable under real production conditions.&lt;/p&gt;

&lt;p&gt;Bamise Is Both a Framework and a Library&lt;br&gt;
One design decision I love is that Bamise can evolve into a modular ecosystem.&lt;/p&gt;

&lt;p&gt;Developers should be able to use:&lt;/p&gt;

&lt;p&gt;the entire framework&lt;/p&gt;

&lt;p&gt;or individual components independently&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;query builder&lt;/p&gt;

&lt;p&gt;events&lt;/p&gt;

&lt;p&gt;security&lt;/p&gt;

&lt;p&gt;middleware&lt;/p&gt;

&lt;p&gt;RBAC&lt;/p&gt;

&lt;p&gt;audit systems&lt;/p&gt;

&lt;p&gt;This gives developers flexibility depending on project size and architecture preferences.&lt;/p&gt;

&lt;p&gt;Why Not Just Use Laravel?&lt;br&gt;
Honestly, Laravel is excellent.&lt;/p&gt;

&lt;p&gt;If someone is building a startup, content platform, SaaS product, or rapid MVP, Laravel is still one of the best choices available.&lt;/p&gt;

&lt;p&gt;Bamise exists because I wanted a framework shaped specifically around:&lt;/p&gt;

&lt;p&gt;enterprise CRUD automation&lt;/p&gt;

&lt;p&gt;secure workflows&lt;/p&gt;

&lt;p&gt;architectural discipline&lt;/p&gt;

&lt;p&gt;reusable infrastructure patterns&lt;/p&gt;

&lt;p&gt;reduced repetitive business logic&lt;/p&gt;

&lt;p&gt;In many ways, Bamise reflects the type of systems I repeatedly found myself building.&lt;/p&gt;

&lt;p&gt;The Vision for Bamise&lt;br&gt;
The long-term vision is not just another PHP framework.&lt;/p&gt;

&lt;p&gt;The vision is a secure, modular enterprise ecosystem where developers can build large CRUD-heavy applications with less repetitive code and stronger architectural guarantees.&lt;/p&gt;

&lt;p&gt;Future goals include:&lt;/p&gt;

&lt;p&gt;plugin systems&lt;/p&gt;

&lt;p&gt;adapters&lt;/p&gt;

&lt;p&gt;generators&lt;/p&gt;

&lt;p&gt;developer tooling&lt;/p&gt;

&lt;p&gt;multi-tenancy&lt;/p&gt;

&lt;p&gt;distributed services&lt;/p&gt;

&lt;p&gt;scalable enterprise integrations&lt;/p&gt;

&lt;p&gt;My Final Thoughts&lt;br&gt;
Bamise was not created to compete emotionally with Laravel or CodeIgniter.&lt;/p&gt;

&lt;p&gt;It was created to explore a different approach to building enterprise CRUD systems in PHP.&lt;/p&gt;

&lt;p&gt;Laravel proved PHP can be elegant.&lt;/p&gt;

&lt;p&gt;Bamise aims to prove enterprise CRUD systems can also become more secure, modular, and automated by default.&lt;/p&gt;

&lt;p&gt;And this is only the beginning. We will keep making it better for everyone to use.&lt;/p&gt;

&lt;p&gt;Check Bamise out &lt;a href="https://github.com/segunmayor/bamise.git" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>bamise</category>
      <category>crud</category>
      <category>framework</category>
    </item>
  </channel>
</rss>
