<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shawab Khan — Notes from the workbench</title>
    <link>https://shawab.space/blog/</link>
    <atom:link href="https://shawab.space/blog/feed.xml" rel="self" type="application/rss+xml"/>
    <description>Practical, code-first articles on WordPress, React, Next.js, AI integration, Node.js, PHP, DevOps and web performance.</description>
    <language>en</language>
    <lastBuildDate>Sun, 30 Aug 2026 09:00:00 +0530</lastBuildDate>
    <item>
      <title>Building Scalable RAG Pipelines with Next.js and pgvector</title>
      <link>https://shawab.space/blog/building-scalable-rag-pipelines-nextjs</link>
      <guid isPermaLink="true">https://shawab.space/blog/building-scalable-rag-pipelines-nextjs</guid>
      <pubDate>Fri, 28 Aug 2026 09:00:00 +0530</pubDate>
      <category>AI &amp; ML</category>
      <description>A production blueprint for Retrieval-Augmented Generation in Next.js: chunking, embeddings, pgvector hybrid search, streaming answers and caching. Code included.</description>
    </item>
    <item>
      <title>Node.js vs Bun in 2026: Benchmarks, Compatibility and Migration Trade-offs</title>
      <link>https://shawab.space/blog/nodejs-vs-bun-2026-benchmarks</link>
      <guid isPermaLink="true">https://shawab.space/blog/nodejs-vs-bun-2026-benchmarks</guid>
      <pubDate>Tue, 25 Aug 2026 09:00:00 +0530</pubDate>
      <category>Backend</category>
      <description>I benchmarked HTTP throughput, install speed and cold starts on the same hardware. Where Bun genuinely wins, where Node still leads, and how to migrate incrementally.</description>
    </item>
    <item>
      <title>Dockerizing PHP and WordPress for Local Development and Production</title>
      <link>https://shawab.space/blog/dockerize-php-wordpress-development-production</link>
      <guid isPermaLink="true">https://shawab.space/blog/dockerize-php-wordpress-development-production</guid>
      <pubDate>Sat, 22 Aug 2026 09:00:00 +0530</pubDate>
      <category>DevOps</category>
      <description>A Docker Compose stack with Nginx, PHP-FPM, MySQL and Redis for local work, plus a multi-stage production image that is small, cache-friendly and fast to deploy.</description>
    </item>
    <item>
      <title>Model Context Protocol Explained: Build Your First MCP Server</title>
      <link>https://shawab.space/blog/model-context-protocol-mcp-server-tutorial</link>
      <guid isPermaLink="true">https://shawab.space/blog/model-context-protocol-mcp-server-tutorial</guid>
      <pubDate>Fri, 21 Aug 2026 09:00:00 +0530</pubDate>
      <category>AI &amp; ML</category>
      <description>Learn what the Model Context Protocol is, why it replaced bespoke tool integrations, and build a TypeScript MCP server that exposes WordPress data to Claude and Cursor.</description>
    </item>
    <item>
      <title>React Server Components Explained: The Mental Model You Actually Need</title>
      <link>https://shawab.space/blog/react-server-components-explained</link>
      <guid isPermaLink="true">https://shawab.space/blog/react-server-components-explained</guid>
      <pubDate>Tue, 18 Aug 2026 09:00:00 +0530</pubDate>
      <category>Frontend</category>
      <description>Server vs client components, the RSC payload, where data fetching belongs, and a migration path from a client-only React app. Clear rules, real code, common mistakes.</description>
    </item>
    <item>
      <title>Headless WordPress with Next.js: The Complete Architecture Guide</title>
      <link>https://shawab.space/blog/headless-wordpress-nextjs-architecture-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/headless-wordpress-nextjs-architecture-guide</guid>
      <pubDate>Sat, 15 Aug 2026 09:00:00 +0530</pubDate>
      <category>Architecture</category>
      <description>WPGraphQL vs REST, ISR with on-demand revalidation from WordPress hooks, preview mode, image handling and the hosting cost model. Built from real client migrations.</description>
    </item>
    <item>
      <title>Integrating LLM APIs into PHP and WordPress: A Practical Guide</title>
      <link>https://shawab.space/blog/integrating-llm-apis-php-wordpress</link>
      <guid isPermaLink="true">https://shawab.space/blog/integrating-llm-apis-php-wordpress</guid>
      <pubDate>Wed, 12 Aug 2026 09:00:00 +0530</pubDate>
      <category>AI &amp; ML</category>
      <description>Add AI features to PHP and WordPress safely: a cURL client with retries, streaming via SSE, prompt caching, cost control and a real content-summariser plugin walkthrough.</description>
    </item>
    <item>
      <title>Core Web Vitals in 2026: How to Fix INP, LCP and CLS for Good</title>
      <link>https://shawab.space/blog/core-web-vitals-2026-inp-lcp-cls-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/core-web-vitals-2026-inp-lcp-cls-guide</guid>
      <pubDate>Mon, 10 Aug 2026 09:00:00 +0530</pubDate>
      <category>Performance</category>
      <description>A diagnosis-first approach to Core Web Vitals: find the real INP culprit with the Long Animation Frames API, preload the LCP image correctly and kill layout shift.</description>
    </item>
    <item>
      <title>Building a Production-Grade REST API with Node.js, Express and PostgreSQL</title>
      <link>https://shawab.space/blog/production-rest-api-nodejs-postgresql</link>
      <guid isPermaLink="true">https://shawab.space/blog/production-rest-api-nodejs-postgresql</guid>
      <pubDate>Sat, 08 Aug 2026 09:00:00 +0530</pubDate>
      <category>Backend</category>
      <description>Not another todo API. Layered architecture, validation, connection pooling, idempotency keys, pagination, structured logging and graceful shutdown, with runnable code.</description>
    </item>
    <item>
      <title>Next.js App Router Caching Guide: Stop Fighting Stale Data</title>
      <link>https://shawab.space/blog/nextjs-app-router-caching-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/nextjs-app-router-caching-guide</guid>
      <pubDate>Wed, 05 Aug 2026 09:00:00 +0530</pubDate>
      <category>Frontend</category>
      <description>The four Next.js caches explained with diagrams: request memoisation, data cache, full route cache and router cache. When to use revalidateTag, ISR and dynamic rendering.</description>
    </item>
    <item>
      <title>How to Build a Developer Portfolio Website That Actually Gets You Hired</title>
      <link>https://shawab.space/blog/developer-portfolio-website-seo-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/developer-portfolio-website-seo-guide</guid>
      <pubDate>Mon, 03 Aug 2026 09:00:00 +0530</pubDate>
      <category>Career</category>
      <description>What hiring managers and Google both want from a developer portfolio: project case studies, technical SEO, schema markup, performance budget and the pages that convert.</description>
    </item>
    <item>
      <title>Why Custom WordPress Themes Still Outperform Page Builders in 2026</title>
      <link>https://shawab.space/blog/why-custom-wordpress-themes-outperform-page-builders</link>
      <guid isPermaLink="true">https://shawab.space/blog/why-custom-wordpress-themes-outperform-page-builders</guid>
      <pubDate>Sat, 01 Aug 2026 09:00:00 +0530</pubDate>
      <category>Performance</category>
      <description>How replacing heavy visual builders with custom PHP themes and optimised grids cut load time by over 60% and fixed Core Web Vitals for real client sites.</description>
    </item>
    <item>
      <title>System Design Fundamentals: Caching, Queues and Rate Limiting Explained</title>
      <link>https://shawab.space/blog/system-design-fundamentals-caching-queues-rate-limiting</link>
      <guid isPermaLink="true">https://shawab.space/blog/system-design-fundamentals-caching-queues-rate-limiting</guid>
      <pubDate>Sat, 01 Aug 2026 09:00:00 +0530</pubDate>
      <category>Architecture</category>
      <description>The three building blocks behind almost every scalable system, explained with diagrams and code: cache-aside vs write-through, queue back-pressure and token-bucket limiters.</description>
    </item>
    <item>
      <title>AI Agents with Tool Calling: Architecture Patterns That Actually Work</title>
      <link>https://shawab.space/blog/ai-agents-tool-calling-architecture-patterns</link>
      <guid isPermaLink="true">https://shawab.space/blog/ai-agents-tool-calling-architecture-patterns</guid>
      <pubDate>Thu, 30 Jul 2026 09:00:00 +0530</pubDate>
      <category>AI &amp; ML</category>
      <description>Move beyond chatbot demos. Compare the ReAct loop, planner-executor and router patterns for AI agents, with a TypeScript tool-calling loop, guardrails and cost limits.</description>
    </item>
    <item>
      <title>CI/CD with GitHub Actions: Test, Build and Deploy to AWS</title>
      <link>https://shawab.space/blog/github-actions-ci-cd-deploy-aws</link>
      <guid isPermaLink="true">https://shawab.space/blog/github-actions-ci-cd-deploy-aws</guid>
      <pubDate>Sun, 26 Jul 2026 09:00:00 +0530</pubDate>
      <category>DevOps</category>
      <description>A complete pipeline: lint and test on pull requests, build a Docker image, push to ECR, deploy with zero downtime and roll back on failure. OIDC, no long-lived keys.</description>
    </item>
    <item>
      <title>HTMX vs React: Choosing the Right Interactivity Model in 2026</title>
      <link>https://shawab.space/blog/htmx-vs-react-when-to-use-which</link>
      <guid isPermaLink="true">https://shawab.space/blog/htmx-vs-react-when-to-use-which</guid>
      <pubDate>Wed, 22 Jul 2026 09:00:00 +0530</pubDate>
      <category>Frontend</category>
      <description>An honest comparison from someone who ships both. Hypermedia vs component state, SEO, team skills, and the decision matrix I use for client projects, including this site.</description>
    </item>
    <item>
      <title>Integrating React Components into Legacy PHP Applications</title>
      <link>https://shawab.space/blog/integrating-react-components-into-legacy-php</link>
      <guid isPermaLink="true">https://shawab.space/blog/integrating-react-components-into-legacy-php</guid>
      <pubDate>Sat, 18 Jul 2026 09:00:00 +0530</pubDate>
      <category>Frontend</category>
      <description>Modernise old PHP codebases by injecting React components with Vite, JSON hydration and hash routing, without a full rewrite or breaking SEO.</description>
    </item>
    <item>
      <title>GraphQL vs REST vs tRPC: Picking an API Layer Without Regret</title>
      <link>https://shawab.space/blog/graphql-vs-rest-vs-trpc</link>
      <guid isPermaLink="true">https://shawab.space/blog/graphql-vs-rest-vs-trpc</guid>
      <pubDate>Sat, 18 Jul 2026 09:00:00 +0530</pubDate>
      <category>Backend</category>
      <description>A decision framework instead of a hype cycle. Caching, type safety, client diversity, team size and the WordPress/Shopify realities that push most projects to REST.</description>
    </item>
    <item>
      <title>Prompt Engineering for Developers: Structured Outputs, Schemas and Evals</title>
      <link>https://shawab.space/blog/prompt-engineering-for-developers-structured-outputs</link>
      <guid isPermaLink="true">https://shawab.space/blog/prompt-engineering-for-developers-structured-outputs</guid>
      <pubDate>Tue, 14 Jul 2026 09:00:00 +0530</pubDate>
      <category>AI &amp; ML</category>
      <description>Treat prompts as code: JSON schema outputs, few-shot examples, system prompt layering, versioning and automated evals so your LLM features stop breaking in production.</description>
    </item>
    <item>
      <title>Redis Caching Strategies for WordPress and Node.js</title>
      <link>https://shawab.space/blog/redis-caching-strategies-wordpress-nodejs</link>
      <guid isPermaLink="true">https://shawab.space/blog/redis-caching-strategies-wordpress-nodejs</guid>
      <pubDate>Fri, 10 Jul 2026 09:00:00 +0530</pubDate>
      <category>Performance</category>
      <description>Object cache, full-page cache, fragment cache and rate limiting, with WordPress drop-in configuration and a Node.js cache-aside helper that handles stampedes correctly.</description>
    </item>
    <item>
      <title>Tailwind CSS v4 Migration Guide: CSS-First Config, Theme Variables and Gotchas</title>
      <link>https://shawab.space/blog/tailwind-css-v4-migration-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/tailwind-css-v4-migration-guide</guid>
      <pubDate>Wed, 08 Jul 2026 09:00:00 +0530</pubDate>
      <category>Frontend</category>
      <description>Move from tailwind.config.js to the CSS-first @theme setup, understand the new Oxide engine, fix renamed utilities and migrate a WordPress theme without breaking production.</description>
    </item>
    <item>
      <title>Monolith vs Microservices: Why You Should Start with a Modular Monolith</title>
      <link>https://shawab.space/blog/monolith-vs-microservices-modular-monolith</link>
      <guid isPermaLink="true">https://shawab.space/blog/monolith-vs-microservices-modular-monolith</guid>
      <pubDate>Sat, 04 Jul 2026 09:00:00 +0530</pubDate>
      <category>Architecture</category>
      <description>Microservices solve organisational problems most teams do not have. How to structure a modular monolith with enforced boundaries so you can extract services later, if ever.</description>
    </item>
    <item>
      <title>Modern PHP 8 Features Every WordPress Developer Should Be Using</title>
      <link>https://shawab.space/blog/modern-php-8-features-wordpress-developers</link>
      <guid isPermaLink="true">https://shawab.space/blog/modern-php-8-features-wordpress-developers</guid>
      <pubDate>Tue, 30 Jun 2026 09:00:00 +0530</pubDate>
      <category>Backend</category>
      <description>Enums, readonly classes, match, named arguments, fibers and property hooks, shown through real WordPress theme and plugin code that is cleaner, safer and faster.</description>
    </item>
    <item>
      <title>Semantic Search for eCommerce with Embeddings and pgvector</title>
      <link>https://shawab.space/blog/semantic-search-ecommerce-embeddings-pgvector</link>
      <guid isPermaLink="true">https://shawab.space/blog/semantic-search-ecommerce-embeddings-pgvector</guid>
      <pubDate>Fri, 26 Jun 2026 09:00:00 +0530</pubDate>
      <category>AI &amp; ML</category>
      <description>Replace keyword-only product search with embeddings. Schema design, hybrid ranking with BM25, WooCommerce and Shopify sync strategies and the latency numbers I measured.</description>
    </item>
    <item>
      <title>Headless Shopify: Is It Worth the Development Time?</title>
      <link>https://shawab.space/blog/headless-shopify-is-it-worth-the-development-time</link>
      <guid isPermaLink="true">https://shawab.space/blog/headless-shopify-is-it-worth-the-development-time</guid>
      <pubDate>Thu, 25 Jun 2026 09:00:00 +0530</pubDate>
      <category>Architecture</category>
      <description>The ROI of building custom storefronts on the Shopify Storefront API versus Liquid themes for mid-sized merchants, from a developer who has shipped both.</description>
    </item>
    <item>
      <title>Event-Driven Architecture with Redis and BullMQ</title>
      <link>https://shawab.space/blog/event-driven-architecture-redis-bullmq</link>
      <guid isPermaLink="true">https://shawab.space/blog/event-driven-architecture-redis-bullmq</guid>
      <pubDate>Sat, 20 Jun 2026 09:00:00 +0530</pubDate>
      <category>Architecture</category>
      <description>Decouple slow work from HTTP requests. Producers, workers, retries with back-off, idempotent handlers, dead-letter queues and the order-processing flow I built for a store.</description>
    </item>
    <item>
      <title>Authentication in 2026: Passkeys, OAuth 2.1 and JWT Done Right</title>
      <link>https://shawab.space/blog/authentication-passkeys-oauth-jwt-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/authentication-passkeys-oauth-jwt-guide</guid>
      <pubDate>Tue, 16 Jun 2026 09:00:00 +0530</pubDate>
      <category>Backend</category>
      <description>How modern auth actually fits together: WebAuthn passkeys for login, OAuth 2.1 with PKCE for delegation, short-lived JWTs with refresh rotation, and the mistakes to avoid.</description>
    </item>
    <item>
      <title>TypeScript Patterns for Scalable React Apps</title>
      <link>https://shawab.space/blog/typescript-patterns-scalable-react-apps</link>
      <guid isPermaLink="true">https://shawab.space/blog/typescript-patterns-scalable-react-apps</guid>
      <pubDate>Wed, 10 Jun 2026 09:00:00 +0530</pubDate>
      <category>Frontend</category>
      <description>Discriminated unions for UI state, typed API layers with Zod, generic components, branded types and the tsconfig settings that catch bugs before your users do.</description>
    </item>
    <item>
      <title>Cloudflare Workers and Edge Computing: A Practical Guide for Web Developers</title>
      <link>https://shawab.space/blog/cloudflare-workers-edge-computing-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/cloudflare-workers-edge-computing-guide</guid>
      <pubDate>Sat, 06 Jun 2026 09:00:00 +0530</pubDate>
      <category>DevOps</category>
      <description>What runs well at the edge and what does not. Build an A/B routing worker, a cache-aware API proxy and a geo personaliser with KV, plus how I front WordPress with Workers.</description>
    </item>
    <item>
      <title>How to Stay Relevant as a Developer in the Age of AI</title>
      <link>https://shawab.space/blog/stay-relevant-developer-age-of-ai</link>
      <guid isPermaLink="true">https://shawab.space/blog/stay-relevant-developer-age-of-ai</guid>
      <pubDate>Tue, 02 Jun 2026 09:00:00 +0530</pubDate>
      <category>Career</category>
      <description>AI writes more of the code now. Here is what still commands a salary: systems thinking, debugging, product judgement, and how I restructured my own learning around it.</description>
    </item>
    <item>
      <title>Database Indexing Strategies for MySQL and PostgreSQL</title>
      <link>https://shawab.space/blog/database-indexing-strategies-mysql-postgresql</link>
      <guid isPermaLink="true">https://shawab.space/blog/database-indexing-strategies-mysql-postgresql</guid>
      <pubDate>Thu, 28 May 2026 09:00:00 +0530</pubDate>
      <category>Backend</category>
      <description>How B-tree indexes work, composite index column order, covering indexes, reading EXPLAIN, and the WordPress postmeta query I took from 4.2s to 18ms with one index.</description>
    </item>
    <item>
      <title>Nginx Performance Tuning for PHP Applications</title>
      <link>https://shawab.space/blog/nginx-performance-tuning-php</link>
      <guid isPermaLink="true">https://shawab.space/blog/nginx-performance-tuning-php</guid>
      <pubDate>Wed, 20 May 2026 09:00:00 +0530</pubDate>
      <category>DevOps</category>
      <description>Worker processes, keepalive, FastCGI caching, Brotli, HTTP/3 and PHP-FPM pool sizing. The exact config changes that doubled requests per second on a client VPS.</description>
    </item>
    <item>
      <title>Designing Multi-Tenant SaaS Architecture: Data Isolation, Auth and Billing</title>
      <link>https://shawab.space/blog/multi-tenant-saas-architecture-guide</link>
      <guid isPermaLink="true">https://shawab.space/blog/multi-tenant-saas-architecture-guide</guid>
      <pubDate>Thu, 14 May 2026 09:00:00 +0530</pubDate>
      <category>Architecture</category>
      <description>Shared schema vs schema-per-tenant vs database-per-tenant, tenant resolution middleware, row-level security in PostgreSQL, and Stripe-based plan enforcement.</description>
    </item>
    <item>
      <title>Building a Remote Web Career from Aligarh to the World</title>
      <link>https://shawab.space/blog/building-a-remote-web-career-from-aligarh</link>
      <guid isPermaLink="true">https://shawab.space/blog/building-a-remote-web-career-from-aligarh</guid>
      <pubDate>Sun, 10 May 2026 09:00:00 +0530</pubDate>
      <category>Career</category>
      <description>Reflections on moving from local freelance projects in Aligarh to full-time remote roles with digital agencies, and how to set up a workspace that supports it.</description>
    </item>
    <item>
      <title>Remote Developer Interview Prep: System Design, Live Coding and Communication</title>
      <link>https://shawab.space/blog/remote-developer-interview-preparation</link>
      <guid isPermaLink="true">https://shawab.space/blog/remote-developer-interview-preparation</guid>
      <pubDate>Wed, 22 Apr 2026 09:00:00 +0530</pubDate>
      <category>Career</category>
      <description>A four-week plan for remote developer interviews: the system design template that works on a whiteboard call, live coding under time pressure and async communication tests.</description>
    </item>
  </channel>
</rss>
