{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Tim Benniks",
  "home_page_url": "https://timbenniks.dev/",
  "feed_url": "https://timbenniks.dev/feed.json",
  "description": "Writing on developer experience, AI-accelerated engineering, and composable platforms.",
  "language": "en-US",
  "icon": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto,w_1280/Presskit/tim_aug_2023_no_logo.png",
  "favicon": "https://timbenniks.dev/favicon.ico",
  "authors": [
    {
      "name": "Tim Benniks",
      "url": "https://timbenniks.dev/",
      "avatar": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto,w_512,h_512,c_thumb/Tim/timreal.png"
    }
  ],
  "user_comment": "A markdown twin of every entry is available at /writing/<slug>.md, or by requesting the canonical URL with Accept: text/markdown.",
  "items": [
    {
      "id": "https://timbenniks.dev/writing/building-mcp-profile-hub-part-2-one-mcp-server-is-the-wrong-abstraction",
      "url": "https://timbenniks.dev/writing/building-mcp-profile-hub-part-2-one-mcp-server-is-the-wrong-abstraction",
      "title": "Building MCP Profile Hub part 2, one MCP server is the wrong abstraction",
      "content_text": "This article argues that a single, monolithic MCP server per platform is the wrong abstraction, especially for complex systems like Contentstack. Instead, it introduces managed profiles as the right unit of configuration, aligned to jobs, teams, or access boundaries rather than product catalogs. Each managed profile bundles a curated set of tools, Automations, and agents, enriched with account context, while still respecting individual user identities and permissions. Profiles can only narrow what a user can do, never expand their underlying platform permissions. This makes configurations easier to reason about, review, audit, and replicate across environments, and offers a scalable pattern for enterprise platforms with many roles and capabilities.",
      "summary": "This article argues that a single, monolithic MCP server per platform is the wrong abstraction, especially for complex systems like Contentstack. Instead, it introduces managed profiles as the right unit of configuration, aligned to jobs, teams, or access boundaries rather than product catalogs. Each managed profile bundles a curated set of tools, Automations, and agents, enriched with account context, while still respecting individual user identities and permissions. Profiles can only narrow what a user can do, never expand their underlying platform permissions. This makes configurations easier to reason about, review, audit, and replicate across environments, and offers a scalable pattern for enterprise platforms with many roles and capabilities.",
      "date_published": "2026-09-04T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "api-design",
        "frontend",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1788518129/website/building-mcp-2.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/building-mcp-profile-hub-part-2-one-mcp-server-is-the-wrong-abstraction.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/building-mcp-profile-hub-part-1-stop-making-the-agent-ask",
      "url": "https://timbenniks.dev/writing/building-mcp-profile-hub-part-1-stop-making-the-agent-ask",
      "title": "Building MCP Profile Hub, part 1: Stop making the agent ask",
      "content_text": "Introducing MCP Profile Hub. I explain why enriching tool definitions with tenant-specific context dramatically improves agent performance. Instead of exposing generic CMS tools that force models to discover content types, environments, locales, and branches through multiple lookup calls, Profile Hub injects real account data directly into JSON Schemas as enums, defaults, and descriptions. This reduces tool calls, latency, and reasoning tokens while avoiding misleading examples and invalid defaults. The piece also covers the production engineering behind enrichment, how Automations and Agent OS agents are exposed as high-level deterministic tools, and why reusable HTTP-based tool definitions let teams run their own MCP runtimes. The core takeaway is that fewer, richer, context-aware tools beat large generic catalogs for real-world agent workflows.",
      "summary": "Introducing MCP Profile Hub. I explain why enriching tool definitions with tenant-specific context dramatically improves agent performance. Instead of exposing generic CMS tools that force models to discover content types, environments, locales, and branches through multiple lookup calls, Profile Hub injects real account data directly into JSON Schemas as enums, defaults, and descriptions. This reduces tool calls, latency, and reasoning tokens while avoiding misleading examples and invalid defaults. The piece also covers the production engineering behind enrichment, how Automations and Agent OS agents are exposed as high-level deterministic tools, and why reusable HTTP-based tool definitions let teams run their own MCP runtimes. The core takeaway is that fewer, richer, context-aware tools beat large generic catalogs for real-world agent workflows.",
      "date_published": "2026-08-31T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "api-design",
        "frontend",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1788164780/website/building-mcp.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/building-mcp-profile-hub-part-1-stop-making-the-agent-ask.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/claude-desktop-mcp-lifecycle-is-broken",
      "url": "https://timbenniks.dev/writing/claude-desktop-mcp-lifecycle-is-broken",
      "title": "Claude Desktop MCP lifecycle is broken",
      "content_text": "Claude Desktop currently launches duplicate local MCP stdio servers for a single configuration, causing two independent OAuth flows, extra browser tabs, and unnecessary resource usage. The bug is masked once credentials are cached, so it silently persists in production while still spawning two processes every time. This is not an mcp-remote or external service issue but a host-level lifecycle problem, likely caused by overlapping legacy and new MCP managers and poor observability for one of the processes. Workarounds like pre-authenticating with mcp-remote mitigate UX pain but do not fix the duplication. The article argues that open-source tools should not shoulder complex coordination logic just to survive a major desktop app’s sloppy process management.",
      "summary": "Claude Desktop currently launches duplicate local MCP stdio servers for a single configuration, causing two independent OAuth flows, extra browser tabs, and unnecessary resource usage. The bug is masked once credentials are cached, so it silently persists in production while still spawning two processes every time. This is not an mcp-remote or external service issue but a host-level lifecycle problem, likely caused by overlapping legacy and new MCP managers and poor observability for one of the processes. Workarounds like pre-authenticating with mcp-remote mitigate UX pain but do not fix the duplication. The article argues that open-source tools should not shoulder complex coordination logic just to survive a major desktop app’s sloppy process management.",
      "date_published": "2026-08-24T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "performance",
        "cloud-infra",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1787604216/website/vibes.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/claude-desktop-mcp-lifecycle-is-broken.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/buy-the-plumbing-vibe-the-rest",
      "url": "https://timbenniks.dev/writing/buy-the-plumbing-vibe-the-rest",
      "title": "Buy the plumbing, vibe the rest",
      "content_text": "AI makes it tempting to cancel SaaS tools and prompt your own internal platforms into existence, but that often creates brittle systems that are “a mile wide and an inch deep.” Performance, security, and edge cases quickly become serious problems, and suddenly your team is doing database administration and security engineering instead of solving business problems. A better pattern is to buy robust, headless infrastructure for the hard, invisible parts (content, data, security, scaling) and then use AI to build bespoke experiences on top. With a solid SDK and stable backend services, AI tools like Claude can safely orchestrate UI and workflows instead of guessing at architecture. Pay for the plumbing, and vibe on the interface layer where your differentiation really lives.",
      "summary": "AI makes it tempting to cancel SaaS tools and prompt your own internal platforms into existence, but that often creates brittle systems that are “a mile wide and an inch deep.” Performance, security, and edge cases quickly become serious problems, and suddenly your team is doing database administration and security engineering instead of solving business problems. A better pattern is to buy robust, headless infrastructure for the hard, invisible parts (content, data, security, scaling) and then use AI to build bespoke experiences on top. With a solid SDK and stable backend services, AI tools like Claude can safely orchestrate UI and workflows instead of guessing at architecture. Pay for the plumbing, and vibe on the interface layer where your differentiation really lives.",
      "date_published": "2026-08-22T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "frontend",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1787420878/website/plumber.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/buy-the-plumbing-vibe-the-rest.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-doer-economy-we-are-killing-the-translator-class",
      "url": "https://timbenniks.dev/writing/the-doer-economy-we-are-killing-the-translator-class",
      "title": "The Doer Economy - we are killing the translator class",
      "content_text": "This article argues that AI is collapsing the distance between vision and execution, ushering in a Doer Economy where the primary winners are those who can both imagine and build. The traditional corporate stack of translators (product managers, marketers, and multiple layers of management) is shrinking because executional tasks are increasingly handled by AI. Founders and CEOs are moving closer to product, validating ideas directly with AI-generated scaffolds and modern SaaS primitives. For individuals, the value has shifted from narrow, ticket-driven skills to end-to-end ownership, product thinking, and understanding users. The future belongs to people who ship, iterate quickly, and leverage AI and SaaS platforms to focus on business logic and user experience, rather than those who only manage the builders.",
      "summary": "This article argues that AI is collapsing the distance between vision and execution, ushering in a Doer Economy where the primary winners are those who can both imagine and build. The traditional corporate stack of translators (product managers, marketers, and multiple layers of management) is shrinking because executional tasks are increasingly handled by AI. Founders and CEOs are moving closer to product, validating ideas directly with AI-generated scaffolds and modern SaaS primitives. For individuals, the value has shifted from narrow, ticket-driven skills to end-to-end ownership, product thinking, and understanding users. The future belongs to people who ship, iterate quickly, and leverage AI and SaaS platforms to focus on business logic and user experience, rather than those who only manage the builders.",
      "date_published": "2026-08-17T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "api-design",
        "frontend",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1786961432/website/tim-doer-economy-blue.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-doer-economy-we-are-killing-the-translator-class.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/ten-ai-security-problems-hiding-in-plain-text",
      "url": "https://timbenniks.dev/writing/ten-ai-security-problems-hiding-in-plain-text",
      "title": "Ten AI security problems hiding in plain text",
      "content_text": "This article argues that AI security risks extend far beyond model jailbreaks and prompt engineering, into every piece of text an AI can read. Natural language now behaves like soft code, where logs, documentation, commit messages, wikis, support tickets, web pages, PDFs, and search results can all carry hidden instructions for agents. The author walks through ten concrete scenarios where ordinary text fields become attack surfaces, often with delayed or indirect activation through internal tools and multi agent pipelines. The core message is that information and instruction have blurred, and any text accessible to AI must be treated as part of the security model. Teams need to rethink access, editing rights, retrieval, and agent capabilities accordingly.",
      "summary": "This article argues that AI security risks extend far beyond model jailbreaks and prompt engineering, into every piece of text an AI can read. Natural language now behaves like soft code, where logs, documentation, commit messages, wikis, support tickets, web pages, PDFs, and search results can all carry hidden instructions for agents. The author walks through ten concrete scenarios where ordinary text fields become attack surfaces, often with delayed or indirect activation through internal tools and multi agent pipelines. The core message is that information and instruction have blurred, and any text accessible to AI must be treated as part of the security model. Teams need to rethink access, editing rights, retrieval, and agent capabilities accordingly.",
      "date_published": "2026-08-05T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cloud-infra",
        "frontend",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1785914487/website/ai_police_1.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/ten-ai-security-problems-hiding-in-plain-text.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-biggest-risk-to-ai-is-the-enterprise-org-chart",
      "url": "https://timbenniks.dev/writing/the-biggest-risk-to-ai-is-the-enterprise-org-chart",
      "title": "The biggest risk to AI is the enterprise org chart",
      "content_text": "This article argues that the real risk of corporate AI is not rogue superintelligence but how large organizations deploy it, usually in service of cost-cutting rather than creating new value. Big enterprises buy AI like office furniture, wrapped in committees, procurement, and risk matrices, so it ends up optimizing ticket deflection and headcount instead of enabling innovation. The real bottleneck is bureaucracy, not intelligence. In contrast, a roughly 500-person company has enough depth to build serious systems but short enough communication paths that the person with the problem can help build the solution. AI lets domain experts prototype directly, shortening the loop between friction and fix. The key is governance that enables safe experimentation instead of vetoing it, using AI to expand reach rather than just reduce costs.",
      "summary": "This article argues that the real risk of corporate AI is not rogue superintelligence but how large organizations deploy it, usually in service of cost-cutting rather than creating new value. Big enterprises buy AI like office furniture, wrapped in committees, procurement, and risk matrices, so it ends up optimizing ticket deflection and headcount instead of enabling innovation. The real bottleneck is bureaucracy, not intelligence. In contrast, a roughly 500-person company has enough depth to build serious systems but short enough communication paths that the person with the problem can help build the solution. AI lets domain experts prototype directly, shortening the loop between friction and fix. The key is governance that enables safe experimentation instead of vetoing it, using AI to expand reach rather than just reduce costs.",
      "date_published": "2026-07-24T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "frontend",
        "product-strategy",
        "career"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1784882785/website/poster-aiuse2.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-biggest-risk-to-ai-is-the-enterprise-org-chart.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/your-linkedin-reads-like-a-robot",
      "url": "https://timbenniks.dev/writing/your-linkedin-reads-like-a-robot",
      "title": "Your LinkedIn reads like a robot wrote it",
      "content_text": "Two free skills can strip the AI tells out of your writing in seconds. Nobody uses them. So every feed is now a slop fest of em dashes, rule-of-three lists, and It's not just X, it's Y. Here is how to spot the patterns and stop shipping them.",
      "summary": "Two free skills can strip the AI tells out of your writing in seconds. Nobody uses them. So every feed is now a slop fest of em dashes, rule-of-three lists, and It's not just X, it's Y. Here is how to spot the patterns and stop shipping them.",
      "date_published": "2026-06-22T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "craft",
        "product-strategy",
        "career"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1782135138/website/palm.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/your-linkedin-reads-like-a-robot.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/we-are-thinking-too-small",
      "url": "https://timbenniks.dev/writing/we-are-thinking-too-small",
      "title": "We are thinking too small",
      "content_text": "AI coding agents are not a threat to developer jobs, they are a fundamental shift in the economics of software creation. Just as the cloud removed the risk and capital cost of infrastructure, AI is removing the cost of writing and refactoring code. This kills the old moats that protected horizontal enterprise platforms and makes rebuilding wide, deeply integrated stacks viable. Instead of spending years stitching together narrow SaaS tools and APIs, teams can let agents generate bespoke services quickly and cheaply. The real risk is using AI only to speed up legacy glue work. Developers who win will treat the cost of reinventing the wheel as effectively zero and pursue much larger, previously impossible product ideas.",
      "summary": "AI coding agents are not a threat to developer jobs, they are a fundamental shift in the economics of software creation. Just as the cloud removed the risk and capital cost of infrastructure, AI is removing the cost of writing and refactoring code. This kills the old moats that protected horizontal enterprise platforms and makes rebuilding wide, deeply integrated stacks viable. Instead of spending years stitching together narrow SaaS tools and APIs, teams can let agents generate bespoke services quickly and cheaply. The real risk is using AI only to speed up legacy glue work. Developers who win will treat the cost of reinventing the wheel as effectively zero and pursue much larger, previously impossible product ideas.",
      "date_published": "2026-06-20T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cloud-infra",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1781945621/website/think-bigger.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/we-are-thinking-too-small.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/cursors-moat",
      "url": "https://timbenniks.dev/writing/cursors-moat",
      "title": "Cursor's moat",
      "content_text": "The interesting story about Cursor is not which base model it uses, but how deeply it sits inside real software development workflows. Unlike model labs trained only on finished code artifacts, Cursor’s IDE sees every attempt, failure, context switch, and accepted edit as developers ship real software. That environment, with multiple models competing on the same tasks, produces rich feedback signals that are closer to “which path got the work done” than traditional preference data. The piece generalizes this idea beyond coding tools, suggesting that any serious AI product should focus on generating observable traces of work, outcomes, and corrections, and treat the product workflow itself as part of the training system and long-term moat.",
      "summary": "The interesting story about Cursor is not which base model it uses, but how deeply it sits inside real software development workflows. Unlike model labs trained only on finished code artifacts, Cursor’s IDE sees every attempt, failure, context switch, and accepted edit as developers ship real software. That environment, with multiple models competing on the same tasks, produces rich feedback signals that are closer to “which path got the work done” than traditional preference data. The piece generalizes this idea beyond coding tools, suggesting that any serious AI product should focus on generating observable traces of work, outcomes, and corrections, and treat the product workflow itself as part of the training system and long-term moat.",
      "date_published": "2026-06-17T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "frontend",
        "devrel"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1765920589/website/Generated_Image_December_16_2025_-_10_28PM.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/cursors-moat.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/contentstack-launched-agent-os-axp-and-the-dev-tools",
      "url": "https://timbenniks.dev/writing/contentstack-launched-agent-os-axp-and-the-dev-tools",
      "title": "Contentstack launched Agent OS, AXP, and the dev tools I have been itching to talk about",
      "content_text": "Contentstack just made Agent OS generally available, renamed the platform to AXP, and shipped a pile of developer tooling. I helped build the AI side, and I am happily biased about why this one is different.",
      "summary": "Contentstack just made Agent OS generally available, renamed the platform to AXP, and shipped a pile of developer tooling. I helped build the AI side, and I am happily biased about why this one is different.",
      "date_published": "2026-06-09T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1781077576/website/cs.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/contentstack-launched-agent-os-axp-and-the-dev-tools.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-agentic-spectrum-stop-burning-tokens-on-what-a-script-can-do",
      "url": "https://timbenniks.dev/writing/the-agentic-spectrum-stop-burning-tokens-on-what-a-script-can-do",
      "title": "The agentic spectrum: stop burning tokens on what a script can do",
      "content_text": "AI workflows sit on a spectrum, from a single LLM-assisted task to a fully autonomous agent. Most real content work belongs near the low end, yet people keep reaching for the autonomous end and paying for it in tokens.",
      "summary": "AI workflows sit on a spectrum, from a single LLM-assisted task to a fully autonomous agent. Most real content work belongs near the low end, yet people keep reaching for the autonomous end and paying for it in tokens.",
      "date_published": "2026-06-04T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "content-ops",
        "cloud-infra"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1780573551/website/ldbm4jak4514xydu4sdg.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-agentic-spectrum-stop-burning-tokens-on-what-a-script-can-do.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-tool-catalog-is-the-product",
      "url": "https://timbenniks.dev/writing/the-tool-catalog-is-the-product",
      "title": "The tool catalog is the product",
      "content_text": "We exposed Contentstack MCP tool definitions through a server endpoint as JSON. That sounds small, but it changes the product shape. The hosted MCP server becomes one official implementation of a reusable tool catalog, while developers can build their own MCPs with their own auth, hosting, filtering, and governance. This is what AI-first developer tooling should feel like: polished defaults on top of portable primitives.",
      "summary": "We exposed Contentstack MCP tool definitions through a server endpoint as JSON. That sounds small, but it changes the product shape. The hosted MCP server becomes one official implementation of a reusable tool catalog, while developers can build their own MCPs with their own auth, hosting, filtering, and governance. This is what AI-first developer tooling should feel like: polished defaults on top of portable primitives.",
      "date_published": "2026-05-27T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "api-design",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1779882834/website/mcp-stuff.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-tool-catalog-is-the-product.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/ai-will-not-live-in-one-place-but-trust-has-to",
      "url": "https://timbenniks.dev/writing/ai-will-not-live-in-one-place-but-trust-has-to",
      "title": "AI will not live in one place, but trust has to",
      "content_text": "Enterprise AI is spreading into every tool where work happens, from IDE agents to browser assistants, but governance, spend control, and brand safety are lagging behind. This article explains a two-layer architecture for solving that tension. Off-platform AI, powered by APIs, MCP, and agent skills, acts as the reach layer that lets developers and teams experiment, prototype, and orchestrate across systems from within their preferred tools. On-platform AI, delivered through Agent OS, Polaris, and AI Credits, is the trust layer that handles permissions, spend visibility, brand context, review workflows, and auditability. Rather than choosing between open access and tight governance, enterprises should use both layers together so external AI gathers context while governed on-platform capabilities execute business-critical work safely.",
      "summary": "Enterprise AI is spreading into every tool where work happens, from IDE agents to browser assistants, but governance, spend control, and brand safety are lagging behind. This article explains a two-layer architecture for solving that tension. Off-platform AI, powered by APIs, MCP, and agent skills, acts as the reach layer that lets developers and teams experiment, prototype, and orchestrate across systems from within their preferred tools. On-platform AI, delivered through Agent OS, Polaris, and AI Credits, is the trust layer that handles permissions, spend visibility, brand context, review workflows, and auditability. Rather than choosing between open access and tight governance, enterprises should use both layers together so external AI gathers context while governed on-platform capabilities execute business-critical work safely.",
      "date_published": "2026-05-18T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "api-design",
        "content-ops",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1779099112/website/ai-security.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/ai-will-not-live-in-one-place-but-trust-has-to.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-supply-chain-backlash-will-create-worse-software",
      "url": "https://timbenniks.dev/writing/the-supply-chain-backlash-will-create-worse-software",
      "title": "The Mini Shai-Hulud supply chain backlash will create worse software",
      "content_text": "Supply-chain attacks like Mini Shai-Hulud will make teams distrust third-party packages. AI makes it easy to react by generating internal replacements for dependencies, SDK helpers, workflow tools, and glue code. That feels safer, but a lot of that code will be vibe coded without threat models, tests, update paths, or security review.",
      "summary": "Supply-chain attacks like Mini Shai-Hulud will make teams distrust third-party packages. AI makes it easy to react by generating internal replacements for dependencies, SDK helpers, workflow tools, and glue code. That feels safer, but a lot of that code will be vibe coded without threat models, tests, update paths, or security review.",
      "date_published": "2026-05-13T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cloud-infra",
        "frontend",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1778657516/website/qlkf586p5fmq1gt3apuq.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-supply-chain-backlash-will-create-worse-software.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/development-101-for-non-technical-vibe-coders",
      "url": "https://timbenniks.dev/writing/development-101-for-non-technical-vibe-coders",
      "title": "Development 101 for non-technical vibe coders",
      "content_text": "When folks think they're failing at AI coding, they're usually failing at their laptop. Before you brief an agent well, your machine has to be a predictable place.",
      "summary": "When folks think they're failing at AI coding, they're usually failing at their laptop. Before you brief an agent well, your machine has to be a predictable place.",
      "date_published": "2026-05-04T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "craft",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/dev-101.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/development-101-for-non-technical-vibe-coders.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-case-for-boring-setups",
      "url": "https://timbenniks.dev/writing/the-case-for-boring-setups",
      "title": "The case for boring setups",
      "content_text": "Most developers overconfigure their machines and pay for it in ways they don't notice. Every custom alias, every remapped key, every hand-rolled config file is a small tax on your ability to work anywhere other than your own laptop. The same pattern is repeating right now with AI tooling, dozens of MCP servers and stacked skill files that look like leverage and behave like drag. After getting stranded by my own setups more times than I'd like to admit, I've come around to a quieter belief: portability is a skill, and defaults are how you practice it.",
      "summary": "Most developers overconfigure their machines and pay for it in ways they don't notice. Every custom alias, every remapped key, every hand-rolled config file is a small tax on your ability to work anywhere other than your own laptop. The same pattern is repeating right now with AI tooling, dozens of MCP servers and stacked skill files that look like leverage and behave like drag. After getting stranded by my own setups more times than I'd like to admit, I've come around to a quieter belief: portability is a skill, and defaults are how you practice it.",
      "date_published": "2026-04-20T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cloud-infra",
        "frontend",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1776671686/website/boring-setups.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-case-for-boring-setups.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-vibe-coded-app-architecture-guide",
      "url": "https://timbenniks.dev/writing/the-vibe-coded-app-architecture-guide",
      "title": "The vibe-coded app architecture guide",
      "content_text": "The AI builds what you describe, not what you need in production. This guide covers the full architecture stack for vibe-coded apps - auth, database security, secrets, GDPR, audit logging, rate limiting, and dependencies - so you can ship fast and stay solid.",
      "summary": "The AI builds what you describe, not what you need in production. This guide covers the full architecture stack for vibe-coded apps - auth, database security, secrets, GDPR, audit logging, rate limiting, and dependencies - so you can ship fast and stay solid.",
      "date_published": "2026-04-16T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cloud-infra",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1776323316/website/ChatGPT_Image_Apr_16_2026_09_08_25_AM.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-vibe-coded-app-architecture-guide.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/i-will-not-log-into-your-vibe-coded-app",
      "url": "https://timbenniks.dev/writing/i-will-not-log-into-your-vibe-coded-app",
      "title": "I will not log into your vibe coded app",
      "content_text": "Vibe coding has made it trivially easy to spin up apps that collect user data, handle logins, and store sensitive information. The problem is that most people building these apps have no idea how authentication, database security, or data protection actually work. Defaults on services like Supabase and Firebase are dangerously permissive, GDPR obligations are being ignored entirely, and users are handing credentials to apps built by people who have never heard of row level security. My personal rule now is simple. If it looks vibe coded and asks for username and password, I walk away.",
      "summary": "Vibe coding has made it trivially easy to spin up apps that collect user data, handle logins, and store sensitive information. The problem is that most people building these apps have no idea how authentication, database security, or data protection actually work. Defaults on services like Supabase and Firebase are dangerously permissive, GDPR obligations are being ignored entirely, and users are handing credentials to apps built by people who have never heard of row level security. My personal rule now is simple. If it looks vibe coded and asks for username and password, I walk away.",
      "date_published": "2026-04-14T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cloud-infra",
        "frontend",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1776151120/website/Locked_box_on_wooden_desk.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/i-will-not-log-into-your-vibe-coded-app.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/most-cms-migrations-fail-before-the-first-record-moves",
      "url": "https://timbenniks.dev/writing/most-cms-migrations-fail-before-the-first-record-moves",
      "title": "Most CMS migrations fail before the first record moves",
      "content_text": "CMS migrations fail not because of the new platform but because nobody cleaned up the mess before packing it into boxes. Bad content models get locked in, integrations get reverse-engineered at midnight, legacy logic resurfaces as unexplainable bugs, and composable architecture without discipline becomes distributed chaos. The only thing worse than a painful migration is a successful one that preserved all your worst decisions.",
      "summary": "CMS migrations fail not because of the new platform but because nobody cleaned up the mess before packing it into boxes. Bad content models get locked in, integrations get reverse-engineered at midnight, legacy logic resurfaces as unexplainable bugs, and composable architecture without discipline becomes distributed chaos. The only thing worse than a painful migration is a successful one that preserved all your worst decisions.",
      "date_published": "2026-03-30T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "frontend",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1774862958/website/n1gqtn4ibjzhyqrm6o8h.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/most-cms-migrations-fail-before-the-first-record-moves.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-future-of-software-is-bespoke",
      "url": "https://timbenniks.dev/writing/the-future-of-software-is-bespoke",
      "title": "The future of software is bespoke",
      "content_text": "This article argues that generic SaaS dashboards are a legacy compromise from a time when custom software was expensive and slow to build. With modern APIs, solid SDKs, scaffolding, and AI-assisted development, teams can now create focused, bespoke interfaces in days that match their exact workflows, instead of fighting through one-size-fits-all UIs. The platform should be treated as the engine providing authentication, permissions, content modeling, and governance, while product teams own the experience layer tailored to their people. The piece also examines trade-offs like maintenance burden, skills gaps, and fragility, and explains how good scaffolding, community patterns, and developer education can mitigate these risks and make custom tooling a pragmatic default.",
      "summary": "This article argues that generic SaaS dashboards are a legacy compromise from a time when custom software was expensive and slow to build. With modern APIs, solid SDKs, scaffolding, and AI-assisted development, teams can now create focused, bespoke interfaces in days that match their exact workflows, instead of fighting through one-size-fits-all UIs. The platform should be treated as the engine providing authentication, permissions, content modeling, and governance, while product teams own the experience layer tailored to their people. The piece also examines trade-offs like maintenance burden, skills gaps, and fragility, and explains how good scaffolding, community patterns, and developer education can mitigate these risks and make custom tooling a pragmatic default.",
      "date_published": "2026-03-26T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "frontend",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1774513824/website/homjoi56fsgohbf21lck.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-future-of-software-is-bespoke.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/we-moved-the-difficulty",
      "url": "https://timbenniks.dev/writing/we-moved-the-difficulty",
      "title": "We moved the difficulty. We didn't make it disappear.",
      "content_text": "In 2013 I built the Need for Speed Rivals launch site from scratch in five weeks - custom router, custom state, custom tweening engine, 35 languages, no framework worth mentioning. I rebuilt it recently for my Vue.js Amsterdam 2026 talk. The contrast broke my brain in the best way, and it clarified something I've been trying to articulate about AI, abstraction, and what \"craft\" actually means now.",
      "summary": "In 2013 I built the Need for Speed Rivals launch site from scratch in five weeks - custom router, custom state, custom tweening engine, 35 languages, no framework worth mentioning. I rebuilt it recently for my Vue.js Amsterdam 2026 talk. The contrast broke my brain in the best way, and it clarified something I've been trying to articulate about AI, abstraction, and what \"craft\" actually means now.",
      "date_published": "2026-03-17T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "frontend",
        "craft",
        "career"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1773745121/website/Screenshot_2026-03-17_at_11.58.18.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/we-moved-the-difficulty.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-best-product-decisions-were-never-analytical",
      "url": "https://timbenniks.dev/writing/the-best-product-decisions-were-never-analytical",
      "title": "Intuition and the real cost of research",
      "content_text": "This article explores how AI changes the balance between research-heavy processes and intuition-driven building, especially in product and technical work. The author reflects on a career of moving faster than surrounding teams, where strong intuition (really compressed experience from shipping many similar things) often clashed with expectations for lengthy research and documentation. As AI makes implementation and iteration dramatically cheaper and faster, the true bottleneck shifts from building to deciding what is worth building. Research still matters for those without established mental models, and for environments where stakeholders need evidence and paper trails. But when iteration costs hours instead of weeks, over-indexing on analysis can become the real drag. The piece argues that, in an AI-enabled world, experienced intuition is not anti-process; for the right people and problems, it is the process.",
      "summary": "This article explores how AI changes the balance between research-heavy processes and intuition-driven building, especially in product and technical work. The author reflects on a career of moving faster than surrounding teams, where strong intuition (really compressed experience from shipping many similar things) often clashed with expectations for lengthy research and documentation. As AI makes implementation and iteration dramatically cheaper and faster, the true bottleneck shifts from building to deciding what is worth building. Research still matters for those without established mental models, and for environments where stakeholders need evidence and paper trails. But when iteration costs hours instead of weeks, over-indexing on analysis can become the real drag. The piece argues that, in an AI-enabled world, experienced intuition is not anti-process; for the right people and problems, it is the process.",
      "date_published": "2026-03-10T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "frontend",
        "product-strategy",
        "career"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1773051547/website/1A8CEC95-AF06-4E7C-935A-1B31BC021583.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-best-product-decisions-were-never-analytical.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/code-is-craft-now-not-labor",
      "url": "https://timbenniks.dev/writing/code-is-craft-now-not-labor",
      "title": "Code is craft now, not labor",
      "content_text": "Coding is largely solved. Agents with a great product vision can produce what used to take teams weeks. But the act of writing code by hand isn't dying - it's transforming from a necessity into a craft. Like knitting, you won't need to do it. You'll choose to.",
      "summary": "Coding is largely solved. Agents with a great product vision can produce what used to take teams weeks. But the act of writing code by hand isn't dying - it's transforming from a necessity into a craft. Like knitting, you won't need to do it. You'll choose to.",
      "date_published": "2026-02-25T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "craft",
        "career",
        "personal"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1771963163/website/j0lhbsga47pjnww7mwl0.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/code-is-craft-now-not-labor.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/openai-codex-built-a-skill-for-itself-is-mcp-even-a-thing-anymore",
      "url": "https://timbenniks.dev/writing/openai-codex-built-a-skill-for-itself-is-mcp-even-a-thing-anymore",
      "title": "Codex built a skill with custom CLI for itself. Is MCP even a thing anymore?",
      "content_text": "I gave OpenAI Codex a management token, an API key, some YouTube IDs, and my Contentstack TypeScript schema. It imported all my content flawlessly, then wrote a custom CLI and a skill to do it again. I did not ask it to do that. Now I'm wondering if we've been overcomplicating everything.",
      "summary": "I gave OpenAI Codex a management token, an API key, some YouTube IDs, and my Contentstack TypeScript schema. It imported all my content flawlessly, then wrote a custom CLI and a skill to do it again. I did not ask it to do that. Now I'm wondering if we've been overcomplicating everything.",
      "date_published": "2026-02-20T14:30:22.000Z",
      "tags": [
        "ai-engineering",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1771582909/website/a1em5ldkumaku4wjl2p6.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/openai-codex-built-a-skill-for-itself-is-mcp-even-a-thing-anymore.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/cosplaying-as-a-product-manager-and-i-think-im-onto-something",
      "url": "https://timbenniks.dev/writing/cosplaying-as-a-product-manager-and-i-think-im-onto-something",
      "title": "I'm cosplaying as a Product Manager, and I think I'm onto something",
      "content_text": "After twenty years of engineering, I accidentally ended up running multiple product lines. My approach (build first, spec later, let AI handle the translation) isn't traditional PM work. But it might be where the role is heading. Here's why engineers who produce before they plan might have an unfair advantage in the age of AI.",
      "summary": "After twenty years of engineering, I accidentally ended up running multiple product lines. My approach (build first, spec later, let AI handle the translation) isn't traditional PM work. But it might be where the role is heading. Here's why engineers who produce before they plan might have an unfair advantage in the age of AI.",
      "date_published": "2026-02-14T10:00:00.000Z",
      "tags": [
        "craft",
        "product-strategy",
        "career"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1771056546/website/tim-drawn.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/cosplaying-as-a-product-manager-and-i-think-im-onto-something.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/tdd-finally-makes-sense",
      "url": "https://timbenniks.dev/writing/tdd-finally-makes-sense",
      "title": "TDD finally makes sense",
      "content_text": "AI coding tools have removed the old excuse that test driven development is too slow or too costly. When AI can generate both implementation and test scaffolding in minutes, the time cost of writing tests first collapses, turning TDD into an obvious quality and productivity win. The real risk now is vibe coding, where developers ship AI generated code that looks fine but crumbles under real edge cases. By using AI for planning, then encoding that thinking as tests and letting the AI implement against them, teams get faster feedback, more reliable code, and fewer hotfixes. In an AI assisted world, the competitive advantage shifts to defining behavior and edge cases up front, and TDD becomes the discipline that makes that thinking explicit.",
      "summary": "AI coding tools have removed the old excuse that test driven development is too slow or too costly. When AI can generate both implementation and test scaffolding in minutes, the time cost of writing tests first collapses, turning TDD into an obvious quality and productivity win. The real risk now is vibe coding, where developers ship AI generated code that looks fine but crumbles under real edge cases. By using AI for planning, then encoding that thinking as tests and letting the AI implement against them, teams get faster feedback, more reliable code, and fewer hotfixes. In an AI assisted world, the competitive advantage shifts to defining behavior and edge cases up front, and TDD becomes the discipline that makes that thinking explicit.",
      "date_published": "2026-02-11T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "frontend",
        "product-strategy",
        "career"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1770798654/website/lgr0jz2fafvafvem9ckr.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/tdd-finally-makes-sense.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/when-output-is-cheap-taste-is-everything",
      "url": "https://timbenniks.dev/writing/when-output-is-cheap-taste-is-everything",
      "title": "When Output Is Cheap, Taste Is Everything",
      "content_text": "This article explores how AI has radically reduced the cost of producing things, creating an intoxicating sense of limitless output for ambitious people. But when building becomes almost frictionless, the real bottleneck shifts from implementation to judgment. The author argues that taste (the ability to choose what is worth building) and genuine rest become the true sources of leverage. AI is an exceptional how engine, but deciding what and why remains a deeply human responsibility. Without rest, our judgment degrades, and we risk building more but meaning less. The piece encourages pairing curiosity and experimentation with discipline, restraint, and strategic downtime.",
      "summary": "This article explores how AI has radically reduced the cost of producing things, creating an intoxicating sense of limitless output for ambitious people. But when building becomes almost frictionless, the real bottleneck shifts from implementation to judgment. The author argues that taste (the ability to choose what is worth building) and genuine rest become the true sources of leverage. AI is an exceptional how engine, but deciding what and why remains a deeply human responsibility. Without rest, our judgment degrades, and we risk building more but meaning less. The piece encourages pairing curiosity and experimentation with discipline, restraint, and strategic downtime.",
      "date_published": "2026-02-08T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "product-strategy",
        "career",
        "personal"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1770561607/website/gczomqaywcc0aieqknau.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/when-output-is-cheap-taste-is-everything.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/ai-is-not-replacing-developers-it-is-exposing-everyone-else",
      "url": "https://timbenniks.dev/writing/ai-is-not-replacing-developers-it-is-exposing-everyone-else",
      "title": "Plot twist! AI made developers more valuable.",
      "content_text": "For the last year, the dominant narrative has been that AI will replace developers. I think that narrative has it backwards. AI doesn't replace developers - it raises the bar for everyone else to justify their seat next to someone who can now ship at absurd velocity.",
      "summary": "For the last year, the dominant narrative has been that AI will replace developers. I think that narrative has it backwards. AI doesn't replace developers - it raises the bar for everyone else to justify their seat next to someone who can now ship at absurd velocity.",
      "date_published": "2026-02-04T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1770325122/website/x1ir70fsdhekzwvjv2fc.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/ai-is-not-replacing-developers-it-is-exposing-everyone-else.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/do-we-still-need-sdks-in-the-age-of-ai-agents",
      "url": "https://timbenniks.dev/writing/do-we-still-need-sdks-in-the-age-of-ai-agents",
      "title": "Do we still need SDKs in the age of AI agents?",
      "content_text": "With good APIs and OpenAPI specs, AI agents can generate production-ready clients in seconds. This challenges everything we know about SDK development and distribution. But are we ready to let go?",
      "summary": "With good APIs and OpenAPI specs, AI agents can generate production-ready clients in seconds. This challenges everything we know about SDK development and distribution. But are we ready to let go?",
      "date_published": "2026-01-29T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "api-design",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1769689564/website/oc6upuykp46bv05wkjdx.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/do-we-still-need-sdks-in-the-age-of-ai-agents.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/devrel-success-metrics-that-actually-matter",
      "url": "https://timbenniks.dev/writing/devrel-success-metrics-that-actually-matter",
      "title": "DevRel success metrics that actually matter",
      "content_text": "When the market stops buying, vanity metrics stop mattering. Here's how to measure DevRel impact in ways that executives understand and that correlate with real business outcomes like ARR growth.",
      "summary": "When the market stops buying, vanity metrics stop mattering. Here's how to measure DevRel impact in ways that executives understand and that correlate with real business outcomes like ARR growth.",
      "date_published": "2026-01-27T10:00:00.000Z",
      "tags": [
        "developer-experience",
        "devrel"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1769504129/website/v1pt56ljj6oh61xnpixy.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/devrel-success-metrics-that-actually-matter.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/your-legacy-patterns-are-technical-debt-in-modern-architecture",
      "url": "https://timbenniks.dev/writing/your-legacy-patterns-are-technical-debt-in-modern-architecture",
      "title": "Your legacy patterns are technical debt in modern architecture",
      "content_text": "Developer teams migrating from legacy to modern architecture often bring old habits that become technical debt. Executive pressure and budget constraints drive rushed migrations without adapting to new paradigms. Success requires stopping to discover how modern systems actually work, designing ideal workflows without legacy constraints, and recognizing that migration is about transforming how you model and manage content, not just moving it between systems.",
      "summary": "Developer teams migrating from legacy to modern architecture often bring old habits that become technical debt. Executive pressure and budget constraints drive rushed migrations without adapting to new paradigms. Success requires stopping to discover how modern systems actually work, designing ideal workflows without legacy constraints, and recognizing that migration is about transforming how you model and manage content, not just moving it between systems.",
      "date_published": "2026-01-26T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "craft"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1769444306/website/c0ljfmg5finkpbwb2cww.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/your-legacy-patterns-are-technical-debt-in-modern-architecture.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-pragmatic-guide-to-coding-with-ai-agents",
      "url": "https://timbenniks.dev/writing/the-pragmatic-guide-to-coding-with-ai-agents",
      "title": "The pragmatic guide to coding with AI agents",
      "content_text": "AI agents are extremely capable coding assistants, but they are not magical autonomous engineers. Treat them like very fast junior developers who need clear scope, clean environments, and strong guardrails. Avoid context gluttony by limiting inputs to only the files and details needed for the task, and rely on search instead of dumping entire repositories. Skip over engineered MCP setups and excessive plugins in favor of simple, well understood tools. Fix your project environment so builds and checks run cleanly from the root. Use planning steps, a project specific “gotchas” file, tests as guardrails, and tightly scoped tasks to keep agents effective, predictable, and safe in real-world production work.",
      "summary": "AI agents are extremely capable coding assistants, but they are not magical autonomous engineers. Treat them like very fast junior developers who need clear scope, clean environments, and strong guardrails. Avoid context gluttony by limiting inputs to only the files and details needed for the task, and rely on search instead of dumping entire repositories. Skip over engineered MCP setups and excessive plugins in favor of simple, well understood tools. Fix your project environment so builds and checks run cleanly from the root. Use planning steps, a project specific “gotchas” file, tests as guardrails, and tightly scoped tasks to keep agents effective, predictable, and safe in real-world production work.",
      "date_published": "2026-01-25T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1769354968/website/yuzcu4vaiiybfbkl5rep.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-pragmatic-guide-to-coding-with-ai-agents.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/want-to-be-better-at-vibe-coding-become-a-better-coder",
      "url": "https://timbenniks.dev/writing/want-to-be-better-at-vibe-coding-become-a-better-coder",
      "title": "Want to be better at vibe coding? Become a better coder",
      "content_text": "The promise of AI-powered development is seductive, but here's the reality check nobody's talking about - the better you understand code, the better your AI-generated results will be. LLMs code like humans with high IQs and unstoppable work ethic. Treat them as junior developers and learn the fundamentals to multiply your vibe coding power.",
      "summary": "The promise of AI-powered development is seductive, but here's the reality check nobody's talking about - the better you understand code, the better your AI-generated results will be. LLMs code like humans with high IQs and unstoppable work ethic. Treat them as junior developers and learn the fundamentals to multiply your vibe coding power.",
      "date_published": "2026-01-12T15:00:00.000Z",
      "tags": [
        "ai-engineering",
        "api-design",
        "cloud-infra",
        "craft",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1731438927/website/this-is-fine-3.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/want-to-be-better-at-vibe-coding-become-a-better-coder.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/mcp-fragmentation-context-efficiency-and-the-rise-of-curated-skills",
      "url": "https://timbenniks.dev/writing/mcp-fragmentation-context-efficiency-and-the-rise-of-curated-skills",
      "title": "MCP fragmentation, context efficiency, and the rise of curated skills",
      "content_text": "The Model Context Protocol (MCP) was supposed to be a universal way to connect AI models to tools, but in practice it is fragmenting fast across vendors and implementations. Tool catalogs are extremely context-hungry, making naive MCP setups expensive, slow, and unreliable, especially with cheaper models. Developers are compensating with application-layer tricks like curated tool subsets, OAuth-based selection, Claude Skills style abstractions, and wrapping deterministic automation platforms such as Contentstack Automate. These patterns improve cost, reliability, and debuggability but highlight protocol-level gaps in context efficiency, determinism, and interoperability. The ecosystem is replaying past standards wars, and no clear winner is visible yet. The pragmatic move is to design flexible systems that can adapt when consolidation and better standards eventually emerge.",
      "summary": "The Model Context Protocol (MCP) was supposed to be a universal way to connect AI models to tools, but in practice it is fragmenting fast across vendors and implementations. Tool catalogs are extremely context-hungry, making naive MCP setups expensive, slow, and unreliable, especially with cheaper models. Developers are compensating with application-layer tricks like curated tool subsets, OAuth-based selection, Claude Skills style abstractions, and wrapping deterministic automation platforms such as Contentstack Automate. These patterns improve cost, reliability, and debuggability but highlight protocol-level gaps in context efficiency, determinism, and interoperability. The ecosystem is replaying past standards wars, and no clear winner is visible yet. The pragmatic move is to design flexible systems that can adapt when consolidation and better standards eventually emerge.",
      "date_published": "2026-01-09T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "api-design",
        "performance",
        "cloud-infra"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1767966423/website/cttibncdlwrwxeozwqbj.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/mcp-fragmentation-context-efficiency-and-the-rise-of-curated-skills.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/cursor-rules-and-my-vibe-engineer-workflow",
      "url": "https://timbenniks.dev/writing/cursor-rules-and-my-vibe-engineer-workflow",
      "title": "Cursor, rules, and my vibe engineer workflow",
      "content_text": "I released my Cursor rules and commands as a public repo because Cursor is not magic, it is leverage. By turning it into a constrained system with explicit rules, reusable commands, and real project context, you can make it behave like a senior engineer on SaaS projects. The real win is not speed, but trust at speed.",
      "summary": "I released my Cursor rules and commands as a public repo because Cursor is not magic, it is leverage. By turning it into a constrained system with explicit rules, reusable commands, and real project context, you can make it behave like a senior engineer on SaaS projects. The real win is not speed, but trust at speed.",
      "date_published": "2025-12-16T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "frontend",
        "developer-experience",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/f_auto,q_auto/v1765920589/website/Generated_Image_December_16_2025_-_10_28PM.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/cursor-rules-and-my-vibe-engineer-workflow.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/ai-native-composability-needs-real-api-first-dna",
      "url": "https://timbenniks.dev/writing/ai-native-composability-needs-real-api-first-dna",
      "title": "AI integrations expose platforms without headless DNA",
      "content_text": "AI exposes which platforms were truly built API first and which ones only marketed it. As brands move into AI native workflows, the only viable path is a system that treats agents, events, and automation as composable building blocks. Contentstack's agentOS shows what happens when you start with API first DNA instead of bolting AI onto a monolithic core. This piece explains why AI native composability is the next logical layer of MACH and why brands should judge vendors by the architecture of their agents, not the slideware that surrounds them.",
      "summary": "AI exposes which platforms were truly built API first and which ones only marketed it. As brands move into AI native workflows, the only viable path is a system that treats agents, events, and automation as composable building blocks. Contentstack's agentOS shows what happens when you start with API first DNA instead of bolting AI onto a monolithic core. This piece explains why AI native composability is the next logical layer of MACH and why brands should judge vendors by the architecture of their agents, not the slideware that surrounds them.",
      "date_published": "2025-12-02T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cms",
        "api-design",
        "content-ops"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/ai-dna.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/ai-native-composability-needs-real-api-first-dna.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-experience-factory-01-why-experience-is-the-real-flagship",
      "url": "https://timbenniks.dev/writing/the-experience-factory-01-why-experience-is-the-real-flagship",
      "title": "The Experience Factory why experience is the real flagship",
      "content_text": "Many brands think they're digitally mature, yet their experience operations are fragmented. Here's how to spot it and start orchestrating.",
      "summary": "Many brands think they're digitally mature, yet their experience operations are fragmented. Here's how to spot it and start orchestrating.",
      "date_published": "2025-12-01T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "content-ops",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/valtech-cs-experience.jpeg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-experience-factory-01-why-experience-is-the-real-flagship.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-mach-monolith-in-2026",
      "url": "https://timbenniks.dev/writing/the-mach-monolith-in-2026",
      "title": "The MACH monolith in 2026",
      "content_text": "The 2022 diagnosis was right. Composable architectures need orchestration or they collapse. But the form factor was wrong. Teams rejected standalone orchestration layers as too heavy, another vendor, contract, and critical path. The 2026 reality is platforms that integrate orchestration directly, staying API-first and modular while providing built-in coordination. The shift isn't about more tools, but smarter platforms that reduce complexity fatigue without losing flexibility.",
      "summary": "The 2022 diagnosis was right. Composable architectures need orchestration or they collapse. But the form factor was wrong. Teams rejected standalone orchestration layers as too heavy, another vendor, contract, and critical path. The 2026 reality is platforms that integrate orchestration directly, staying API-first and modular while providing built-in coordination. The shift isn't about more tools, but smarter platforms that reduce complexity fatigue without losing flexibility.",
      "date_published": "2025-11-17T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cms",
        "api-design",
        "content-ops"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/mach-monolith-2026.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-mach-monolith-in-2026.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/devrel-os",
      "url": "https://timbenniks.dev/writing/devrel-os",
      "title": "The DevRel Operating System",
      "content_text": "Developer Relations is most effective when treated not as marketing, not as community management, and not as evangelism, but as a disciplined operating system for improving the developer journey. DevRel succeeds when it brings clarity to complexity, reduces cognitive load, and creates repeatable success for developers. To do that, teams need frameworks, not just intentions.",
      "summary": "Developer Relations is most effective when treated not as marketing, not as community management, and not as evangelism, but as a disciplined operating system for improving the developer journey. DevRel succeeds when it brings clarity to complexity, reduces cognitive load, and creates repeatable success for developers. To do that, teams need frameworks, not just intentions.",
      "date_published": "2025-11-08T10:00:00.000Z",
      "tags": [
        "devrel"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/devrel-os.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/devrel-os.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/its-time-to-think-of-llms-as-having-abilities-not-protocols",
      "url": "https://timbenniks.dev/writing/its-time-to-think-of-llms-as-having-abilities-not-protocols",
      "title": "It's time to think of LLMs as having abilities, not protocols",
      "content_text": "TL;DR Don't over-engineer standards around protocols. Instead, treat your large-language-model as a toolbox of abilities (like search, translate, query, generate) that you plug into your system. By thinking of LLMs as modular and composable abilities rather than monolithic protocols, AI becomes accessible, practical and aligned with how engineering and product teams already build.",
      "summary": "TL;DR Don't over-engineer standards around protocols. Instead, treat your large-language-model as a toolbox of abilities (like search, translate, query, generate) that you plug into your system. By thinking of LLMs as modular and composable abilities rather than monolithic protocols, AI becomes accessible, practical and aligned with how engineering and product teams already build.",
      "date_published": "2025-11-07T10:00:00.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cms",
        "api-design",
        "content-ops"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/mcp-abilities-2.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/its-time-to-think-of-llms-as-having-abilities-not-protocols.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-age-of-the-super-t-product-person",
      "url": "https://timbenniks.dev/writing/the-age-of-the-super-t-product-person",
      "title": "The Age of the \"Super-T\" Product Person",
      "content_text": "AI is dissolving silos and creating a new kind of product person who thinks like a system, connects disciplines, and prototypes ideas before lunch.",
      "summary": "AI is dissolving silos and creating a new kind of product person who thinks like a system, connects disciplines, and prototypes ideas before lunch.",
      "date_published": "2025-10-07T10:00:00.000Z",
      "tags": [
        "ai-engineering",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/t-shaped.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-age-of-the-super-t-product-person.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-future-of-cms-from-content-management-to-context-management",
      "url": "https://timbenniks.dev/writing/the-future-of-cms-from-content-management-to-context-management",
      "title": "The Future of CMS. It's dying.",
      "content_text": "The CMS is evolving from static publishing to dynamic context management, where AI agents adapt every experience in real time. Welcome to the Context Economy.",
      "summary": "The CMS is evolving from static publishing to dynamic context management, where AI agents adapt every experience in real time. Welcome to the Context Economy.",
      "date_published": "2025-10-05T20:37:36.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cms",
        "personalization",
        "content-ops"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/contentstack-context.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-future-of-cms-from-content-management-to-context-management.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/ai-chat-interfaces-will-replace-web-apps",
      "url": "https://timbenniks.dev/writing/ai-chat-interfaces-will-replace-web-apps",
      "title": "AI chat interfaces will replace web apps",
      "content_text": "A firsthand look at how AI-driven chat interfaces could reshape SaaS and user interaction.",
      "summary": "A firsthand look at how AI-driven chat interfaces could reshape SaaS and user interaction.",
      "date_published": "2025-10-04T20:37:36.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "cms",
        "api-design",
        "content-ops"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/ai-saas.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/ai-chat-interfaces-will-replace-web-apps.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/build-context-aware-mcp-not-api-wrappers",
      "url": "https://timbenniks.dev/writing/build-context-aware-mcp-not-api-wrappers",
      "title": "Build context-aware MCPs, not API wrappers",
      "content_text": "MCP servers shouldn't just expose endpoints, they should adapt to their environment, using project context to guide AI reasoning and execution.",
      "summary": "MCP servers shouldn't just expose endpoints, they should adapt to their environment, using project context to guide AI reasoning and execution.",
      "date_published": "2025-10-04T20:37:36.000Z",
      "tags": [
        "composable-architecture",
        "ai-engineering",
        "api-design",
        "performance",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/q_auto,f_auto/website/mcp-3.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/build-context-aware-mcp-not-api-wrappers.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-nuanced-impact-of-ai-we-should-not-overlook",
      "url": "https://timbenniks.dev/writing/the-nuanced-impact-of-ai-we-should-not-overlook",
      "title": "The nuanced impact of AI we should not overlook",
      "content_text": "AI's impact on the tech industry is more nuanced than often claimed, offering modest productivity improvements while blurring role specializations and fostering a more versatile, holistic approach to development.",
      "summary": "AI's impact on the tech industry is more nuanced than often claimed, offering modest productivity improvements while blurring role specializations and fostering a more versatile, holistic approach to development.",
      "date_published": "2025-02-04T13:05:48.000Z",
      "tags": [
        "ai-engineering",
        "career"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1737883492/hero_l9z88j.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-nuanced-impact-of-ai-we-should-not-overlook.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/we-have-collectively-forgotten-what-monoliths-are",
      "url": "https://timbenniks.dev/writing/we-have-collectively-forgotten-what-monoliths-are",
      "title": "We have collectively forgotten what monoliths are",
      "content_text": "Exploring the misconception of modern CMS platforms as monoliths and clarifying the distinctions between true monolithic systems and today's flexible, API-driven content management solutions.",
      "summary": "Exploring the misconception of modern CMS platforms as monoliths and clarifying the distinctions between true monolithic systems and today's flexible, API-driven content management solutions.",
      "date_published": "2025-01-10T13:05:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "frontend",
        "product-strategy"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1736502870/website/monoliths.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/we-have-collectively-forgotten-what-monoliths-are.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/universal-cms-the-wheel-we-are-reinventing",
      "url": "https://timbenniks.dev/writing/universal-cms-the-wheel-we-are-reinventing",
      "title": "Universal CMS the wheel we're reinventing",
      "content_text": "Universal CMS reshapes CMS by blending headless and traditional, empowering developers and content creators. But are we reinventing the wheel here?",
      "summary": "Universal CMS reshapes CMS by blending headless and traditional, empowering developers and content creators. But are we reinventing the wheel here?",
      "date_published": "2024-11-13T13:05:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "frontend",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1731438927/website/title.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/universal-cms-the-wheel-we-are-reinventing.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/sdks-use-them-or-not",
      "url": "https://timbenniks.dev/writing/sdks-use-them-or-not",
      "title": "SDKs are everywhere. But should you use them?",
      "content_text": "Explore the significance of Software Development Toolkits (SDKs) in modern development, their advantages, and when you might want to skip them. From enhancing productivity to integrating complex functionalities seamlessly, the right SDK can accelerate your projects. But what about GraphQL-based systems or the flexibility of headless architectures? Dive into the pros and cons to make an informed decision.",
      "summary": "Explore the significance of Software Development Toolkits (SDKs) in modern development, their advantages, and when you might want to skip them. From enhancing productivity to integrating complex functionalities seamlessly, the right SDK can accelerate your projects. But what about GraphQL-based systems or the flexibility of headless architectures? Dive into the pros and cons to make an informed decision.",
      "date_published": "2024-09-29T12:05:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "performance",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1727615642/website/sdks.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/sdks-use-them-or-not.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/different-approaches-to-visual-editing",
      "url": "https://timbenniks.dev/writing/different-approaches-to-visual-editing",
      "title": "The different approaches to visual editing in headless CMS",
      "content_text": "This article compares different approaches to visual editing in headless CMS platforms, outlining the benefits and tradeoffs of options ranging from basic previews to full WYSIWYG editors.",
      "summary": "This article compares different approaches to visual editing in headless CMS platforms, outlining the benefits and tradeoffs of options ranging from basic previews to full WYSIWYG editors.",
      "date_published": "2024-07-25T10:32:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1721896213/website/cms_visual_editing_approaches.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/different-approaches-to-visual-editing.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/how-i-supercharched-my-websites-speed",
      "url": "https://timbenniks.dev/writing/how-i-supercharched-my-websites-speed",
      "title": "How I supercharched my website's speed",
      "content_text": "In this blog post, I want to share how I transformed my website into the fastest site I've ever built. I'll walk you through the steps, my unconventional decisions, and the tools I used to achieve this feat.",
      "summary": "In this blog post, I want to share how I transformed my website into the fastest site I've ever built. I'll walk you through the steps, my unconventional decisions, and the tools I used to achieve this feat.",
      "date_published": "2024-07-01T13:05:48.000Z",
      "tags": [
        "performance",
        "cloud-infra",
        "frontend"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1719837465/website/fast-website-poster.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/how-i-supercharched-my-websites-speed.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/choosing-the-right-visual-editor",
      "url": "https://timbenniks.dev/writing/choosing-the-right-visual-editor",
      "title": "Choosing the right visual editor for your website Platform-First vs. Code-First",
      "content_text": "This post explores two main types of visual editors platform-first and code-first. I compare their functionalities, pros, and cons to help you choose the right solution for your development needs.",
      "summary": "This post explores two main types of visual editors platform-first and code-first. I compare their functionalities, pros, and cons to help you choose the right solution for your development needs.",
      "date_published": "2024-06-28T13:05:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "frontend",
        "developer-experience"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1719585541/website/poster.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/choosing-the-right-visual-editor.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/team-is-key-when-going-headless",
      "url": "https://timbenniks.dev/writing/team-is-key-when-going-headless",
      "external_url": "https://hygraph.com/blog/page-builder-cms-vs-data-modeler-cms",
      "title": "Your team is the key to success when going headless",
      "content_text": "People's choices, ability to roll with the punches, and how well they play in the sandbox together bring the magic of headless technology to life.",
      "summary": "People's choices, ability to roll with the punches, and how well they play in the sandbox together bring the magic of headless technology to life.",
      "date_published": "2024-04-29T13:05:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "frontend",
        "product-strategy"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fmedia.graphassets.com%2FicyDJDb6Shmzx7rhX4bG",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/team-is-key-when-going-headless.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/page-builder-cms-vs-data-modeler-cms",
      "url": "https://timbenniks.dev/writing/page-builder-cms-vs-data-modeler-cms",
      "external_url": "https://hygraph.com/blog/page-builder-cms-vs-data-modeler-cms",
      "title": "CMS Showdown do you need a page builder or a data modeler?",
      "content_text": "Explore the differences between page builder and data modeler CMSs, their unique features, and how they cater to varying organizational needs.",
      "summary": "Explore the differences between page builder and data modeler CMSs, their unique features, and how they cater to varying organizational needs.",
      "date_published": "2024-03-12T13:05:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "content-ops",
        "frontend",
        "product-strategy"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fmedia.graphassets.com%2FNzxmjCxvTRqg3sTb9JFj",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/page-builder-cms-vs-data-modeler-cms.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-content-graph-is-the-future",
      "url": "https://timbenniks.dev/writing/the-content-graph-is-the-future",
      "external_url": "https://hygraph.com/blog/the-content-graph-is-the-future",
      "title": "The content Graph is the future",
      "content_text": "Content management is as essential as it is complex, especially at scale. As brands grow, they often...",
      "summary": "Content management is as essential as it is complex, especially at scale. As brands grow, they often...",
      "date_published": "2023-12-05T10:40:00.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "performance",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1ilcbgm74yygk14s4g7.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-content-graph-is-the-future.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/what-type-of-content-organization-do-you-need",
      "url": "https://timbenniks.dev/writing/what-type-of-content-organization-do-you-need",
      "external_url": "https://hygraph.com/blog/what-type-of-content-organization-do-you-need",
      "title": "What type of content organization do you need?",
      "content_text": "Different ways of working require different approaches to content design. In this post, I will...",
      "summary": "Different ways of working require different approaches to content design. In this post, I will...",
      "date_published": "2023-11-12T09:03:33.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "content-ops",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd58lvz3nrm8lre4gdtuw.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/what-type-of-content-organization-do-you-need.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-real-deal-about-content-management-buzzword",
      "url": "https://timbenniks.dev/writing/the-real-deal-about-content-management-buzzword",
      "external_url": "https://hygraph.com/blog/the-real-deal-about-content-management-buzzwords",
      "title": "The real deal about content management buzzwords",
      "content_text": "Buzzwords are labels that describe tech approaches that become so commonplace over time that the...",
      "summary": "Buzzwords are labels that describe tech approaches that become so commonplace over time that the...",
      "date_published": "2023-09-28T14:43:37.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "cloud-infra",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr5frm3ra3q3liidcpev.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-real-deal-about-content-management-buzzword.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-future-of-headless-cms-content-federation-with-graphql",
      "url": "https://timbenniks.dev/writing/the-future-of-headless-cms-content-federation-with-graphql",
      "external_url": "https://hygraph.com/blog/content-federation-with-graphql",
      "title": "The future of headless CMS Content Federation with GraphQL",
      "content_text": "Federation is a popular topic of conversation these days, and for good reason. With the ever-growing...",
      "summary": "Federation is a popular topic of conversation these days, and for good reason. With the ever-growing...",
      "date_published": "2023-09-28T14:39:16.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "content-ops",
        "cloud-infra"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9pk8b2ihfddxqlt3w4tu.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-future-of-headless-cms-content-federation-with-graphql.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/new-job-alert",
      "url": "https://timbenniks.dev/writing/new-job-alert",
      "title": "New job alert - Hygraph 2023",
      "content_text": "After an exciting journey at Uniform, it's time for a new adventure. At Uniform, we thrived during...",
      "summary": "After an exciting journey at Uniform, it's time for a new adventure. At Uniform, we thrived during...",
      "date_published": "2023-08-16T13:42:10.000Z",
      "tags": [
        "cms",
        "product-strategy",
        "devrel"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fadfg5ciysfamka395zir.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/new-job-alert.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/this-is-headless-20",
      "url": "https://timbenniks.dev/writing/this-is-headless-20",
      "title": "This is headless 2.0",
      "content_text": "That’s a bold title, but it’s high time to change how we work with headless technology. I wrote about...",
      "summary": "That’s a bold title, but it’s high time to change how we work with headless technology. I wrote about...",
      "date_published": "2023-07-11T07:48:19.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "performance",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4ykeb6acv0q288ygpaj.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/this-is-headless-20.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-lost-promise-of-headless",
      "url": "https://timbenniks.dev/writing/the-lost-promise-of-headless",
      "external_url": "https://uniform.dev/blogs/the-lost-promise-of-headless",
      "title": "The lost promise of headless",
      "content_text": "In recent years, headless technology, which boosts performance, developer experience, and...",
      "summary": "In recent years, headless technology, which boosts performance, developer experience, and...",
      "date_published": "2023-06-26T18:18:19.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "performance",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrvfb6a8wh5lt0mbyzat.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-lost-promise-of-headless.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/level-up-your-collaboration-game-developer-insights-for-winning-with-marketing-pro",
      "url": "https://timbenniks.dev/writing/level-up-your-collaboration-game-developer-insights-for-winning-with-marketing-pro",
      "external_url": "https://uniform.dev/blogs/level-up-your-collaboration-game-developer-insights-for-winning-with",
      "title": "Level up your collaboration game Developer insights for winning with marketing pros",
      "content_text": "Building outstanding user experiences takes, first and foremost, effective collaboration between...",
      "summary": "Building outstanding user experiences takes, first and foremost, effective collaboration between...",
      "date_published": "2023-05-03T15:49:29.000Z",
      "tags": [
        "performance",
        "product-strategy",
        "devrel"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhfuu567f1khlxvglcn0.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/level-up-your-collaboration-game-developer-insights-for-winning-with-marketing-pro.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/how-to-get-your-webcam-to-look-decent-in-a-few-simple-steps",
      "url": "https://timbenniks.dev/writing/how-to-get-your-webcam-to-look-decent-in-a-few-simple-steps",
      "title": "How to get your webcam to look decent in a few simple steps",
      "content_text": "If you have used a webcam before you know what it means to look like shit on camera. Even the most...",
      "summary": "If you have used a webcam before you know what it means to look like shit on camera. Even the most...",
      "date_published": "2023-03-20T13:01:35.000Z",
      "tags": [
        "content-ops",
        "developer-experience",
        "devrel",
        "media-production"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Finfev45k3ve6i4dgtu2r.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/how-to-get-your-webcam-to-look-decent-in-a-few-simple-steps.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/why-i-didnt-run-the-2016-marathon",
      "url": "https://timbenniks.dev/writing/why-i-didnt-run-the-2016-marathon",
      "title": "Why I didn't run the 2016 marathon",
      "content_text": "After four and a half months of full on training I’ve decided not to run the Amsterdam marathon on...",
      "summary": "After four and a half months of full on training I’ve decided not to run the Amsterdam marathon on...",
      "date_published": "2023-03-18T22:52:37.000Z",
      "tags": [
        "personal"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fafpsw3jbsie5bf7w8wp9.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/why-i-didnt-run-the-2016-marathon.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-2015-paris-maratho",
      "url": "https://timbenniks.dev/writing/the-2015-paris-maratho",
      "title": "The 2015 Paris marathon",
      "content_text": "Exactly one year ago, when we had just moved to Paris, the marathon passed by our apartment in Rue...",
      "summary": "Exactly one year ago, when we had just moved to Paris, the marathon passed by our apartment in Rue...",
      "date_published": "2023-03-18T22:45:48.000Z",
      "tags": [
        "personal"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furlbqaankzj82uhwrfq7.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-2015-paris-maratho.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/my-fitness-story",
      "url": "https://timbenniks.dev/writing/my-fitness-story",
      "title": "My Fitness Story",
      "content_text": "From fat and sick to slim and happy   Aside from a short period in high school I have always...",
      "summary": "From fat and sick to slim and happy   Aside from a short period in high school I have always...",
      "date_published": "2023-03-18T22:39:46.000Z",
      "tags": [
        "personal"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86xayxbotaqwk8get75h.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/my-fitness-story.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/make-the-web-greener-luxury-edition",
      "url": "https://timbenniks.dev/writing/make-the-web-greener-luxury-edition",
      "external_url": "https://www.valtech.com/insights/make-the-web-greener-luxury-edition/",
      "title": "Make the Web Greener, Luxury Edition",
      "content_text": "If the internet were a country, it would be the world’s sixth biggest polluter.   The...",
      "summary": "If the internet were a country, it would be the world’s sixth biggest polluter.   The...",
      "date_published": "2023-03-18T22:30:27.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "performance",
        "cloud-infra",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3e00qrk4jojitb5tu06.jpg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/make-the-web-greener-luxury-edition.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/how-to-dynamically-stream-video",
      "url": "https://timbenniks.dev/writing/how-to-dynamically-stream-video",
      "title": "How to dynamically stream video",
      "content_text": "Build it yourself or use Cloudinary   Dynamic video streaming is a video delivery technique...",
      "summary": "Build it yourself or use Cloudinary   Dynamic video streaming is a video delivery technique...",
      "date_published": "2023-03-18T21:56:45.000Z",
      "tags": [
        "performance",
        "cloud-infra",
        "frontend",
        "developer-experience",
        "devrel"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wx2ix9t60eajoccgjh7.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/how-to-dynamically-stream-video.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/uniform-is-nuxt-3-read",
      "url": "https://timbenniks.dev/writing/uniform-is-nuxt-3-read",
      "external_url": "https://uniform.dev/blogs/uniforms-latest-sdk-fully-supports-vue-3-and-nuxt-3",
      "title": "Uniform is Nuxt 3 ready",
      "content_text": "We are excited to announce that the latest iteration of the Uniform SDK is fully compatible with Vue...",
      "summary": "We are excited to announce that the latest iteration of the Uniform SDK is fully compatible with Vue...",
      "date_published": "2023-03-18T13:10:06.000Z",
      "tags": [
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96gzr0p69e9frwbj3i8w.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/uniform-is-nuxt-3-read.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/digital-experience-platforms-the-old-versus-the-new",
      "url": "https://timbenniks.dev/writing/digital-experience-platforms-the-old-versus-the-new",
      "external_url": "https://uniform.dev/blogs/digital-experience-composition-dxc/difference-between-dxp-and-dxcp",
      "title": "Digital experience platforms the old versus the new",
      "content_text": "Digital experience platforms (DXPs) and the more modern digital experience composition platforms...",
      "summary": "Digital experience platforms (DXPs) and the more modern digital experience composition platforms...",
      "date_published": "2023-03-18T13:05:48.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "content-ops",
        "cloud-infra"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1tc0ds73edh613y9yg6.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/digital-experience-platforms-the-old-versus-the-new.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/uniform-dxcp-the-what-why-and-how",
      "url": "https://timbenniks.dev/writing/uniform-dxcp-the-what-why-and-how",
      "external_url": "https://uniform.dev/blogs/uniform-dxcp-the-what-why-and-how",
      "title": "Uniform DXCP the what, why, and how",
      "content_text": "Nowadays, you’re hard pressed to find an application with all the functionalities you need for...",
      "summary": "Nowadays, you’re hard pressed to find an application with all the functionalities you need for...",
      "date_published": "2023-03-18T13:03:16.000Z",
      "tags": [
        "composable-architecture",
        "performance"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0iccm5uux0ndu9ulnc2g.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/uniform-dxcp-the-what-why-and-how.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/how-to-sniff-out-the-glue-monster",
      "url": "https://timbenniks.dev/writing/how-to-sniff-out-the-glue-monster",
      "external_url": "https://uniform.dev/blogs/how-to-sniff-out-the-glue-monster",
      "title": "How to sniff out the Glue Monster",
      "content_text": "Even though you don’t see it, glue code is everywhere. Since the pendulum swung from monolithic...",
      "summary": "Even though you don’t see it, glue code is everywhere. Since the pendulum swung from monolithic...",
      "date_published": "2023-03-18T13:00:21.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "performance",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz8mwj68dscwvzuvcdd4y.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/how-to-sniff-out-the-glue-monster.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-future-of-managing-projects-at-agencie",
      "url": "https://timbenniks.dev/writing/the-future-of-managing-projects-at-agencie",
      "external_url": "https://uniform.dev/blogs/composable-architecture/the-future-of-managing-projects-at-agencies",
      "title": "The future of managing projects at agencies",
      "content_text": "Calling for a revolution in how agencies run tech projects   I spent a lot of time working...",
      "summary": "Calling for a revolution in how agencies run tech projects   I spent a lot of time working...",
      "date_published": "2023-03-18T12:56:10.000Z",
      "tags": [
        "composable-architecture",
        "product-strategy"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipu6a76iegjp4d19mb0u.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-future-of-managing-projects-at-agencie.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/fast-personalized-pages-with-vercel-edge-middleware-and-uniform",
      "url": "https://timbenniks.dev/writing/fast-personalized-pages-with-vercel-edge-middleware-and-uniform",
      "external_url": "https://uniform.dev/blogs/personalization/blazing-fast-personalized-pages-with-vercel-edge-middleware-and-uniform",
      "title": "Fast, personalized pages with Vercel Edge Middleware and Uniform",
      "content_text": "To maintain an engaging relationship with your audience and increase conversions to your site, you...",
      "summary": "To maintain an engaging relationship with your audience and increase conversions to your site, you...",
      "date_published": "2023-03-18T12:49:56.000Z",
      "tags": [
        "composable-architecture",
        "cms",
        "api-design",
        "personalization",
        "performance"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1yp1gg5ldu4y8tozle7.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/fast-personalized-pages-with-vercel-edge-middleware-and-uniform.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-move-from-monolithic-to-composable-architectures",
      "url": "https://timbenniks.dev/writing/the-move-from-monolithic-to-composable-architectures",
      "external_url": "https://uniform.dev/blogs/composable-architecture/composable-architectures-are-the-future-of-the-digital-sphere",
      "title": "The move from monolithic to composable architectures",
      "content_text": "Success in business can be attributed to many factors, notably team talent and efficacy of products...",
      "summary": "Success in business can be attributed to many factors, notably team talent and efficacy of products...",
      "date_published": "2023-03-13T20:42:55.000Z",
      "tags": [
        "composable-architecture",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56u97go8avwyexrr01nx.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-move-from-monolithic-to-composable-architectures.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/mach-versus-monolithic-suites",
      "url": "https://timbenniks.dev/writing/mach-versus-monolithic-suites",
      "external_url": "https://uniform.dev/blogs/composable-architecture/mach-versus-monolithic-suites#mach-as-an-evolution-of-monoliths",
      "title": "MACH versus monolithic suites",
      "content_text": "Today, with consumers fast becoming digitally advanced, companies realize that old technologies are...",
      "summary": "Today, with consumers fast becoming digitally advanced, companies realize that old technologies are...",
      "date_published": "2023-03-13T20:37:36.000Z",
      "tags": [
        "composable-architecture",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfwuyqdwlw3du1k96z1l.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/mach-versus-monolithic-suites.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-mach-monolith",
      "url": "https://timbenniks.dev/writing/the-mach-monolith",
      "external_url": "https://uniform.dev/blogs/composable-architecture/the-mach-monolith",
      "title": "The MACH monolith",
      "content_text": "For years, the headless concept went through the nerd vine at boardrooms, pushing execs to take...",
      "summary": "For years, the headless concept went through the nerd vine at boardrooms, pushing execs to take...",
      "date_published": "2023-03-13T20:20:45.000Z",
      "tags": [
        "composable-architecture",
        "frontend"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdj396fv4iyh8zce4rsg.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-mach-monolith.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/the-future-of-jamstack-is-composable",
      "url": "https://timbenniks.dev/writing/the-future-of-jamstack-is-composable",
      "title": "The future of jamstack is composable",
      "content_text": "This post is either for developers who want an “at-scale” overview of modern architecture or for...",
      "summary": "This post is either for developers who want an “at-scale” overview of modern architecture or for...",
      "date_published": "2022-02-23T13:04:08.000Z",
      "tags": [
        "composable-architecture",
        "content-ops"
      ],
      "image": "http://res.cloudinary.com/dwfcofnrd/image/fetch/f_auto,q_auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fso0lvl9w5rea6i7sfp6u.jpeg",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/the-future-of-jamstack-is-composable.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/create-a-performant-youtube-embed-with-a-native-web-component",
      "url": "https://timbenniks.dev/writing/create-a-performant-youtube-embed-with-a-native-web-component",
      "external_url": "https://cloudinary.com/blog/guest_post/create-a-performant-youtube-embed-with-a-native-web-component",
      "title": "Create a performant YouTube embed with a native web component",
      "content_text": "In this Media Jam you will learn how to create a native web component that replaces the default YouTube iframe embed.",
      "summary": "In this Media Jam you will learn how to create a native web component that replaces the default YouTube iframe embed.",
      "date_published": "2021-05-20T13:05:48.000Z",
      "tags": [
        "frontend",
        "media-production"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1719585541/website/native-yt-player.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/create-a-performant-youtube-embed-with-a-native-web-component.md"
      }
    },
    {
      "id": "https://timbenniks.dev/writing/creating-a-custom-video-player-in-vue",
      "url": "https://timbenniks.dev/writing/creating-a-custom-video-player-in-vue",
      "external_url": "https://cloudinary.com/blog/guest_post/creating-a-custom-video-player-in-vue",
      "title": "Creating a custom video player in Vue.js",
      "content_text": "In this Media Jam you will learn how to create a video player with custom controls and event handling in Vue.js.",
      "summary": "In this Media Jam you will learn how to create a video player with custom controls and event handling in Vue.js.",
      "date_published": "2021-05-18T13:05:48.000Z",
      "tags": [
        "frontend",
        "media-production"
      ],
      "image": "https://res.cloudinary.com/dwfcofnrd/image/upload/v1719585541/website/vue-video-player-poster.png",
      "_markdown": {
        "url": "https://timbenniks.dev/writing/creating-a-custom-video-player-in-vue.md"
      }
    }
  ],
  "_social": [
    "https://linkedin.com/in/timbenniks",
    "https://github.com/timbenniks",
    "https://youtube.com/timbenniks",
    "https://bsky.app/profile/timbenniks.dev",
    "https://www.npmjs.com/~timbenniks",
    "https://twitter.com/timbenniks"
  ]
}