Blog
Writing
Field notes on shipping AI integrations, WordPress plugins, and full-stack web products — opinionated, with code that actually runs.
Why I built three full-stack products back to back
One React Native + Python wallet and two MERN/Next.js web apps, built solo in a short stretch — what shipping three different products in a row actually taught me versus writing three more tutorials.
Adding AI-generated content to a product without it feeling bolted on
AI-generated workout plans, reports, or drafts are easy to demo and hard to ship well. The difference is almost never the prompt — it's what happens to the output after the model returns it.
Designing a microservices backend in Python: lessons from building a digital wallet
Six FastAPI services, one gateway, and the boundaries that actually mattered — what building a multi-currency wallet with fraud screening taught me about splitting a backend by responsibility instead of by guesswork.
Two-sided auth in Next.js: role-based routing patterns for SaaS
Trainer or client, admin or member — when one app serves two different kinds of users, routing and middleware need to enforce roles at more than one layer. Patterns from building Reppod on Next.js 16 and Auth.js.
Building a multi-tenant SaaS on the MERN stack: lessons from WorkNavo
How to model organizations, roles, and scoped data access when one user can belong to several workspaces — with real patterns from a MongoDB + Express + React app.
The Claude API: a practical guide for developers
A hands-on overview of the Claude API features that actually matter in production — streaming, prompt caching, tool use, and extended thinking — with working examples for each.
React patterns inside Gutenberg blocks — what transfers and what doesn't
Gutenberg uses React but the patterns are different. Here is what React developers need to unlearn when writing blocks.
Freemius vs WooCommerce for WordPress plugin licensing — a real comparison
Two ways to monetise a WordPress plugin. One is built for it. Here is the comparison after using both.
Adding AI to a WordPress plugin with the Claude API
A practical walkthrough for adding Claude-powered features to an existing WordPress plugin — server-side PHP requests, a secure REST endpoint, and a Gutenberg block that consumes it.
WordPress vs Next.js — how to choose for a client project in 2026
Not a framework war. A practical decision framework based on client needs, budget, and who maintains it after launch.
AI tools for WordPress developers in 2026 — what actually works
Most AI tool roundups are useless. This one covers what works specifically for WordPress development in 2026 — Claude Code, Cursor, Copilot, where each fits, and the smaller list of things AI still gets wrong.
How to ship a WordPress plugin with free and Pro tiers — the Freemius way
Rolling your own licensing is a mistake in 2026. Here is the complete setup for free and Pro tiers using Freemius — folder structure, PHP gating, and WP.org strategy.
Gutenberg block architecture patterns I use in production
Most Gutenberg tutorials teach patterns that break at scale. Here are the architectural decisions that actually hold up across a plugin's lifetime.