<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url><loc>https://mehd.ir/posts/zod-vs-valibot-nextjs-form-validation</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/drizzle-vs-prisma-nextjs-app-router-postgres</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/server-components-did-not-replace-tanstack-query</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/mac-mini-vs-windows-pc-always-on-local-llm-host</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/zero-data-retention-is-not-a-data-architecture</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/scheduled-security-release-is-an-operational-deadline</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/instant-navigation-is-a-contract-not-a-prefetch-setting</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/version-the-agent-not-just-the-prompt</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/copilot-review-skills-as-policy</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/vercel-agent-readonly-by-default</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/vercel-plugin-docs-vs-tools</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/budget-objects-for-ai-features</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/tool-approval-is-product-design</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/ai-sdk-7-workflow-agent-migration-tax</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/eve-agents-as-directories</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/agent-contracts-before-frameworks</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/nextjs-16-2-agents-md-fewer-wrong-apis</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/persistent-sandboxes-ai-coding-agents</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/postgres-performance-nextjs-query-shape-problem</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/ai-integration-for-saas-starts-with-workflow</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/node-js-26-migration-signal-not-production-target</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/payload-cms-content-model-business-workflow</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/copilot-code-review-ci-cost</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/vercel-incident-ai-tool-access</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/openai-agents-sdk-owning-the-runtime</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/github-coding-agents-in-the-dependabot-loop</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/vercel-workflow-made-durable-typescript-less-annoying</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/ai-workflows-need-durable-state-not-longer-prompts</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/what-a-serious-nextjs-consultant-fixes-before-writing-features</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/php-in-2026-feels-interesting-again</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/what-i-would-automate-in-a-modern-full-stack-workflow-right-now</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/model-routing-is-finally-practical-for-product-teams</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/search-retrieval-and-browsing-are-different-jobs-stop-merging-them</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-would-build-an-ai-assisted-editorial-workflow-with-payload-and-next-js</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/a-cms-is-still-useful-in-the-ai-era-if-you-design-the-workflow-right</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/type-safe-structured-outputs-still-beat-regex-and-it-is-not-close</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/latency-budgets-are-the-missing-piece-in-most-ai-product-roadmaps</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/node-25-5-makes-single-executable-apps-simpler-and-that-matters-more-than-it-sounds</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/agents-are-helpful-but-deterministic-workflows-still-pay-the-bills</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-to-build-a-codebase-aware-assistant-without-leaking-your-whole-repo-into-the-prompt</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/a-small-eval-harness-beats-a-big-dashboard</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/the-ai-workflow-stack-i-would-actually-recommend-in-2026</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/ai-sdk-6-looks-like-a-maturity-release-not-just-another-version-bump</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/the-best-engineering-habit-i-picked-up-from-ai-teams-in-2025</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-would-ship-a-local-first-agent-workflow-for-a-real-team</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/mcp-is-becoming-the-integration-layer-developers-actually-need</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-keep-ai-features-cheap-enough-to-survive-product-reality</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/long-context-is-useful-but-good-context-architecture-matters-more</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/the-devday-2025-pattern-i-care-about-most-better-tools-smaller-surfaces</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/gpt-5-1-pushes-agentic-coding-forward-but-workflow-design-still-wins</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/building-coding-assistants-that-do-not-feel-like-slot-machines</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/streaming-ux-is-still-underrated-in-ai-products</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/node-js-25-feels-like-a-backend-release-for-security-minded-teams</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-design-retries-fallbacks-and-timeouts-for-ai-endpoints</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/structured-output-is-the-real-product-feature-not-the-chat-ui</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/the-case-for-multi-model-apps-without-turning-your-codebase-into-a-mess</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/rag-is-no-longer-the-hard-part-workflow-design-is</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/my-minimum-viable-eval-stack-for-shipping-ai-features</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-would-build-a-docs-copilot-in-next-js-without-overengineering-it</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/prompt-caching-background-jobs-and-budget-caps-how-i-keep-ai-features-affordable</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/typescript-5-9-is-a-good-reminder-that-dx-speed-still-matters</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/gpt-5-for-developers-the-useful-parts-beneath-the-headline</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/node-24-5-quietly-made-backend-ai-work-less-annoying</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/vercel-ai-sdk-5-is-the-first-ai-abstraction-i-actually-want-in-production</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/stop-treating-ai-features-like-magic-and-start-designing-better-tool-boundaries</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/what-anthropics-claude-4-rate-limit-increase-actually-meant-for-product-teams</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/building-a-modern-personal-website-a-deep-dive-into-tech-stack-and-architecture</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/web3-integration-for-traditional-web-developers-your-complete-guide-to-blockchain-development</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/testing-frontend-applications-unit-integration-and-e2e-strategies</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/real-time-applications-websockets-vs-server-sent-events-vs-webrtc</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/graphql-vs-rest-vs-trpc-choosing-the-right-api-strategy</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/debugging-like-a-pro-advanced-devtools-techniques</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/core-web-vitals-optimization-a-step-by-step-guide</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/ai-powered-development-tools-that-actually-save-time</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/from-wordpress-to-headless-my-complete-migration-journey</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/building-a-multi-step-form-with-validation-in-react</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/my-favorite-nextjs-15-features-you-should-be-using</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/the-art-of-animations-in-react-framer-motion-tips--tricks</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/why-tailwind-css-changed-the-way-i-build-uis</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-to-create-multi-tenancy-project-with-nextjs-15-app-router-middleware</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/time-management-for-devs-my-daily-workflow</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/5-habits-that-made-me-a-more-efficient-programmer</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-use-github-actions-to-manage-versions-of-my-projects</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-built-my-personal-website-using-nextjs-with-payload</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/why-i-switched-to-apidog-and-never-looked-back</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/how-i-learn-new-technologies-fast-and-actually-remember-them</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/building-a-scalable-design-system-with-tailwind-and-shadcnui</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/the-developers-guide-to-staying-motivated-in-2025</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/10-things-i-wish-i-knew-when-i-started-coding</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/best-ides-for-programming-by-programming-language-your-ultimate-developers-guide</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/the-complete-developers-guide-creating-npm-packages-with-github-integration-and-automated-publishing</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
<url><loc>https://mehd.ir/posts/building-ai-applications-with-anthropics-sdk-and-nextjs</loc><lastmod>2026-09-27T06:00:45.390Z</lastmod></url>
</urlset>