# Phil Whittaker's Blog > A blog about web development, design systems, and modern frontend engineering. ## Posts - [Suspend Disbelief - From Implementation to Intention](https://philwhittaker.dev/blog/suspend-disbelief-from-implementation-to-intention): AI models have crossed a genuine capability threshold. The question is no longer whether they can write production code—it's whether you're willing to believe it. Here's how to make that shift. - [MCP vs Agent Skills: Why They're Different, Not Competing](https://philwhittaker.dev/blog/mcp-vs-agent-skills-why-theyre-different-not-competing): Skills and MCPs solve fundamentally different problems - one excels at information delivery and context management, the other provides structured tool integration. Here's why both matter. - [Introducing Umbraco CMS Backoffice Agent Skills](https://philwhittaker.dev/blog/introducing-umbraco-cms-backoffice-agent-skills): An introduction to Umbraco CMS Backoffice Agent Skills - AI-powered skills that give coding assistants structured, up-to-date knowledge for building Umbraco backoffice extensions correctly. - [Choosing the Right LLM for the Umbraco CMS Developer MCP: An Quick Cost and Performance Analysis](https://philwhittaker.dev/blog/choosing-the-right-llm-for-umbraco-cms-developer-mcp): A cost and performance analysis of different Claude LLM models for the Umbraco CMS Developer MCP, revealing that smaller models with well-structured prompts can outperform larger ones. - [In AI, Everything is Meta](https://philwhittaker.dev/blog/in-ai-everything-is-meta): Exploring why AI is fundamentally meta - it transforms your input into structured output layer by layer. Understanding this principle unlocks more effective AI collaboration. - [The Art of Coding with AI: Blending Human Vision with Machine Power](https://philwhittaker.dev/blog/the-art-of-coding-with-ai): How AI-assisted coding mirrors the creative direction of Damien Hirst and Kanye West - great work comes from vision, curation, and collaboration, not just individual execution. - [Playing to Win: Claude Code and the Art of AI-Controlled Development](https://philwhittaker.dev/blog/playing-to-win-claude-code-and-ai-controlled-development): AI-assisted development as a tennis match - strategies for serving strong prompts, managing multi-turn rallies, and staying in control with Claude Code's advanced features. - [Playing with AI](https://philwhittaker.dev/blog/playing-with-ai): Why playful experimentation with AI tools is the key to thriving as a developer - lessons from a BNY Mellon AI meetup and a lifetime of curiosity-driven learning. - [Headless Umbraco with the Clean Starter Kit and Next.js](https://philwhittaker.dev/blog/headless-umbraco-with-clean-starter-kit-and-nextjs): A step-by-step guide to building a headless Umbraco site using the Clean Starter Kit with a Next.js frontend, covering the Delivery API, Orval, revalidation, and image optimisation. - [Mastering the Subtle Art of MCP: Fine-Grained Control Beyond API Wrappers](https://philwhittaker.dev/blog/mastering-the-subtle-art-of-mcp): Going beyond API wrappers with MCP - fine-grained strategies for parameter schemas, tool descriptions, pagination, context management, and multi-server composition. - [Developer Fulfilment in the Age of AI Coding Tools](https://philwhittaker.dev/blog/developer-fulfilment-in-the-age-of-ai-coding-tools): A reflection on how AI coding assistants risk turning developers into passive reviewers, and why the industry must prioritise developer engagement and fulfilment. - [Streamlining Umbraco Headless Development: Automated Model Generation for Content Delivery API with Orval](https://philwhittaker.dev/blog/streamlining-umbraco-headless-development-with-orval): How Orval simplifies generating typed TypeScript clients from Umbraco's Content Delivery API, with a custom fetch integration for Next.js revalidation.