{
  "name": "Builder Weekly Tutorials",
  "license": "CC BY 4.0",
  "licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
  "url": "https://thebuilderweekly.com/tutorials",
  "repository": "https://github.com/thebuilderweekly/ai-building-tutorials",
  "lastUpdated": "2026-04-12T23:04:48.313Z",
  "totalEntries": 12,
  "pillars": [
    {
      "id": "accountability",
      "label": "Accountability",
      "description": "Proving agent work actually happened. Scheduling, verifying, and auditing agent outputs so you know the work was done, not just claimed.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/accountability",
      "entryCount": 2
    },
    {
      "id": "memory",
      "label": "Memory",
      "description": "Persistent state across sessions. Writing, retrieving, and scoping agent memory so the agent gets better with every interaction.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/memory",
      "entryCount": 2
    },
    {
      "id": "visibility",
      "label": "Visibility",
      "description": "Making agent-built sites visible to crawlers. Exposing content so AI crawlers and retrieval systems can actually read it.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/visibility",
      "entryCount": 1
    },
    {
      "id": "agent-teams",
      "label": "Agent Teams",
      "description": "Running coordinated multi-agent systems. Composing specialized agents into a workflow with typed handoffs that survive production.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/agent-teams",
      "entryCount": 0
    },
    {
      "id": "scoping",
      "label": "Scoping",
      "description": "Killing bad ideas before building. Using agents to critique, stress-test, and triage ideas so you do not ship the wrong thing.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/scoping",
      "entryCount": 0
    },
    {
      "id": "operational",
      "label": "Operational",
      "description": "Task-specific entries that do not fit a single pillar. Competitor pricing watch, issue triage, RSS filtering, and other one-shot utilities.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/operational",
      "entryCount": 2
    },
    {
      "id": "payments",
      "label": "Payments",
      "description": "Patterns for agents handling money. Charges, subscriptions, refunds, payouts. Idempotency, webhook verification, and the failure modes that matter when dollars are at stake.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/payments",
      "entryCount": 1
    },
    {
      "id": "foundations",
      "label": "Foundations",
      "description": "What every production agent needs underneath it. Observability, budget enforcement, retry logic, error handling, the stack you would otherwise reinvent for every project.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/foundations",
      "entryCount": 3
    },
    {
      "id": "communication",
      "label": "Communication",
      "description": "Patterns for agents that interact with humans through messages. Email, chat, notifications. Reading inboxes, drafting responses, gating sends through human approval.",
      "url": "https://thebuilderweekly.com/tutorials/pillars/communication",
      "entryCount": 1
    }
  ],
  "entries": [
    {
      "id": "agent-email-triage",
      "title": "Build an AI agent that triages your inbox without sending anything embarrassing",
      "slug": "agent-email-triage",
      "pillar": "communication",
      "clusterTags": [
        "gmail",
        "classification",
        "human-approval"
      ],
      "soulLine": "A human triages 200 emails in 90 minutes with declining accuracy as fatigue sets in; an agent triages 200 emails in 30 seconds with consistent classification and gates every send through human review.",
      "beforeState": "Your inbox has 247 unread emails. You spend an hour every morning sorting them and still miss the important ones because they got buried under newsletters and sales pitches.",
      "afterState": "The agent reads new mail every 15 minutes, classifies each by importance and topic, drafts responses to the high-priority ones, and presents them in a daily review queue you approve before anything sends.",
      "tools": [
        "gmail",
        "anthropic-api"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/agent-email-triage",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/agent-email-triage",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "multi-step-workflows-with-approval",
      "title": "Build multi-step AI agent workflows with human approval at the right moments",
      "slug": "multi-step-workflows-with-approval",
      "pillar": "foundations",
      "clusterTags": [
        "orchestration",
        "human-in-the-loop",
        "state-machines"
      ],
      "soulLine": "An autonomous agent doing a 10-step task fully autonomously will eventually take a wrong path costing real money or trust; a state-machine agent with approval gates at the right steps gets the same speed with bounded risk.",
      "beforeState": "Your agent runs a 10-step workflow end-to-end. Step 7 makes a wrong call. You don't notice until step 10 produces something embarrassing or expensive.",
      "afterState": "The workflow pauses at the steps where a wrong call would be costly, presents its decision to you for approval, and only proceeds after you confirm or correct.",
      "tools": [
        "cueapi",
        "anthropic-api"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/multi-step-workflows-with-approval",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/multi-step-workflows-with-approval",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "agent-image-generation",
      "title": "Generate images from your AI agent without burning a hundred dollars on bad outputs",
      "slug": "agent-image-generation",
      "pillar": "operational",
      "clusterTags": [
        "replicate",
        "image-generation",
        "async"
      ],
      "soulLine": "A naive image generation agent produces 100 mediocre images at $5 total cost; a properly-prompted agent with output verification produces 10 great images at the same cost.",
      "beforeState": "Your agent generates images for every blog post but most of them are bad. You're paying for hundreds of generations to get a few usable results.",
      "afterState": "The agent uses a structured prompt template, generates with controlled variations, runs each output through a quick quality check, and only keeps results that pass.",
      "tools": [
        "replicate",
        "anthropic-api"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/agent-image-generation",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/agent-image-generation",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "agent-payment-processing",
      "title": "Process payments from your AI agent without losing money to retries",
      "slug": "agent-payment-processing",
      "pillar": "payments",
      "clusterTags": [
        "stripe",
        "idempotency",
        "webhooks"
      ],
      "soulLine": "An agent retrying a charge without idempotency keys has charged the same customer 47 times before a human noticed; with proper idempotency the same agent can safely retry indefinitely.",
      "beforeState": "Your agent triggers a charge, gets a network timeout, retries, and now your customer is charged twice. You discover this through a chargeback notice three days later.",
      "afterState": "The agent retries any failed charge as many times as it wants, with idempotency keys ensuring each logical payment results in exactly one actual charge regardless of network conditions.",
      "tools": [
        "stripe",
        "anthropic-api"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/agent-payment-processing",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/agent-payment-processing",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "scoped-memory-per-user",
      "title": "Scope agent memory per user without leaking across sessions",
      "slug": "scoped-memory-per-user",
      "pillar": "memory",
      "clusterTags": [
        "mem0",
        "isolation",
        "multi-tenant"
      ],
      "soulLine": "An agent can index and retrieve against millions of per-user memory stores in parallel, which a human operating the same product would need a team and a custom dashboard to match.",
      "beforeState": "Your agent's memory is a single global store and one user's context bleeds into another user's responses.",
      "afterState": "Every memory write is namespaced to a user id, and retrieval only sees the requesting user's own history.",
      "tools": [
        "mem0"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/scoped-memory-per-user",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/scoped-memory-per-user",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "llms-txt-as-contract",
      "title": "Ship an llms.txt that tells agents what your site is",
      "slug": "llms-txt-as-contract",
      "pillar": "visibility",
      "clusterTags": [
        "llms-txt",
        "crawlers",
        "agent-readable"
      ],
      "soulLine": "An agent that reads a well-structured llms.txt picks up your entire corpus in one pass, which a human writing documentation by hand would take months to make this legible.",
      "beforeState": "An AI crawler visiting your site sees hundreds of pages with no hint about which ones matter or how they relate.",
      "afterState": "The crawler reads llms.txt, gets a guided tour of your corpus, and indexes the pages that matter in the order you chose.",
      "tools": [],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/llms-txt-as-contract",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/llms-txt-as-contract",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "token-budget-enforcement",
      "title": "Stop your AI agent from running up a thousand-dollar bill overnight",
      "slug": "token-budget-enforcement",
      "pillar": "foundations",
      "clusterTags": [
        "budgets",
        "rate-limiting",
        "cost-control"
      ],
      "soulLine": "An agent looping on a malformed input can burn through a month's API budget in 20 minutes; a budget-enforced agent stops itself before the bill arrives.",
      "beforeState": "Your agent hits an edge case that puts it in a retry loop. By morning you have a thousand-dollar Anthropic invoice and an angry email from your CFO.",
      "afterState": "The agent tracks cumulative spend per session and per day, throttles when approaching limits, switches to cheaper models when over thresholds, and stops entirely before damaging your bill.",
      "tools": [
        "anthropic-api"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/token-budget-enforcement",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/token-budget-enforcement",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "agent-observability-stack",
      "title": "The observability stack every production AI agent needs",
      "slug": "agent-observability-stack",
      "pillar": "foundations",
      "clusterTags": [
        "logging",
        "tracing",
        "metrics",
        "debugging"
      ],
      "soulLine": "An agent without observability is a black box; an agent with structured logs, traces, and per-step latency metrics tells you exactly where it failed and why, before the user noticed.",
      "beforeState": "Your agent failed last night and you have no idea where in its 12-step workflow it broke. You're rerunning it manually with print statements to find out.",
      "afterState": "The agent emits structured events at every step. You query the trace, see the exact failure, and ship a fix in minutes instead of hours.",
      "tools": [
        "anthropic-api"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/agent-observability-stack",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/agent-observability-stack",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "daily-cron-verification",
      "title": "Verify every scheduled job actually ran",
      "slug": "daily-cron-verification",
      "pillar": "accountability",
      "clusterTags": [
        "cueapi",
        "cron",
        "job-verification"
      ],
      "soulLine": "An agent can check a hundred cron outcomes per second against expected state, which a human doing daily ops review does in thirty minutes and misses silently.",
      "beforeState": "You have ten cron jobs, each firing daily. When one fails silently you notice a week later when a customer emails.",
      "afterState": "An agent reads every cron run's outcome, compares it to expected state, and surfaces the failures within seconds of the scheduled fire time.",
      "tools": [
        "cueapi"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/daily-cron-verification",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/daily-cron-verification",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-12",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "accountability-loop",
      "title": "Build an accountability loop for your AI agent",
      "slug": "accountability-loop",
      "pillar": "accountability",
      "clusterTags": [
        "cueapi",
        "verification",
        "outcome-tracking"
      ],
      "soulLine": "An agent can verify its own work at machine speed across hundreds of tasks simultaneously, which no human can do without a dashboard and hours of spot-checking.",
      "beforeState": "Your agent says it sent the email but you have no proof it actually did.",
      "afterState": "CueAPI has timestamped evidence the email was delivered, with the delivery receipt as the external_id.",
      "tools": [
        "cueapi"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/accountability-loop",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/accountability-loop",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-11",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "rss-daily-brief",
      "title": "Filter a hundred RSS feeds into a daily brief worth reading",
      "slug": "rss-daily-brief",
      "pillar": "operational",
      "clusterTags": [
        "rss",
        "filtering",
        "briefs"
      ],
      "soulLine": "An agent applies a consistent editorial filter to thousands of items per day, which a human trying to maintain the same signal-to-noise ratio would spend two hours on and still miss things.",
      "beforeState": "You have a hundred RSS feeds producing five hundred items a day. Reading them takes two hours. You stop reading them.",
      "afterState": "Every morning the agent delivers fifteen items that match your editorial criteria, ranked by predicted signal strength.",
      "tools": [
        "anthropic-api"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/rss-daily-brief",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/rss-daily-brief",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-11",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    },
    {
      "id": "persistent-memory-mem0",
      "title": "Give your agent memory that survives a restart",
      "slug": "persistent-memory-mem0",
      "pillar": "memory",
      "clusterTags": [
        "mem0",
        "persistence",
        "context-retrieval"
      ],
      "soulLine": "An agent with persistent memory improves its responses over time without retraining, which a human doing the same job would need a notebook and perfect recall to match.",
      "beforeState": "Your agent forgets everything when the session ends and starts every conversation from zero.",
      "afterState": "The agent retrieves relevant context from previous sessions before responding, getting better with every interaction.",
      "tools": [
        "mem0"
      ],
      "status": "published",
      "url": "https://thebuilderweekly.com/tutorials/persistent-memory-mem0",
      "githubUrl": "https://github.com/thebuilderweekly/ai-building-tutorials/tree/main/entries/persistent-memory-mem0",
      "author": "tbw-ai",
      "contributors": [],
      "publishedAt": "2026-04-11",
      "lastVerifiedAt": "2026-04-12",
      "freshnessWindowDays": 90
    }
  ]
}