<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Mahesh Waghmare</title><description>I build for the web. I write to share what I learn. WordPress, React, Astro, Cloudflare, indie hacking — practical tutorials and lessons from running a digital empire solo.</description><link>https://maheshwaghmare.com/</link><language>en-us</language><item><title>Astro content collections: the deep-dive I needed before shipping 46 sites</title><link>https://maheshwaghmare.com/blog/astro-content-collections-deep-dive/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/astro-content-collections-deep-dive/</guid><description>Schemas with Zod, the slug-vs-id mismatch, glob loaders, getStaticPaths patterns, and the four mistakes I made so you don&apos;t have to.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>astro</category><category>Astro</category><category>Content Collections</category><category>Zod</category><category>MDX</category><category>TypeScript</category><category>Performance</category></item><item><title>Cloudflare D1 vs Supabase for indie SaaS — six months in production</title><link>https://maheshwaghmare.com/blog/cloudflare-d1-vs-supabase-for-indie-saas/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/cloudflare-d1-vs-supabase-for-indie-saas/</guid><description>Honest comparison from running 46 sites on Cloudflare and one paid SaaS on Supabase. Where each one wins, where each one bites, and the call I&apos;d make in 2026.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>cloudflare</category><category>Cloudflare</category><category>D1</category><category>Supabase</category><category>SaaS</category><category>Database</category><category>Indie Hacking</category></item><item><title>How I run 46 sites in one monorepo on Cloudflare Workers</title><link>https://maheshwaghmare.com/blog/cloudflare-workers-monorepo-46-sites/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/cloudflare-workers-monorepo-46-sites/</guid><description>The shared platform Workers, the per-site wrangler config, the deploy script, and the three rules that keep 46 sites from becoming 46 unmaintainable forks.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>cloudflare</category><category>Cloudflare</category><category>Workers</category><category>Monorepo</category><category>Architecture</category><category>Empire</category></item><item><title>Pagefind vs Algolia vs Typesense for content sites — which one I actually pick in 2026</title><link>https://maheshwaghmare.com/blog/pagefind-vs-algolia-vs-typesense-for-content-sites/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/pagefind-vs-algolia-vs-typesense-for-content-sites/</guid><description>Static-site search, the three real options, and the framework I use to pick between them. Free vs paid, index size, latency, what each one breaks on.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>astro</category><category>Pagefind</category><category>Algolia</category><category>Typesense</category><category>Search</category><category>Static Sites</category></item><item><title>Shipping evenings-only: the discipline that lets a side empire survive a day job</title><link>https://maheshwaghmare.com/blog/shipping-evenings-only-the-discipline/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/shipping-evenings-only-the-discipline/</guid><description>Three years of side-project shipping after a 9-to-5. The schedule, the cuts, the meta-rules. What survives the dishes and what doesn&apos;t.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>career</category><category>Career</category><category>Indie Hacking</category><category>Side Project</category><category>Discipline</category><category>Solo</category></item><item><title>Auth and security for a WordPress MCP server</title><link>https://maheshwaghmare.com/blog/wordpress-mcp-server-auth-and-security/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/wordpress-mcp-server-auth-and-security/</guid><description>Application passwords vs. service users, capability scoping, rate limits, audit logs. The threat model you need before you let an AI touch your site.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>wordpress</category><category>WordPress</category><category>MCP</category><category>Security</category><category>Auth</category><category>Application Passwords</category><category>Capabilities</category></item><item><title>WordPress + MCP: how to make your site an AI-controllable backend</title><link>https://maheshwaghmare.com/blog/wordpress-mcp-server-the-complete-guide/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/wordpress-mcp-server-the-complete-guide/</guid><description>The Model Context Protocol turns any system into a tool an AI agent can use. Here&apos;s how — and why — to wrap WordPress in one. Hub for the WP-MCP cluster.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>wordpress</category><category>WordPress</category><category>MCP</category><category>AI</category><category>Claude</category><category>Anthropic</category><category>REST API</category><category>Headless WordPress</category></item><item><title>WordPress MCP server setup: a practical walkthrough</title><link>https://maheshwaghmare.com/blog/wordpress-mcp-server-setup-guide/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/wordpress-mcp-server-setup-guide/</guid><description>From empty folder to Claude Desktop running typed tools against your WordPress site. Step-by-step setup of an MCP server that wraps the REST API.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>wordpress</category><category>WordPress</category><category>MCP</category><category>Claude</category><category>REST API</category><category>TypeScript</category><category>Anthropic</category></item><item><title>Which tools and resources should a WordPress MCP server expose?</title><link>https://maheshwaghmare.com/blog/wordpress-mcp-server-tools-and-resources/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/wordpress-mcp-server-tools-and-resources/</guid><description>Tool granularity, intent-shaping, default surface area, and which WordPress resources matter for retrieval. A starter schema you can copy.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>wordpress</category><category>WordPress</category><category>MCP</category><category>API Design</category><category>Schema</category><category>Tool Granularity</category></item><item><title>Deploy an Astro site to Cloudflare Pages</title><link>https://maheshwaghmare.com/tutorials/deploy-astro-to-cloudflare/</link><guid isPermaLink="true">https://maheshwaghmare.com/tutorials/deploy-astro-to-cloudflare/</guid><description>From `git init` to a live URL on a custom domain in under 30 minutes. Covers Pages config, custom domains, and the most common build errors.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>tutorial</category><category>cloudflare</category><category>Cloudflare</category><category>Pages</category><category>Astro</category><category>Deploy</category></item><item><title>Headless WordPress with Astro — a starter kit</title><link>https://maheshwaghmare.com/tutorials/headless-wordpress-with-astro/</link><guid isPermaLink="true">https://maheshwaghmare.com/tutorials/headless-wordpress-with-astro/</guid><description>Build a production-ready Astro frontend that consumes a WordPress backend via REST. Includes auth, ISR-like caching, and deploy-to-Cloudflare config.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>tutorial</category><category>wordpress</category><category>WordPress</category><category>Astro</category><category>Headless</category><category>REST API</category></item><item><title>Astro getCollection — sort by date</title><link>https://maheshwaghmare.com/snippets/astro-getcollection-sort/</link><guid isPermaLink="true">https://maheshwaghmare.com/snippets/astro-getcollection-sort/</guid><description>Sort any Astro content collection by date without crashing on missing publishedAt.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>snippet</category><category>ts</category><category>astro</category><category>sort</category><category>content-collections</category></item><item><title>Tailwind dark-mode toggle</title><link>https://maheshwaghmare.com/snippets/tailwind-dark-toggle/</link><guid isPermaLink="true">https://maheshwaghmare.com/snippets/tailwind-dark-toggle/</guid><description>Class-based dark mode in Astro/Tailwind without flash-of-wrong-theme.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>snippet</category><category>ts</category><category>tailwind</category><category>dark-mode</category><category>astro</category></item><item><title>KV-cache wrapper for Workers</title><link>https://maheshwaghmare.com/snippets/cloudflare-kv-cache/</link><guid isPermaLink="true">https://maheshwaghmare.com/snippets/cloudflare-kv-cache/</guid><description>Wrap any async function so repeated calls within a TTL return cached results.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>snippet</category><category>ts</category><category>cloudflare</category><category>workers</category><category>kv</category><category>cache</category></item><item><title>TIL: Pagefind indexes everything, even your nav</title><link>https://maheshwaghmare.com/notes/til-pagefind-indexes-everything/</link><guid isPermaLink="true">https://maheshwaghmare.com/notes/til-pagefind-indexes-everything/</guid><description>Spent 20 minutes wondering why my search results were full of &apos;Skip to content&apos; and footer links. Then I read the docs.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>note</category><category>quick</category><category>astro</category><category>search</category><category>pagefind</category></item><item><title>Reading: DHH on defaults</title><link>https://maheshwaghmare.com/notes/reading-dhh-on-defaults/</link><guid isPermaLink="true">https://maheshwaghmare.com/notes/reading-dhh-on-defaults/</guid><description>Re-reading DHH&apos;s old essays on opinionated defaults. The whole indie-tooling world makes more sense as a reaction to too much choice.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>note</category><category>reading</category><category>reading</category><category>rails</category><category>tooling</category></item><item><title>The joy of building in public</title><link>https://maheshwaghmare.com/notes/the-joy-of-building-in-public/</link><guid isPermaLink="true">https://maheshwaghmare.com/notes/the-joy-of-building-in-public/</guid><description>I almost didn&apos;t write this. Then I remembered every useful thing I&apos;ve learned online came from someone who almost didn&apos;t share it either.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>note</category><category>reflection</category><category>building-in-public</category><category>writing</category></item><item><title>Gutenberg blocks without fighting the editor</title><link>https://maheshwaghmare.com/blog/gutenberg-blocks-without-fighting-the-editor/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/gutenberg-blocks-without-fighting-the-editor/</guid><description>Three patterns I learned shipping 25+ WordPress plugins. Skip the gotchas; let the editor do the heavy lifting.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate><category>wordpress</category><category>WordPress</category><category>Gutenberg</category><category>Block API</category><category>Patterns</category></item><item><title>Why I moved my WordPress empire to Cloudflare Workers</title><link>https://maheshwaghmare.com/blog/wordpress-empire-cloudflare-migration/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/wordpress-empire-cloudflare-migration/</guid><description>Six months in. Cost down 78%. P95 latency down 62%. The migration playbook plus the things I&apos;d skip if starting over.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><category>cloudflare</category><category>Cloudflare</category><category>Workers</category><category>WordPress</category><category>Migration</category><category>Performance</category></item><item><title>Running 46 sites solo: month 6 retrospective</title><link>https://maheshwaghmare.com/blog/empire-month-6-retrospective/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/empire-month-6-retrospective/</guid><description>What I learned, what worked, what to stop doing. Honest numbers on traffic, revenue, and the cost of context-switching.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate><category>indie-hacking</category><category>Indie Hacking</category><category>Empire</category><category>Retrospective</category><category>Solo</category></item><item><title>AI in Development Workflows - Practical Integration Guide</title><link>https://maheshwaghmare.com/blog/ai-development-workflows/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/ai-development-workflows/</guid><description>Learn how to integrate AI tools into your development workflow. Guide covering AI coding assistants, prompt engineering, code generation, and productivity improvements.</description><pubDate>Sat, 25 Jan 2025 00:00:00 GMT</pubDate><category>ai</category><category>AI</category><category>Development</category><category>Productivity</category><category>Tools</category><category>Workflow</category></item><item><title>React Performance Tips - Optimization Strategies</title><link>https://maheshwaghmare.com/blog/react-performance-tips/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/react-performance-tips/</guid><description>Essential React performance optimization tips. Learn techniques to improve rendering, reduce bundle size, optimize re-renders, and build faster React applications.</description><pubDate>Sat, 25 Jan 2025 00:00:00 GMT</pubDate><category>react</category><category>React</category><category>Performance</category><category>Optimization</category><category>Best Practices</category><category>Tips</category></item><item><title>Advanced Custom Fields - Extending WordPress Functionality Complete Guide</title><link>https://maheshwaghmare.com/blog/advanced-custom-fields-extending-wordpress/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/advanced-custom-fields-extending-wordpress/</guid><description>Master Advanced Custom Fields (ACF) for WordPress. Learn how to create custom fields, display data, use field types, and extend WordPress functionality.</description><pubDate>Fri, 24 Jan 2025 00:00:00 GMT</pubDate><category>wordpress</category><category>WordPress</category><category>ACF</category><category>Custom Fields</category><category>Development</category><category>Plugins</category></item><item><title>AutoGPT - Complete Guide to Autonomous AI Agents</title><link>https://maheshwaghmare.com/blog/autogpt/</link><guid isPermaLink="true">https://maheshwaghmare.com/blog/autogpt/</guid><description>Learn about AutoGPT, the autonomous AI agent. Complete guide covering setup, configuration, use cases, and how to build autonomous AI systems.</description><pubDate>Fri, 24 Jan 2025 00:00:00 GMT</pubDate><category>ai</category><category>AI</category><category>AutoGPT</category><category>Autonomous Agents</category><category>GPT</category><category>Automation</category></item></channel></rss>