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
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
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
I've been burned by AI testing tools before. They promise "zero configuration, just point at your app," then spend 20 minutes generating test cases that fail on the login screen. So when I tried TestSprite, I went in skeptical — and came out with a more nuanced take than I expected. Here's my honest dev review after running it on a real project, with specific attention to how it handles locale-sen
Testing tools come and go. Most promise "zero code, full coverage." TestSprite actually made me stop and pay attention — for good reasons and a few frustrating ones. Background: What I Was Testing I was working on a mid-scale web application — a financial dashboard that aggregates payment data for Indonesian SMEs. The app handles IDR (Indonesian Rupiah) currency formatting, date displays in the dd
TL;DR: TestSprite is the most intuitive AI testing platform I've used. The test execution is solid, the dashboard is clean, and the automation works. But if you're building globally, watch out for locale handling gaps. Here's what I found after running it on a real project. I tested TestSprite on a SaaS project with users across 15+ countries. The onboarding was refreshingly simple — no complex se