Documenting my journey of tackling challenges during my software development endeavors.
Gathering all my in-depth reflections on programming, solution architecture, and related topics, arranged in a chronological sequence.
Writing about software, architecture, and the developer experience.
TL;DR Two Laravel backends started serving Flutter apps on the same day — an events...
TL;DR A gate check-in app can't depend on live Wi-Fi: scans must work offline and sync...
A driver-based, testable BayarCash integration pattern from three production Laravel apps — checkout, webhooks, and the recurring-billing reality.
TL;DR Sync must be idempotent. Re-running a gateway sync should converge, not explode on...
TL;DR Syncing config into an API gateway (Kong here) is a converge operation, not an...
TL;DR You can record outgoing mail — sent, delivered-ish, opened, clicked — using...
TL;DR Shipped two a11y wins in laravel-livewire-tables v4.1.0: focus traps on popovers...
TL;DR "Disable" should drain, not delete. Turning off a gateway route or an upstream...
TL;DR Public Livewire tables package: extracted a theme-class seam so Blades stop...
TL;DR Blade templates that branch @if($isTailwind) ... @elseif($isBootstrap) for CSS...
TL;DR Three threads today: a public Livewire tables package jumped to Laravel 13 +...
TL;DR Upstream rappasoft/laravel-livewire-tables marked Livewire 4 support wontfix, so I...
TL;DR A multi-tenant app was resolving the active tenant from the request...
TL;DR A metrics engine had two query paths — a SQL push-down for big datasets, an...
TL;DR Two threads today: an organization layer on top of an existing multi-tenant app, and...
TL;DR Centred a sidebar brand mark in the collapsed rail (open-source starter kit) — pure...
TL;DR Shipped a composer share command + reverse-proxy trust so a local Laravel app can...
TL;DR Exposing a local Laravel app over a public HTTPS tunnel breaks two ways: assets...
TL;DR Pushed commercial rules (free seats, bulk seats, tax) out of code and into config +...
TL;DR Commercial rules — how many free seats a plan gets, whether you can buy seats in...
A deep day, not a wide one. The bulk of the work was a sustained platform build where the same...
Here's a bug with a great property: it works perfectly for almost every link in your email, and...
I spent a long stretch this week building out the storage layer of an observability platform — the...
There's a tension every app hits eventually: some configuration really should live in .env and...
Exposing your app to an AI agent over MCP is basically handing someone a master keyring and trusting...
Two threads today, and they rhyme more than I expected: both are about who gets to do what, and how...
A wide day rather than a deep one — four separate threads across a few projects, each with a lesson...
Performance work has a reputation for being glamorous — the heroic "we cut latency by 80%" story....
Some days the work spreads across a few projects instead of landing as one big feature. Today was...
There's a moment in every app's life where someone asks: "can an AI assistant just talk to this...
I've now built MCP servers into enough Laravel apps to notice the pattern: I keep rewriting the same...
If today had a spine, it was MCP. I shipped the generic MCP toolbox into a public package and stood...
Here's a small thing that cost a disproportionate amount of head-scratching this week: a remote MCP...
I tagged cleaniquecoders/laravel-mcp-kit 1.0.0 today, and most of the work that got it there was...
I spent today building a backup-and-restore feature for a Laravel app that manages multiple API...
Anyone who manages an external system from a Laravel app eventually hits the same uncomfortable...
Most of today went into a user-management overhaul in kickoff — my Laravel starter kit. Flyout CRUD...
Today's work was a small piece of UX that's easy to underestimate: making an admin "browser" page...
Imagine you write a letter in a secret code that only your old house key can read. Then you move. You...
Bundling an admin UI inside a Laravel package is a different game from building one in an app. The...
There's a class of bug that's maddening: it passes every test you have, then crashes in the user's...
Here's a fun one. You build a package that backs up an app's config — the .env plus the settings...
I spent today wiring an MCP server into a Laravel app that manages a Kong API gateway. The...
A gateway-agnostic subscription and invoicing engine for Laravel. No per-gateway sub-packages — a payment gateway is one contract you implement per app. Ships a bundled local gateway so the full subscribe → pay → invoice → receipt loop runs before you've signed up with any merchant.
A pure-PHP toolkit for encrypting, masking, redacting, and tokenizing personal data — built as plain classes with explicit inputs and outputs, so it drops into Laravel, Symfony, a queue worker, or a CLI script unchanged.
A solid screenshot-to-BRD workflow for vibe coders, the two failure modes nobody talks about, and the missing step that separates a demo from a system.
Blueprint before code. How I went from drowning in ideas to shipping structured products using Claude, CLAUDE.md, and a phase-based workflow.
A Laravel package that exposes allowlisted Artisan commands through a Livewire-powered web UI with full audit logging, queued execution, and notifications.
How I automated convention syncing across multiple Kickoff-based Laravel projects using a custom Claude Code skill — so I never have to update CLAUDE.md one-by-one again.
I've been building with Claude Code for a while now, and one thing kept bothering me: every new...
Ever spent hours going back and forth with design tools trying to nail down a logo? I built a Claude...
I maintain 20+ open-source packages. Every one of them needs documentation. And every time I start a...
I've been building software for over a decade. Laravel packages, enterprise systems, SaaS tools — you...
I'm excited to share my latest Laravel package - a driver-based document generation and PDF...
Keeping documentation tidy, readable, and easy to navigate shouldn’t feel like a chore. But in most...
Laravel Running Number v3.0 is finally here, and this release introduces the kind of improvements...
You know that moment when you're building eligibility rules and realize you've got 15 different...
Business eligibility logic has a habit of hiding in plain sight. It starts with a few if statements...
Building dynamic documents in Laravel applications has always been a challenge. Whether you're...
As our systems grow, maintaining high-quality, performant database schemas becomes a massive pain...
Working with LDAP/Active Directory authentication can be frustrating. When credentials fail, you’re...
In real-world Laravel applications, it’s common to work with complex data structures. Sometimes, we...
I’m excited to share my latest open‑source package: Socialite ReCall 🎉 If you’ve ever found yourself...
Yesterday, I shared a simple tool called Laravel Kickstart — a plain PHP file (configure.php)...
When starting a new Laravel project, I always found myself repeating the same steps: installing...
Ensuring clean, maintainable code is vital in any Laravel project. While PHPStan is an excellent...
Managing tasks in GitHub Projects (Beta) is powerful — but adding a long list of draft issues...
What Are Environment Variables? Environment variables are key-value pairs injected at...
Managing API tokens across multiple providers can get messy — especially when it comes to securing...
When building interactive forms in Laravel applications, dependent dropdowns — where the options in...
Managing route definitions in a large Laravel application can quickly become overwhelming—especially...
When you're managing role-based access control (RBAC) in a Laravel app using the excellent Spatie...
Introduction Automating workflows has become an essential part of modern businesses, and n8n is a...
Content Security Policy (CSP) is a crucial security feature that helps protect your web applications...
Code quality and maintainability are crucial aspects of modern software development. In this post,...
Hi devs! 👋 Today, I’m beyond excited to share something special with you. After years of being...
Prayer times are essential information for Muslims worldwide, helping them organize their daily...
Managing navigation menus can become challenging in Laravel applications as they grow, especially...
Laravel’s routing system is one of its core strengths, providing an elegant way to define and handle...
Attributes in PHP simplify code configuration by allowing you to annotate code elements with metadata...
Hey everyone! 👋 I’m excited (and a bit nervous!) to share that I’m now open for sponsorships! After...
Managing environment variables is crucial for configuring applications across different environments,...
I'm excited to introduce Kong Admin API for PHP, a powerful and framework-independent PHP package...
In today’s development landscape, APIs are the backbone of many applications, enabling integrations...
When developing PHP and Laravel applications, having the right tools in your code editor can...
Introduction Maintaining an up-to-date changelog is essential for documenting project...
For developers looking to keep their Laravel codebase clean, maintainable, and organized, Laravel...
When building modern applications, managing profile information like addresses, phone numbers,...
Setting up a Laravel project can be repetitive and time-consuming. To address this, I’ve developed a...
Managing and sharing long, cluttered URLs can be a hassle—this is where Shrinkr steps in. Shrinkr is...
When developing applications that involve both Docker containers and services running on your local...
Tracking your website’s uptime and SSL certificate validity has never been easier with AppPulse....
Hey Laravel developers! 🚀 Managing SQL views in your Laravel migrations just got a whole lot easier...
Hey, Laravel developers! 🚀 I’m excited to introduce Traitify, a newly released Laravel package...
Translations play a crucial role in making your Laravel application accessible to users in multiple...
PHP enums are a powerful tool for defining a fixed set of constants while enabling you to attach...
When managing NGINX-secured areas, implementing Basic Authentication is a straightforward yet...
QR codes are a practical tool for sharing data, and implementing them in a Laravel application can be...
In today's world of continuous integration and deployment, automating the process of pushing code...
In modern web applications, using UUIDs (Universally Unique Identifiers) as primary keys offers...