SMS remains one of the most reliable communication channels available today, with open rates exceeding 90%. Whether you are building an OTP SMS API for authentication, setting up transactional alerts, or automating marketing workflows, a robust SMS API integration is a powerful addition to any stack. In this tutorial, we will explore how a REST SMS API works and walk through a practical implementa
If you've worked with Drupal long enough, you've faced this decision: Do I build a custom module for this or can ECA handle it? Use ECA When The logic is workflow-based Non-developers need to maintain it ECA workflows live in the admin UI. Your client or site admin can read, modify, and debug them without touching code. A custom module cannot offer that. Speed matters A workflow that would tak
Multi-tenancy is the economic engine of SaaS. Sharing infrastructure across customers reduces cost and simplifies operations. But it introduces a risk that can end your business overnight: tenant data leakage. When one customer can see another customer's data — even accidentally — the consequences are severe. Regulatory fines, contract termination, public disclosure requirements, and irreparable t
The first article on this blog explained how it was built in 30 minutes with Claude Code. Naturally, a blog needs comments. Same constraints: no database, no external dependencies, no Disqus tracking visitors. Just PHP + JSON files. Built in one session with Claude Code — the interesting part wasn't the code, it was the security audit that followed. A comment system without a database seems trivia
Originally published at hafiz.dev Every SaaS app eventually hits the same question: how do you make one application serve multiple customers with separate data? If you're building with Filament, the answer is closer than you think. Filament ships with a built-in tenancy system that handles tenant switching, automatic resource scoping, registration, and profile management out of the box. But here's
I was skeptical at first. Not about AI in general — but about whether it would actually fit into my workflow. I work mostly with legacy PHP and jQuery. The kind of codebase that was written before half the frameworks people talk about today even existed. Some Vue.js here and there in newer parts, but a lot of the core is raw PHP, procedural logic, and jQuery doing things you probably don't want to
Introduction Backup plugins are useful — but they are not a real disaster‑recovery strategy. In this article, I break down the real reasons why backup plugins fail, what actually happens during a server‑level crash, and how to build a recovery plan that works in the real world. Backup Plugins Only Work When WordPress Works A backup plugin depends on: WordPress running PHP running MySQL running the
Stop clicking through wp-admin for every small task. WP-CLI is a command-line tool that lets you manage WordPress sites faster — all from your terminal. Why WP-CLI? Problems It Solves Is It Good or Bad? Setup & Installation Must-Know Commands A Quick Real-World Use Case Your First Custom Script What's Next Every WordPress developer knows the pain — update 12 plugins, flush cache, reset a password,