Tag: Vertex AI

  • Azure AI Search vs Vertex AI Search: Site Search on the (2026)

    Azure AI Search vs Vertex AI Search: Site Search on the (2026)

    Most “which managed search?” articles compare feature checklists from the vendor docs. We did something more useful: we indexed the same media property’s content into both Azure AI Search and Vertex AI Search, on the free tiers, and watched what each one did with it.

    Short answer: for a content site that wants to be found and cited by AI assistants, Azure AI Search is the pick — not because the relevance is dramatically better, but because it’s the retrieval lineage that sits behind Bing and Copilot, and ~84% of our organic traffic comes from Bing. Vertex AI Search is the stronger turnkey RAG product and grounds beautifully into Gemini. Which one wins depends entirely on whose AI you’re trying to get in front of.

    This is the desk-by-desk breakdown — free-tier ceilings, setup friction, relevance, and ecosystem grounding — from the running lab on tygart.media.

    The free-tier ceilings

    Five-step flow from files to chunk, embed, store, retrieve
    Free-tier ceilings on managed site search.

    The first thing that matters at our scale is what each gives you for $0, perpetually.

    How we do it

    Azure Google Cloud Verdict
    Service Azure AI Search (Free tier) Vertex AI Search —
    Storage 50 MB Generous indexing quota, but query/extraction billed Azure — true perpetual free
    Indexes 3 indexes Multiple data stores Toss-up
    Documents ~10,000 hosted docs Effectively higher, but pay-as-you-go Azure for “always free” certainty
    Cost model Always free, no card pressure Free trial credits, then per-query/extraction Azure — Vertex bills as you scale
    Semantic ranking Available (limited on free) Built in, very strong Google on raw quality

    The honest read: Azure’s 50 MB / 3-index / ~10,000-document free tier is small but genuinely perpetual — it never starts billing at our volume. Vertex AI Search is more capable out of the box but its free posture is trial credits, after which queries and extractive answers meter. For a small content site, Azure’s ceiling is the one you can forget about.

    Setup friction

    How we do it

    Job Azure Google Cloud Verdict
    Get to first results Create service → index → import data source Create app → data store → point at site/GCS Google — faster to “it works”
    Crawl a website directly Indexer add-on, more wiring Website data store crawls URLs natively Google, clearly
    Schema control Fine-grained fields, analyzers, scoring profiles More opinionated, less to tune Azure for control; Google for speed
    Vector / hybrid search Native vector + hybrid (keyword+vector) Native, with built-in embeddings Toss-up; both strong

    Vertex AI Search gets you to a working search box faster — point it at a sitemap or a Cloud Storage bucket and it crawls and chunks for you. Azure AI Search makes you assemble the indexer, but in exchange you get scoring profiles, custom analyzers, and field-level control that pay off once you care about why a result ranks.

    Relevance and semantic ranking

    On raw relevance for a handful of queries against the same corpus, Vertex was slightly better out of the box — its semantic ranking and extractive answers are tuned and ready. Azure matched it once we turned on semantic ranking and tuned a scoring profile, but that’s manual work Vertex does for free.

    The asymmetry: Vertex is better at answering, Azure is better at being controllable. If you want a search box that produces clean extractive answers with zero tuning, Vertex wins. If you want to deliberately shape what ranks (and you’re optimizing content anyway), Azure rewards the effort.

    The grounding angle — whose AI is reading you

    Three stacked layers: chat UI, tools, agent runtime
    Grounding angle — whose AI is reading you.

    This is the line that actually decides it for us.

    Neither Azure AI Search nor Vertex AI Search “submits your site to Bing or Gemini.” But the retrieval architecture you build on signals which ecosystem you’re fluent in. Azure AI Search is the same managed-retrieval lineage Microsoft uses to ground Copilot, and it’s the natural backend for “Bring your own data” grounding into Azure OpenAI / Copilot Studio. Vertex AI Search is the canonical retrieval layer for grounding Gemini — it’s literally the “ground with your own data” path in Google’s stack.

    So the question isn’t “which search is better.” It’s: which AI assistant do you most need to recognize and cite your content? For us, with Bing driving the overwhelming majority of organic traffic, building our retrieval inside Microsoft’s lineage and exposing structured, Copilot-groundable content is the higher-leverage bet.

    What surprised us

    Desk with laptop, checklist notebook, and billing card ready before creating an Anthropic API key
    What surprised us in the comparison.
    • Azure’s 50 MB is smaller than it sounds — and bigger than it needs to be. Pure text content compresses; 10,000 documents of article body is more than a mid-size site has. The ceiling we’d hit first is index count (3), not storage.
    • Vertex’s “free” is the easy thing to misjudge. The trial experience is so smooth you forget it’s metered. Set a budget alert before you point it at a large crawl.
    • Hybrid (keyword + vector) search is now table stakes on both. A year ago this was Azure’s differentiator; Vertex has fully caught up.
    • Vertex crawls websites natively; Azure wants a data source. If your content lives in a bucket or a DB, Azure’s indexer is fine. If you just want to crawl tygart.media and search it, Vertex is less wiring.

    The takeaway

    These are both excellent managed search engines, and at small scale both can run at $0 — Azure perpetually, Vertex on credits. The decision isn’t about relevance deltas measured in single queries.

    Pick Azure AI Search if your strategic goal is to be retrievable and citable inside the Microsoft / Bing / Copilot ecosystem, you want a truly perpetual free tier, and you’re willing to tune scoring profiles for control. That’s us.

    Pick Vertex AI Search if you want the fastest path to a high-quality answering search box, you’re grounding into Gemini, or your content already lives in Google Cloud Storage and you want native crawl-and-chunk with zero schema work.

    If most of your readers arrive through Bing, building your retrieval layer only inside Google’s lineage is the same blind spot as watching only Google Search Console. We build on both — and lean Azure for the citation angle.

    This is part of our “Two Clouds, One Site” series — we run the same media property on both Azure and Google Cloud, on the free tiers, and report what watching both ecosystems actually teaches us. The lab lives on tygart.media; the findings publish here.

    Related on Tygart Media: AI Language vs NL · $0 cloud stack · GEO tactics.

    Frequently asked questions

    Is Azure AI Search really free? Yes — the Free tier is perpetual, not a trial. It includes 50 MB of storage, 3 indexes, and roughly 10,000 hosted documents, and it does not start billing as long as you stay inside those limits. For a small content site that’s enough to run real site search at $0.

    What’s the difference between Azure AI Search and Vertex AI Search? Azure AI Search is a managed retrieval engine you assemble (index, indexer, scoring profiles) and the lineage behind Microsoft’s Copilot grounding. Vertex AI Search is Google’s more turnkey managed search and RAG product that crawls and chunks for you and grounds natively into Gemini. Azure favors control and a perpetual free tier; Vertex favors speed-to-answer and pay-as-you-go scaling.

    Which is better for getting cited by AI assistants? It depends on which assistant matters to you. Azure AI Search aligns with Bing and Copilot grounding; Vertex AI Search aligns with Gemini grounding. If most of your traffic and target citations come from Bing, building retrieval inside Microsoft’s lineage is the stronger bet.

    Does Vertex AI Search have a free tier? Vertex AI Search runs on Google Cloud free trial credits rather than a perpetual always-free tier, and after that, queries and extractive answers are billed per use. It’s easy to start for free, but set a budget alert before pointing it at a large website crawl, because metering starts once credits run out.

    Can I use Azure AI Search to ground my own AI chatbot? Yes. Azure AI Search is the standard “bring your own data” retrieval backend for Azure OpenAI and Copilot Studio, supporting keyword, vector, and hybrid search. You index your content, then have the model retrieve and ground its answers against your index, which keeps responses tied to your source material.

  • Gemini Enterprise Agent Platform Replaces Vertex AI

    Gemini Enterprise Agent Platform Replaces Vertex AI

    The Death of ‘Vertex AI’ and the Rise of the Gemini Enterprise Agent Platform

    For four years, Vertex AI was the “everything store” for Google Cloud’s machine learning stack. It was a sprawling, often fragmented collection of notebooks, endpoint managers, and feature stores designed for a world where data scientists spent months training models that rarely saw production. But at Google Cloud Next 2026, that era ended. In its April 22, 2026 release notes, Google says Vertex AI is now part of the Gemini Enterprise Agent Platform, and its official name-change table maps the old services to new ones: Vertex AI Studio became Agent Studio, Vertex AI Agent Engine became Agent Runtime, and Model Garden carries over as Gemini Enterprise Agent Platform Model Garden.

    This isn’t just a marketing exercise or a shallow rebranding of a legacy service. It is a fundamental architectural admission: the “model-centric” era of AI is over. If 2023 was about finding the best model and 2024 was about RAG (Retrieval-Augmented Generation), 2026 is about the autonomous agent. Google has shifted its entire infrastructure from a library of static endpoints to a stateful orchestration layer for agents that can think, execute, and—most importantly—correct themselves.

    The Architecture Shift: Model-Centric vs. Agent-First

    In the old Vertex AI framework, you deployed a model. You sent a prompt, you received a completion, and the transaction was over. Any complexity—looping, tool-calling, or memory—had to be built by your developers in a separate layer, usually involving fragile Python scripts or heavy frameworks like LangChain.

    The Gemini Enterprise Agent Platform flips this. With the rollout of ADK 2.0 (Agent Development Kit), the “model” is now just a component of an “agent.” In this new architecture, the platform handles the state. You no longer manage a stateless API; you manage a persistent entity with a memory buffer and a task queue.

    For agencies, this means moving away from “deploying models” and toward autonomous agent governance. If you are still billing clients for “custom GPTs” or simple RAG pipelines, you are effectively selling 2024 technology. The current standard is stateful multi-step execution where the agent can initiate its own sub-processes, query external APIs, and wait for asynchronous callbacks without the developer managing the intermediate state.

    ADK 2.0 and the Developer Workflow

    The core of this transition is ADK 2.0. Google’s ADK documentation describes the Agent Development Kit as an open-source framework for building, debugging, and deploying AI agents, and lists structured, graph-based architectures with explicit execution paths as new in ADK 2.0.

    The runtime changed too. According to Google’s Agent Platform release notes, Agent Runtime (formerly Vertex AI Agent Engine) now supports long-running operations of up to seven days, with sub-second cold starts. An agent can stay on the job instead of answering a single request and exiting.

    Agent Studio: Low-Code Orchestration That Actually Works

    Google also renamed Vertex AI Studio as Agent Studio, which its Agent Platform documentation describes as a low-code canvas for designing complex multi-agent reasoning loops. Model Garden is still the catalog; Agent Studio is a visual IDE for agentic loops. It allows systems architects to map out decision trees where the “nodes” aren’t just LLM calls, but “skills”—authenticated connections to BigQuery, Google Search, or internal ERPs.

    The key feature here is stateful multi-step logic. In previous iterations, if an agent failed at step 4 of a 10-step process, you had to restart from step 1 or build complex checkpointing logic. Agent Studio handles the checkpointing natively. For an operator, this reduces the “failure surface area.” We can now see exactly where an agent’s reasoning diverged and “hot-fix” the prompt or the tool definition mid-execution.

    The Hard Truth About Autonomous Agent Governance

    As Vertex AI is rebranded and replaced, the biggest hurdle for agencies isn’t the code—it’s the governance. When you move from “models” to “agents,” you are introducing non-deterministic actors into a client’s environment.

    That makes guardrails, scoped permissions, and human review checkpoints part of the build, not an afterthought.

    Pricing Shift: From Tokens to Outcomes

    The pricing change we’re watching most closely is a move toward outcome-based pricing for specific task completions. As of October 2026, Google’s published Agent Platform pricing still bills on usage, such as compute hours and requests, so treat outcome-based billing as a direction to plan for rather than a launched feature.

    The old model penalized efficiency. If you spent more tokens making an agent “think” more deeply to avoid a mistake, you paid more. An outcome-based model would let you pay per “Successful Task Completion.” That would align Google’s incentives with the agency’s. We would no longer care about the context window length as a cost factor; we care about the “Agentic Success Rate” (ASR).

    For a mid-sized agency, that would simplify the math significantly. If a client wants a support agent that handles 1,000 tickets, you could project a flat cost per resolved ticket rather than guessing how many tokens a “difficult” customer might consume.

    What You Should Do Tomorrow

    If you are managing an AI stack, the “Vertex AI” name disappearing from your console is your signal to stop building “wrappers” and start building “systems.” Here is the tactical path forward:

    1. Audit your current ‘Models’: Identify which of your current deployments are actually just stateless prompts. These are your biggest liabilities. Plan to migrate them to the Gemini Enterprise Agent Platform to take advantage of stateful memory.
    2. Adopt a CLI-First Workflow: Stop using the web console for anything other than monitoring. Use the Gemini CLI and integrate it with Claude Code or your local IDE. The speed of iteration in ADK 2.0 is only visible when you are working in a terminal environment.
    3. Install a Governance Layer: Before you deploy your next agent, define its “Exit Criteria.” Add a review step so that no agent can execute an external API call (like send_email or update_database) without a secondary “Reasoning Audit.”
    4. Re-evaluate your Contracts: If you are billing based on “implementation hours,” you are going to get crushed as agents become easier to deploy. Move toward “Performance-Based Retainers” that mirror outcome-based pricing. If the agent solves the problem, you get paid.

    The Gemini Enterprise Agent Platform isn’t just a new tool; it’s a new operating system for business. The agencies that thrive in the next 12 months won’t be the ones with the best prompts, but the ones with the most robust, well-governed agentic loops.

    Related on Tygart Media: Claude + Gemini architecture · orchestration tools · Copilot vs Gemini.

  • My AI Operating Stack: Notion, Claude & Google Cloud

    My AI Operating Stack: Notion, Claude & Google Cloud

    Last refreshed: October 20, 2026

    A surveyor's tripod with copper, porcelain, and steel legs planted on rocky ground at sunrise above the clouds — representing the Notion, Claude, and Google Cloud three-legged stack
    The three-legged stack — Notion, Claude, Google Cloud — is what’s actually holding up the operation.

    I run a portfolio of businesses — restoration companies, content properties, creative ventures, a software platform, a comedy site, a few things I haven’t decided what to do with yet — on three legs. Notion. Claude. Google Cloud. That’s it. Everything else either fits inside that triangle or it doesn’t last in my stack.

    This article is the doctrine. Not “here’s a list of tools I like.” The actual operating philosophy of why this specific three-piece architecture is what holds the work up, where each leg’s job ends, and what I learned the hard way about which tools belong on the floor instead of the table.

    If you’re trying to decide what your own AI-driven operating stack should look like, what follows is what I’d tell you over coffee.

    Why three legs and not two, four, or twelve

    Three stacked layers: chat UI, tools, agent runtime
    Why three legs — Notion, Claude, Google Cloud.

    I tried twelve. I tried four. I lived for a while with two. Three is what’s left after everything else either failed in production, got absorbed into one of the three legs, or became overhead that didn’t pay for itself.

    The reason it’s not two is that you need a place where state lives, a place where reasoning happens, and a place where heavy compute runs. If you collapse two of those into one tool, the tool has to be excellent at both jobs and almost nothing is. If you keep them separate, each tool gets to be excellent at its actual job.

    The reason it’s not four is that every additional leg multiplies the surface area of what can break, what needs to be monitored, what needs to be paid for, what needs to be learned by every new person you bring in. Four legs sounds like it would be more stable but it isn’t. It’s more rigid. Three legs sit flat on uneven ground.

    The reason it’s not twelve is that I tried that and the cognitive cost of remembering which tool did which job was higher than the work the tools were supposed to be saving.

    Notion is the system of record

    State lives in Notion. That’s the rule. If a piece of information needs to exist tomorrow, it goes in Notion first.

    That includes the things you’d expect — clients, projects, content pipelines, scheduled tasks, the Promotion Ledger that governs which autonomous behaviors are running at what tier — and a lot of things you might not. Meeting notes go in Notion. Random ideas at 11pm go in Notion. The reasons I made a particular architectural decision six months ago go in Notion. Anything I might want Claude to read later goes in Notion.

    The reason this leg has to be Notion specifically — and not, say, a folder of markdown files, or a Google Doc, or Airtable — is structured queryability paired with human-readable rendering. Notion databases let me describe my business in shapes (a content piece is a row, a project is a row, a contact is a row) while keeping every row a real document I can read and write to like a normal page. That dual nature is rare. Most systems force you to pick between structured and prose. Notion lets the same object be both.

    The May 13, 2026 Notion Developer Platform launch made this leg even stronger. Workers, database sync, and the External Agents API mean the system of record can now do active things on its own and host outside agents (including Claude) as native collaborators. Notion stopped being a passive document store and started being a programmable control plane. That’s a big deal for this architecture and I wrote about it in my piece on the platform launch.

    Claude is the reasoning layer

    Three cards for fast volume, daily workhorse, and deep flagship Claude seats
    Claude is the reasoning layer.

    Claude does the thinking. That’s the rule on the second leg.

    Anywhere I would otherwise have to write something from scratch, decide between options, summarize a long document, generate code, audit content, or do any task that requires a brain rather than just a database query, Claude is the first thing I reach for. The work happens in Claude. The result lands in Notion.

    I want to be specific about why Claude and not “an LLM” generically. I have used the others. I have used GPT in production. I have used Gemini in production. They all work. Claude is what I picked, and the reasons aren’t religious.

    First, the writing is recognizable. Claude’s voice has a calibration to it that the others don’t quite have for the kind of work I’m doing — long-form content, operator-voice editorial, technical explainers. I can edit a Claude draft to feel like me much faster than I can edit the others.

    Second, the agentic behavior is the most stable across long sessions. Claude Managed Agents and Claude Code in particular are willing to think for a long time without losing the plot. For multi-step work that involves reading a lot of context, holding it, and acting on it across many turns, the difference is real.

    Third, the tooling around Claude — Claude Code, Cowork, the Agent SDK, MCP — is the most operator-friendly of the bunch right now. The other models will catch up. As of May 2026, Claude is the best fit for how I actually work.

    Fourth, and this matters more than people give it credit for: I am willing to bet on Anthropic the company. I am betting my operations on the leg that bears my reasoning load. Whose roadmap I’m comfortable with, whose values I find legible, whose engineering culture I trust to keep shipping the thing without breaking it underneath me — that’s a real input to the decision, not a soft preference.

    Google Cloud is the substrate

    Four pillars: headless agents, MCP tools, rules/memory, human review
    Google Cloud is the substrate.

    The third leg is the heavy one. Google Cloud is where the things live that have to be reliable in a way that Notion can’t be and Claude isn’t supposed to be.

    The 27 WordPress sites I manage all live on GCP infrastructure. The knowledge-cluster-vm hosts five interconnected sites. The proxy that lets Claude talk safely to WordPress sites runs on Cloud Run. The cron jobs that fire scheduled work, the Python services that handle image pipelines, the AI Media Architect that runs autonomously — all on GCP. Anything that involves real compute, regulated data, behind-a-firewall execution, or sustained reliability lives on the third leg.

    The reason this leg has to be a real cloud and not just a laptop or a Hetzner box is that I run autonomous behaviors. Tier C autonomous behaviors run unattended, which means the substrate they run on has to be more reliable than I am. GCP gives me that. It’s also where Anthropic’s Claude is available through Vertex AI, which means there’s a path where the entire stack can run inside one cloud’s perimeter when that becomes operationally necessary.

    I picked GCP specifically over AWS or Azure for a few reasons. Vertex AI’s first-party Claude access matters to me. The GCP control surface is the one I’m fastest in. Cost-wise it’s been competitive for the workloads I run. None of those are universal — your third leg might be AWS, or Azure, or a hybrid with on-premise hardware. The doctrine isn’t “use GCP.” The doctrine is “have a real substrate that can carry the heavy work.”

    How the three legs hold each other up

    The thing that makes this an actual stack and not just three tools is the load each leg puts on the others.

    Notion holds Claude’s memory. Claude doesn’t have persistent memory across sessions in any deep way — what it remembers is what’s in the prompt and what it’s allowed to look up. Notion is where I put the things I want Claude to know tomorrow. Project briefs, brand voice docs, the Promotion Ledger, client context, my preferences. When Claude starts a session it looks at Notion. When the session is done, what mattered gets written back to Notion. The memory leg is Notion. Without it, Claude is amnesiac and has to be re-briefed every time.

    Claude does the work that Notion can’t and that GCP isn’t shaped for. Notion can hold structured data and run light automation through Workers and database sync. Notion can’t write a 2,000-word article in your voice. GCP can run a reliable cron job and host whatever you want on Cloud Run. GCP isn’t going to read your existing client notes and propose a follow-up email. The reasoning leg is Claude. Without it, you have a database and a server and no one to think.

    GCP holds the things that have to keep running when nobody is watching. Notion can’t host a WordPress site. Claude can’t run a cron job by itself. The compute leg is GCP. Without it, the autonomous behaviors that make this a system instead of a tool collection have nowhere to live.

    Each leg fails gracefully into the others. If Notion is down, GCP keeps the live workloads running and Claude can still do work in a session. If Claude is down, Notion still holds state and GCP still runs the autonomous infrastructure. If GCP is down, the websites are unreachable but the planning surface (Notion) and the reasoning surface (Claude) still let me figure out what to do about it. No single failure takes the whole operation down.

    What I tried that didn’t make the cut

    For honesty’s sake, here’s what I had in earlier versions of the stack that’s no longer there:

    Zapier and Make for orchestration. They worked. They cost real money at the volumes I was running. The May 13 Notion Developer Platform launch absorbed most of what I was using them for into native Notion functionality. What’s left I do with Cloud Run jobs.

    Multiple LLMs for “best tool for the job.” I went through a phase of routing different work to different models. The cognitive overhead of “which one for this task” was higher than any quality gain from the routing. I picked Claude and stayed.

    Custom CRMs and project management tools. Tried several. None of them did the job better than a well-structured set of Notion databases with the right templates and views. The CRM is in Notion now. The project management is in Notion. The pipeline tracking is in Notion.

    A second cloud “for redundancy.” Sounded smart, was actually overhead. If GCP goes down catastrophically I have bigger problems than my stack. Single-cloud is fine for a small operator portfolio.

    Local AI models for cost savings. The math didn’t work for me. I have a powerful workstation that can run open models, but the time cost of running them, debugging them, and maintaining them outweighed the API savings. Claude through the subscription and through Vertex when I need it is what I pay for now.

    Why this matters beyond my own operation

    I write about this not because anyone is required to copy it but because the shape of the answer — three legs, one for state, one for reasoning, one for compute — generalizes.

    If you’re a solo operator, a small agency, a content business, a service business with operational complexity, this shape works. Your specific tool choices for each leg will be different. Maybe your state lives in Airtable instead of Notion. Maybe your reasoning leg is GPT or Gemini. Maybe your substrate is AWS or Vercel or your own bare metal. The three-leg architecture survives the substitutions.

    What doesn’t survive substitutions is collapsing the legs. Putting state and reasoning in the same tool (anyone who has tried to use ChatGPT as their CRM knows what I mean) doesn’t work. Putting reasoning and compute in the same tool means you’re either compromising on reasoning to keep compute simple or compromising on compute to keep reasoning fluid. The separation is where the strength is.

    Where the stack is going next

    Three things I’m watching:

    Notion’s platform maturation. The May 13 launch is version 1 of what Notion as a programmable platform looks like. If Workers and database sync continue to grow into real automation surface, more of what I do on GCP could move to Notion. I don’t expect the heavy stuff to migrate, but the lightweight glue is moving in that direction.

    Claude’s agentic capabilities. Claude Managed Agents and the Agent SDK are getting better fast. Some of what I currently script in Python on Cloud Run will move into Claude-native agentic loops as the agents become more capable of long-running, reliable work without supervision.

    The fortress pattern on GCP. The ability to run Claude inside a private GCP perimeter via Vertex AI is becoming more important as I take on regulated industry work. The substrate leg is staying GCP precisely because of this — the perimeter matters.

    The stack will evolve. The three-leg shape probably won’t.

    Related on Tygart Media: how to use Claude · GA4 Intelligence Kits.

    Frequently Asked Questions

    Why Notion and not Airtable, Coda, or Obsidian?

    Notion’s combination of structured databases and human-readable page rendering is what makes it work as both a database and a knowledge base for Claude. Airtable is more powerful as a database but worse as a document. Coda is similar in spirit but smaller community and tooling around it. Obsidian is excellent for personal knowledge but doesn’t have the multi-user, structured-database surface I need to run businesses on.

    Why Claude and not GPT or Gemini?

    Voice quality for the kind of writing I do, agentic stability across long sessions, operator-friendly tooling (Claude Code, Cowork, MCP), and Anthropic’s roadmap and culture being legible to me. The other models work; Claude is what I picked.

    Why Google Cloud and not AWS?

    Vertex AI’s first-party Claude access, GCP’s control surface fitting how I work, competitive cost on my specific workloads. AWS would also work. The doctrine is “have a real substrate,” not “use GCP specifically.”

    Can a small operator afford this stack?

    Yes. Notion is $10/seat. Claude Pro is $20/month, Max is $100-$200. GCP costs scale with what you actually run — my 27-site infrastructure runs in the low three figures monthly. Total monthly stack cost for a solo operator running this architecture is well under what most people pay for a single SaaS tool that does only one of these jobs.

    What if one of the legs goes away or pivots badly?

    Each leg is replaceable. The shape of the stack matters more than the specific brands. If Notion pivots away from being useful, the state leg moves somewhere else. If Anthropic pivots, the reasoning leg moves. If I leave GCP, the substrate leg moves. The architecture is durable; the specific tool choices are not load-bearing in the way the architecture is.

    How long did it take to settle on this shape?

    Roughly two years of trying things. I write the doctrine now because I want my own next iteration to start from this shape rather than rebuilding it from scratch. If you want to skip those two years, this is the shortcut.

    Related Reading

  • How We Built an AI Music Album: Red Dirt Sakura Case Study

    How We Built an AI Music Album: Red Dirt Sakura Case Study

    The Lab · Tygart Media
    Experiment Nº 795 · Methodology Notes
    METHODS · OBSERVATIONS · RESULTS

    What if you could build a complete music album — concept, lyrics, artwork, production notes, and a full listening experience — without a recording studio, without a label, and without months of planning? That’s exactly what we did with Red Dirt Sakura, an 8-track country-soul album written and produced by a fictional Japanese-American artist named Yuki Hayashi. Here’s how we built it, what broke, what we fixed, and why this system is repeatable.

    What Is Red Dirt Sakura?

    Red Dirt Sakura is a concept album exploring what happens when Japanese-American identity collides with American country music. Each of the 8 tracks blends traditional Japanese melodic structure with outlaw country instrumentation — steel guitar, banjo, fiddle — sung in both English and Japanese. The album lives entirely on tygartmedia.com, built and published using a three-model AI pipeline.

    The Three-Model Pipeline: How It Works

    Every track on the album was processed through a sequential three-model workflow. No single model did everything — each one handled what it does best.

    Model 1 — Gemini 2.0 Flash (Audio Analysis): Each MP3 was uploaded directly to Gemini for deep audio analysis. Gemini doesn’t just transcribe — it reads the emotional arc of the music, identifies instrumentation, characterizes the tempo shifts, and analyzes how the sonic elements interact. For a track like “The Road Home / 家路,” Gemini identified the specific interplay between the steel guitar’s melancholy sweep and the banjo’s hopeful pulse — details a human reviewer might take hours to articulate.

    Model 2 — Imagen 4 (Artwork Generation): Gemini’s analysis fed directly into Imagen 4 prompts. The artwork for each track was generated from scratch — no stock photos, no licensed images. The key was specificity: “worn cowboy boots beside a shamisen resting on a Japanese farmhouse porch at golden hour, warm amber light, dust motes in the air” produces something entirely different from “country music with Japanese influence.” We learned this the hard way — more on that below.

    Model 3 — Claude (Assembly, Optimization, and Publish): Claude took the Gemini analysis, the Imagen artwork, the lyrics, and the production notes, then assembled and published each listening page via the WordPress REST API. This included the HTML layout, CSS template system, SEO optimization, schema markup, and internal link structure.

    What We Built: The Full Album Architecture

    The album isn’t just 8 MP3 files sitting in a folder. Every track has its own listening page with a full visual identity — hero artwork, a narrative about the song’s meaning, the lyrics in both English and Japanese, production notes, and navigation linking every page to the full station hub. The architecture looks like this:

    • Station Hub — /music/red-dirt-sakura/ — the album home with all 8 track cards
    • 8 Listening Pages — one per track, each with unique artwork and full song narrative
    • Consistent CSS Template — the lr- class system applied uniformly across all pages
    • Parent-Child Hierarchy — all pages properly nested in WordPress for clean URL structure

    The QA Lessons: What Broke and What We Fixed

    Building a content system at this scale surfaces edge cases that only exist at scale. Here are the failures we hit and how we solved them.

    Imagen Model String Deprecation

    The Imagen 4 model string documented in various API references — imagen-4.0-generate-preview-06-06 — returns a 404. The working model string is imagen-4.0-generate-001. This is not documented prominently anywhere. We hit this on the first artwork generation attempt and traced it through the API error response. Future sessions: use imagen-4.0-generate-001 for Imagen 4 via Vertex AI.

    Prompt Specificity and Baked-In Text Artifacts

    Generic Imagen prompts that describe mood or theme rather than concrete visual scenes sometimes produce images with Stable Diffusion-style watermarks or text artifacts baked directly into the pixel data. The fix is scene-level specificity: describe exactly what objects are in frame, where the light is coming from, what surfaces look like, and what the emotional weight of the composition should be — without using any words that could be interpreted as text to render. The addWatermark: false parameter in the API payload is also required.

    WordPress Theme CSS Specificity

    Tygart Media’s WordPress theme applies color: rgb(232, 232, 226) — a light off-white — to the .entry-content wrapper. This overrides any custom color applied to child elements unless the child uses !important. Custom colors like #C8B99A (a warm tan) read as darker than the theme default on a dark background, making text effectively invisible. Every custom inline color declaration in the album pages required !important to render correctly. This is now documented and the lr- template system includes it.

    URL Architecture and Broken Nav Links

    When a URL structure changes mid-build, every internal nav link needs to be audited. The old station URL (/music/japanese-country-station/) was referenced by Song 7’s navigation links after we renamed the station to Red Dirt Sakura. We created a JavaScript + meta-refresh redirect from the old URL to the new one, and audited all 8 listening pages for broken references. If you’re building a multi-page content system, establish your final URL structure before page 1 goes live.

    Template Consistency at Scale

    The CSS template system (lr-wrap, lr-hero, lr-story, lr-section-label, etc.) was essential for maintaining visual consistency across 8 pages built across two separate sessions. Without this system, each page would have required individual visual QA. With it, fixing one global issue (like color specificity) required updating the template definition, not 8 individual pages.

    The Content Engine: Why This Post Exists

    The album itself is the first layer. But a music album with no audience is a tree falling in an empty forest. The content engine built around it is what makes it a business asset.

    Every listening page is an SEO-optimized content node targeting specific long-tail queries: Japanese country music, country music with Japanese influence, bilingual Americana, AI-generated music albums. The station hub is the pillar page. This case study is the authority anchor — it explains the system, demonstrates expertise, and creates a link target that the individual listening pages can reference.

    From this architecture, the next layer is social: one piece of social content per track, each linking to its listening page, with the case study as the ultimate destination for anyone who wants to understand the “how.” Eight tracks means eight distinct social narratives — the loneliness of “Whiskey and Wabi-Sabi,” the homecoming of “The Road Home / 家路,” the defiant energy of “Outlaw Sakura.” Each one is a separate door into the same content house.

    What This Proves About AI Content Systems

    The Red Dirt Sakura project demonstrates something important: AI models aren’t just content generators — they’re a production pipeline when orchestrated correctly. The value isn’t in any single output. It’s in the system that connects audio analysis, visual generation, content assembly, SEO optimization, and publication into a single repeatable workflow.

    The system is already proven. Album 2 could start tomorrow with the same pipeline, the same template system, and the documented fixes already applied. That’s what a content engine actually means: not just content, but a machine that produces it reliably.

    Frequently Asked Questions

    What AI models were used to build Red Dirt Sakura?

    The album was built using three models in sequence: Gemini 2.0 Flash for audio analysis, Google Imagen 4 (via Vertex AI) for artwork generation, and Claude Sonnet 4.6 for content assembly, SEO optimization, and WordPress publishing via REST API.

    How long did it take to build an 8-track AI music album?

    The entire album — concept, lyrics, production, artwork, listening pages, and publication — was completed across two working sessions. The pipeline handles each track in sequence, so speed scales with the number of tracks rather than the complexity of any single one.

    What is the Imagen 4 model string for Vertex AI?

    The working model string for Imagen 4 via Google Vertex AI is imagen-4.0-generate-001. Preview strings listed in older documentation are deprecated and return 404 errors.

    Can this AI music pipeline be used for other albums or artists?

    Yes. The pipeline is artist-agnostic and genre-agnostic. The CSS template system, WordPress page hierarchy, and three-model workflow can be applied to any music project with minor customization of the visual style and narrative voice.

    What is Red Dirt Sakura?

    Red Dirt Sakura is a concept album by the fictional Japanese-American artist Yuki Hayashi, blending American outlaw country with traditional Japanese musical elements and sung in both English and Japanese. The album lives on tygartmedia.com and was produced entirely using AI tools.

    Where can I listen to the Red Dirt Sakura album?

    All 8 tracks are available on the Red Dirt Sakura station hub on tygartmedia.com. Each track has its own dedicated listening page with artwork, lyrics, and production notes.

    Ready to Hear It?

    The full album is live. Eight tracks, eight stories, two languages. Start with the station hub and follow the trail.

    Listen to Red Dirt Sakura →

    Visual summary

    AI-generated featured image for: How We Built a Complete AI Music Album in Two Sessions: The Red Dirt Sakura Story

    About this image. This image was AI-generated as the featured visual for the article: How We Built a Complete AI Music Album in Two Sessions: The Red Dirt Sakura Story. Generated using Google Imagen 4 Standard via Vertex AI, converted to WebP with full IPTC/XMP metadata injection.

    • Model: Imagen 4.0 Standard (Vertex AI)
    • Format: WebP (quality 90)
    • Aspect Ratio: 16:9
    • Metadata: IPTC/XMP injected
    • Creator: Tygart Media

    Part of The Studio collection — AI-generated visuals powering the Tygart Media content engine.

  • Claude Video Editor: Automating an AI Media Pipeline

    Claude Video Editor: Automating an AI Media Pipeline

    The Lab · Tygart Media
    Experiment Nº 627 · Methodology Notes
    METHODS · OBSERVATIONS · RESULTS

    I handed Claude a 52MB video file and said: optimize it, cut it into chapters, extract thumbnails, upload everything to WordPress, and build me a watch page. No external video editing software. No Premiere. No Final Cut. Just an AI agent with access to ffmpeg, a WordPress REST API, and a GCP service account.

    It worked. Here is exactly what happened and what it means.

    The Starting Point

    Three stacked layers: chat UI, tools, agent runtime
    The starting point.

    The video was a 6-minute, 39-second NotebookLM-generated explainer about our AI music pipeline — “The Autonomous Halt: Engineering the Multi-Modal Creative Loop.” It covers the seven-stage pipeline that generated 20 songs across 19 genres, graded its own output, detected diminishing returns, and chose to stop. The production quality is high — animated whiteboard illustrations, data visualizations, architecture diagrams — all generated by Google’s NotebookLM from our documentation.

    The file sat on my desktop. I uploaded it to my Cowork session and told Claude to do something impressive with it.

    What Claude Actually Did

    Long paper tape measure unrolling across a desk beside a laptop, metaphor for context window length
    What Claude actually did.

    Step 1: Video Analysis

    Claude ran ffprobe to inspect the file — 1280×720, H.264, 30fps, AAC audio, 52.1MB. Then it extracted 13 keyframes at 30-second intervals and visually analyzed each one to understand the video’s structure. No transcript needed. Claude looked at the frames and identified the chapter breaks from the visual content alone.

    ffprobe → 399.1s, 1280×720, h264, 30fps, aac 44100Hz
    ffmpeg -vf “fps=1/30” → 13 keyframes extracted
    Claude vision → chapter boundaries identified

    Step 2: Optimization

    The raw file was 52MB — too heavy for web delivery. Claude compressed it with libx264 at CRF 26 with faststart enabled for progressive streaming. Result: 21MB. Same resolution, visually identical, loads in half the time.

    52MB
    Original
    21MB
    Optimized
    60%
    Reduction

    Step 3: Chapter Segmentation

    Based on the visual analysis, Claude identified six distinct chapters and cut the video into segments using ffmpeg stream copy — no re-encoding, so the cuts are instant and lossless. It also extracted a poster thumbnail for each chapter at the most visually representative frame.

    The chapters:

    1. The Creative Loop (0:00–0:40) — Overview of the multi-modal engine
    2. The Nuance Threshold (0:50–1:30) — The diminishing returns chart
    3. Seven-Stage Pipeline (1:30–2:20) — Full architecture walkthrough
    4. Multi-Modal Analysis (2:50–3:35) — Vertex AI waveform analysis
    5. 20-Song Catalog (4:10–5:10) — The evaluation grid
    6. The Autonomous Halt (5:40–6:39) — sys.exit()

    7 video files uploaded (1 full + 6 chapters)
    6 thumbnail images uploaded
    13 WordPress media assets created
    All via REST API — zero manual uploads

    Step 4: WordPress Media Upload

    Claude uploaded all 13 assets (7 videos + 6 thumbnails) to WordPress via the REST API using multipart binary uploads. Each file got a clean SEO filename. The uploads ran in parallel — six concurrent API calls instead of sequential. Total upload time: under 30 seconds for all assets.

    Step 5: The Watch Page

    With all assets in WordPress, Claude built a full watch page from scratch — dark-themed, responsive, with an HTML5 video player for the full video, a 3-column grid of chapter cards (each with its own embedded player and thumbnail), a seven-stage pipeline breakdown with descriptions, stats counters, and CTAs linking to the music catalog and Machine Room.

    12,184 characters of custom HTML, CSS, and JavaScript. Published to tygartmedia.com/autonomous-halt/ via a single REST API call.

    The Tools That Made This Possible

    Claude did not use any video editing software. The entire pipeline ran on tools that already existed in the session:

    ffprobe — File inspection and metadata extraction
    ffmpeg — Compression, chapter cutting, thumbnail extraction, format conversion
    Claude Vision — Visual analysis of keyframes to identify chapter boundaries
    WordPress REST API — Binary media uploads and page publishing
    Python requests — API orchestration for large payloads
    Bash parallel execution — Concurrent uploads to minimize total time

    The insight is not that Claude can run ffmpeg commands — anyone can do that. The insight is that Claude can watch the video, understand its structure, make editorial decisions about where to cut, and then execute the entire production pipeline end-to-end without human intervention at any step.

    What This Means

    Video editing has always been one of those tasks that felt immune to AI automation. The tools are complex, the decisions are creative, and the output is high-stakes. But most video editing is not Spielberg-level craft. Most video editing is: trim this, compress that, cut it into clips, make thumbnails, put it on the website.

    Claude handled all of that in a single session. The key ingredients were:

    Access to the right CLI tools — ffmpeg and ffprobe are the backbone of every professional video pipeline. Claude already knows how to use them.
    Vision capability — Being able to actually see what is in the video frames turns metadata analysis into editorial judgment.
    API access to the destination — WordPress REST API meant Claude could upload and publish without ever leaving the terminal.
    Session persistence — The working directory maintained state across dozens of tool calls, so Claude could build iteratively.

    The Bigger Picture

    Desk with laptop, checklist notebook, and billing card ready before creating an Anthropic API key
    The bigger picture.

    This is one video on one website. But the pattern scales. Connect Claude to a YouTube API and it becomes a channel manager. Connect it to a transcription service and it generates subtitles. Connect it to Vertex AI and it generates chapter summaries from audio. Connect it to a CDN and it handles global distribution.

    The video you are watching on the watch page was compressed, segmented, thumbnailed, uploaded, and presented by the same AI that orchestrated the music pipeline the video is about. That is the loop closing.

    Claude is not a video editor. Claude is whatever you connect it to.

  • AI Music Pipeline: 20 Songs in One Session with Claude

    AI Music Pipeline: 20 Songs in One Session with Claude

    The Lab · Tygart Media
    Experiment Nº 603 · Methodology Notes
    METHODS · OBSERVATIONS · RESULTS

    I wanted to test a question that’s been nagging me since I started building autonomous AI pipelines: how far can you push a creative workflow before the quality falls off a cliff?

    The answer, it turns out, is further than I expected — but the cliff is real, and knowing where it is matters more than the output itself.

    The Experiment: Zero Human Edits, 20 Songs, 19 Genres

    Three stacked layers: chat UI, tools, agent runtime
    The experiment — zero human edits, 20 songs, 19 genres.

    The setup was straightforward in concept and absurdly complex in execution. I gave Claude one instruction: generate original songs using Producer.ai, analyze each one with Gemini 2.0 Flash, create custom artwork with Imagen 4, build a listening page with a custom audio player, publish it to this site, update the music hub, log everything to Notion, and then loop back and do it again.

    The constraint that made it real: Claude had to honestly assess quality after every batch and stop when diminishing returns hit. No padding the catalog with filler. No claiming mediocre output was good. The stakes had to be real or the whole experiment was theater.

    Over the course of one extended session, the pipeline produced 20 original tracks spanning 19 distinct genres — from heavy metal to bossa nova, punk rock to Celtic folk, ambient electronic to gospel soul.

    How the Pipeline Actually Works

    Long paper tape measure unrolling across a desk beside a laptop, metaphor for context window length
    How the pipeline actually works.

    Each song passes through a 7-stage autonomous pipeline with zero human intervention between stages:

    1. Prompt Engineering — Claude crafts a genre-specific prompt designed to push Producer.ai toward authentic instrumentation and songwriting conventions for that genre, not generic “make a song in X style” requests.
    2. Generation — Producer.ai generates the track. Claude navigates the interface via browser automation, waits for generation to complete, then extracts the audio URL from the page metadata.
    3. Audio Conversion — The raw m4a file is downloaded and converted to MP3 at 192kbps for the full version, plus a trimmed 90-second version at 128kbps for AI analysis.
    4. Gemini 2.0 Flash Analysis — The trimmed audio is sent to Google’s Gemini 2.0 Flash model via Vertex AI. Gemini listens to the actual audio and returns a structured analysis: song description, artwork prompt suggestion, narrative story, and thematic elements.
    5. Imagen 4 Artwork — Gemini’s artwork prompt feeds into Google’s Imagen 4 model, which generates a 1:1 album cover. Each cover is genre-matched — moody neon for synthwave, weathered wood textures for Appalachian folk, stained glass for gospel soul.
    6. WordPress Publishing — The MP3 and artwork upload to WordPress. Claude builds a complete listening page with a custom HTML/CSS/JS audio player, genre-specific accent colors, lyrics or composition notes, and the AI-generated story. The page publishes as a child of the music hub.
    7. Hub Update & Logging — The music hub grid gets a new card with the artwork, title, and genre badge. Everything logs to Notion for the operational record.

    The entire stack runs on Google Cloud — Vertex AI for Gemini and Imagen 4, authenticated via service account JWT tokens. WordPress sits on a GCP Compute Engine instance. The only external dependency is Producer.ai for the actual audio generation.

    The 20-Song Catalog

    You can listen to every track on the Tygart Media Music Hub. Here’s the full catalog with genre and a quick take on each:

    # Title Genre Assessment
    1Anvil and EmberBlues RockStrong opener — gritty, authentic tone
    2Neon CathedralSynthwave / DarkwaveAtmospheric, genre-accurate production
    3Velvet FrequencyTrip-HopMoody, textured, held together well
    4Hollow BonesAppalachian FolkTop 3 — haunting, genuine folk storytelling
    5Glass LighthouseDream Pop / Indie PopShimmery, the lightest track in the catalog
    6Meridian LineOrchestral Hip-HopSurprisingly cohesive genre fusion
    7Salt and CeremonyGospel SoulWarm, emotionally grounded
    8Tide and TimberRoots ReggaeLaid-back, authentic reggae rhythm
    9Paper LanternsBossa NovaGentle, genuine Brazilian feel
    10Burnt Bridges, Better ViewsPunk RockTop 3 — raw energy, real punk attitude
    11Signal DriftAmbient ElectronicSpacious instrumental, no lyrics needed
    12Gravel and GraceModern CountrySolid modern Nashville sound
    13Velvet HoursNeo-Soul R&BVocal instrumental — texture over lyrics
    14The Keeper’s LanternCeltic FolkTop 3 — strong closer, unique sonic palette

    Plus 6 earlier experimental tracks (Iron Heart variations, Iron and Salt, The Velvet Pour, Rusted Pocketknife) that preceded the formal pipeline and are also on the hub.

    Where Quality Held Up — and Where It Didn’t

    The pipeline performed best on genres with strong structural conventions. Blues rock, punk, folk, country, and Celtic music all have well-defined instrumentation and songwriting patterns that Producer.ai could lock into. The AI wasn’t inventing a genre — it was executing within one, and the results were genuinely listenable.

    The weakest output came from genres that rely on subtlety and human nuance. The neo-soul track (Velvet Hours) ended up as a vocal instrumental — beautiful textures, but no real lyrical content. It felt more like a mood than a song. The synthwave track was competent but slightly generic — it hit every synth cliché without adding anything distinctive.

    The biggest surprise was Meridian Line (Orchestral Hip-Hop). Fusing a full orchestral arrangement with hip-hop production is hard for human producers. The AI pulled it off with more coherence than I expected.

    The Honest Assessment: Why I Stopped at 20

    After 14 songs in the formal pipeline (plus the 6 experimental tracks), I evaluated what genres remained untapped. The answer was ska, reggaeton, polka, zydeco — genres that would have been novelty picks, not genuine catalog additions. Each of the 19 genres I covered brought a distinctly different sonic palette, vocal style, and emotional register. Song 20 was the right place to stop because Song 21 would have been padding.

    This is the part that matters for anyone building autonomous creative systems: the quality curve isn’t linear. You don’t get steadily worse output. You get strong results across a wide range, and then you hit a wall where the remaining options are either redundant (too similar to something you already made) or contrived (genres you’re forcing because they’re different, not because they’re good).

    Knowing where that wall is — and having the system honestly report it — is the difference between a useful pipeline and a content mill.

    What This Means for AI-Driven Creative Work

    Desk with laptop, checklist notebook, and billing card ready before creating an Anthropic API key
    What this means for AI-driven creative work.

    This experiment wasn’t about proving AI can replace musicians. It can’t. Every track in this catalog is a competent execution of genre conventions — but none of them have the idiosyncratic human choices that make music genuinely memorable. No AI song here will be someone’s favorite song.

    What the experiment does prove is that the full creative pipeline — from ideation through production, analysis, visual design, web publishing, and catalog management — can run autonomously at a quality level that’s functional and honest about its limitations.

    The tech stack that made this possible:

    • Claude — Pipeline orchestration, prompt engineering, quality assessment, web publishing, and the decision to stop
    • Producer.ai — Audio generation from text prompts
    • Gemini 2.0 Flash — Audio analysis (it actually listened to the MP3 and described what it heard)
    • Imagen 4 — Album artwork generation from Gemini’s descriptions
    • Google Cloud Vertex AI — API backbone for both Gemini and Imagen 4
    • WordPress REST API — Direct publishing with custom HTML listening pages
    • Notion API — Operational logging for every song

    Total cost for the entire 20-song catalog: a few dollars in Vertex AI API calls. Zero human edits to the published output.

    Listen for Yourself

    The full catalog is live on the Tygart Media Music Hub. Every track has its own listening page with a custom audio player, AI-generated artwork, the story behind the song, and lyrics (or composition notes for instrumentals). Pick a genre you like and judge for yourself whether the pipeline cleared the bar.

    The honest answer is: it cleared it more often than it didn’t. And knowing exactly where it didn’t is the most valuable part of the whole experiment.

    Visual summary

    Editorial illustration for I Let Claude Build a 20-Song Music Catalog in One Session — Here’s What Happened - Tygart Media AI-generated visual
    AI-generated editorial illustration — Vertex AI Imagen 4 Standard

    About this image. This image was generated by Google’s Vertex AI Imagen 4 model as the featured visual for I Let Claude Build a 20-Song Music Catalog in One Session — Here’s What Happened. Every image in the Tygart Media visual library is AI-generated, converted to WebP for optimal performance, and enriched with IPTC/XMP metadata for search engine discoverability.

    • Model: Vertex AI Imagen 4 Standard (imagen-4.0-generate-001)
    • Format: WebP (quality 90)
    • Aspect Ratio: 16:9
    • Metadata: IPTC/XMP injected (title, description, creator, rights, location)
    • Creator: Tygart Media — tygartmedia.com

    Part of The Studio collection — AI-generated visuals powering the Tygart Media content engine.

  • GCP WordPress Hosting: Run 23 Sites on One VM With AI

    GCP WordPress Hosting: Run 23 Sites on One VM With AI

    The Machine Room · Under the Hood

    TL;DR: We replaced 100+ isolated Cloud Run services with a single Compute Engine VM running 23 WordPress sites, a unified Content Engine, and autonomous AI workflows — cutting hosting costs to $15-25/site/month while launching new client sites in under 10 minutes.

    The Problem With One Site, One Stack

    When we started managing WordPress sites for clients at Tygart Media, each site got its own infrastructure: a Cloud Run container, its own database, its own AI pipeline, its own monitoring. At 5 sites, this was manageable. At 15, it was expensive. At 23, it was architecturally insane — over 100 Cloud Run services spinning up and down, each billing independently, each requiring separate deployments and credential management.

    The monthly infrastructure cost was approaching $2,000 for what amounted to medium-traffic WordPress sites. The cognitive overhead was worse: updating a single AI optimization skill meant deploying it 23 times.

    So we built the Site Factory.

    Three-Layer Architecture

    The Site Factory runs on a three-layer model that separates shared infrastructure from per-site WordPress instances and AI operations.

    Layer 1: Shared Platform (GCP). A single Compute Engine VM hosts all 23 WordPress installations with a shared MySQL instance and a centralized BigQuery data warehouse. A single Content Engine — one Cloud Run service — handles all AI-powered content operations across every site. A Site Registry in BigQuery maps every site to its credentials, hosting configuration, and optimization schedule.

    Layer 2: Per-Site WordPress. Each WordPress installation lives in its own directory on the VM with its own database. They share the same PHP runtime, Nginx configuration, and SSL certificates, but their content and configurations are completely isolated. Hosting cost per site: $15-25/month, compared to $80-150/month on containerized Cloud Run.

    Layer 3: Claude Operations. This is where the Expert-in-the-Loop architecture meets WordPress at scale. Routine operations — SEO scoring, schema injection, internal linking audits, AEO refreshes — run autonomously via Cloud Scheduler. Strategic operations — content strategy, complex article writing, taxonomy redesign — route to an interactive AI session where Claude operates as a system administrator with full context about every site in the registry.

    The Model Router

    Not every AI task requires the same model. Schema injection? Haiku handles it in 2 seconds at $0.001. A nuanced 2,000-word article on luxury asset lending? That’s Opus territory. SERP data extraction? Gemini is faster and cheaper.

    The Model Router is a centralized Cloud Run service that accepts task requests and dynamically routes them to the cheapest capable model on Vertex AI. It evaluates task complexity, required output length, and domain specificity, then selects the optimal model. This alone cut our AI compute costs by 40% compared to routing everything through a single frontier model.

    10-Minute Site Launch

    Adding a new client site to the factory takes 5 configuration steps and under 10 minutes:

    Register the domain and SSL certificate in Nginx. Create the WordPress database and installation directory. Add the site to the BigQuery Site Registry with credentials and vertical classification. Run the initial site audit to establish a content baseline. Enable the autonomous optimization schedule.

    From that point, the site receives the same AI optimization pipeline as every other site in the factory: daily content scoring, weekly SEO/AEO refreshes, monthly schema audits, and continuous internal linking optimization. No additional infrastructure. No new Cloud Run services. No incremental hosting cost beyond the shared VM allocation.

    Self-Healing Loop

    At 23 sites, things break. APIs rate-limit. WordPress plugins conflict. SSL certificates expire. The Self-Healing Loop monitors every site and every API endpoint continuously.

    When a WordPress REST API call fails, the system retries with exponential backoff. If the failure persists, it falls back to WP-CLI over SSH. If the site is completely unreachable, it triggers a Slack alert to the operations channel and pauses that site’s optimization schedule until the issue is resolved.

    For AI model failures, the Model Router implements automatic fallback: if Opus returns a 429 (rate limited), the task routes to Sonnet. If Sonnet fails, it queues for batch processing overnight at reduced rates. No task is ever dropped — only deferred.

    Cross-Site Intelligence

    The real power of the Site Factory isn’t cost reduction — it’s the intelligence layer that emerges when 23 sites share a single data warehouse. BigQuery holds content performance data, keyword rankings, schema coverage, and information density scores for every post on every site.

    This enables cross-site pattern recognition that’s impossible when sites operate in isolation. When an article format performs well on one site, the system can identify similar opportunities across all 22 other sites. When a keyword strategy drives organic growth in one vertical, the Content Engine can adapt that strategy for adjacent verticals automatically.

    The Site Factory isn’t a hosting solution. It’s an operating system for AI-powered content operations — one that gets smarter with every site we add.

    {
    “@context”: “https://schema.org”,
    “@type”: “Article”,
    “headline”: “The Site Factory: How One GCP Instance Runs 23 WordPress Sites With AI on Autopilot”,
    “description”: “One GCP Compute Engine VM, 23 WordPress sites, autonomous AI optimization, $15-25/site/month hosting costs, and new client sites launching in under 10 minutes. “,
    “datePublished”: “2026-03-30”,
    “dateModified”: “2026-04-03”,
    “author”: {
    “@type”: “Person”,
    “name”: “Will Tygart”,
    “url”: “https://tygartmedia.com/about”
    },
    “publisher”: {
    “@type”: “Organization”,
    “name”: “Tygart Media”,
    “url”: “https://tygartmedia.com”,
    “logo”: {
    “@type”: “ImageObject”,
    “url”: “https://tygartmedia.com/wp-content/uploads/tygart-media-logo.png”
    }
    },
    “mainEntityOfPage”: {
    “@type”: “WebPage”,
    “@id”: “https://tygartmedia.com/the-site-factory-how-one-gcp-instance-runs-23-wordpress-sites-with-ai-on-autopilot/”
    }
    }

    Visual summary

    Aerial view of a WordPress site factory showing 23 websites connected by automated AI pipelines on GCP infrastructure

    About this image. This image is part of the AI & Technology Concepts collection in the Tygart Media visual library. Every image produced by Tygart Media is AI-generated using Google Vertex AI (Imagen), converted to WebP format, and injected with full IPTC/XMP metadata before publication.

    • Format: WEBP
    • Collection: AI & Technology Concepts
    • Pipeline: Vertex AI Imagen → WebP → IPTC/XMP → WordPress
  • Vertex AI Compliance: Building Isolated GCP Infrastructure

    Vertex AI Compliance: Building Isolated GCP Infrastructure

    The Machine Room · Under the Hood

    For regulated verticals (HIPAA, financial services, legal), we build isolated AI infrastructure on Google Cloud using service accounts, VPCs, and restricted APIs. This gives us Vertex AI and Claude capabilities without compromising data isolation or compliance requirements.

    Server racks inside a walled, padlocked enclosure with data lines entering and leaving

    The Compliance Problem
    Some clients operate in verticals where data can’t flow through public APIs. A healthcare client can’t send patient information to Claude’s public API. A financial services client can’t route transaction data through external language models.

    But they still want AI capabilities: document analysis, content generation, data extraction, automation.

    The solution: isolated GCP infrastructure that clients own, that uses service accounts with restricted permissions, and that keeps data inside their VPC.

    The Architecture
    For each regulated client, we build:

    1. Isolated GCP Project
    Their own Google Cloud project, separate billing, separate service accounts, zero shared infrastructure with other clients.

    2. Service Account with Minimal Permissions
    A service account that can only:
    – Call Vertex AI APIs (nothing else)
    – Write to their specific Cloud Storage bucket
    – Log to their Cloud Logging instance
    – No ability to access other projects, no IAM changes, no network modifications

    3. Private VPC
    All Vertex AI calls happen inside their VPC. Data never leaves Google’s network to hit public internet.

    4. Vertex AI for Regulated Workloads
    We use Vertex AI’s enterprise models (Claude, Gemini) instead of the public APIs. These are deployed to their VPC and their service account. Zero external API calls for language model inference.

    The Data Flow
    Example: A healthcare client wants to analyze patient documents.
    – Client uploads PDF to their Cloud Storage bucket
    – Cloud Function (with restricted service account) triggers
    – Function reads the PDF
    – Function sends to Vertex AI Claude endpoint (inside their VPC)
    – Claude extracts structured data from the document
    – Function writes results back to client’s bucket
    – Everything stays inside the VPC, inside the project, inside the isolation boundary

    The client can audit every API call, every service account action, every network flow. Full compliance visibility.

    Why This Matters for Compliance
    – HIPAA: Patient data never leaves the healthcare client’s infrastructure
    – PCI-DSS: Payment data stays inside their isolated environment
    – GDPR: EU data can be processed in their EU GCP region
    – FedRAMP: For government clients, we can build on GCP’s FedRAMP-certified infrastructure

    The Service Account Model
    Service accounts are the key to this. Instead of giving Claude/Vertex AI direct access to client data, we create a bot account that:

    1. Has zero standing permissions
    2. Can only access specific resources (their bucket, their dataset)
    3. Can only run specific operations (Vertex AI API calls)
    4. Permissions are short-lived (can be revoked immediately)
    5. Every action is logged with the service account ID

    So even if Vertex AI were compromised, it couldn’t access other clients’ data. Even if the service account was compromised, it couldn’t do anything except Vertex AI calls on that specific bucket.

    The Cost Trade-off
    – Shared GCP account: ~$300/month for Claude/Vertex AI usage
    – Isolated GCP project per client: ~$400-600/month per client (slightly higher due to overhead)

    That premium ($100-300/month per client) is the cost of compliance. Most regulated clients are willing to pay it.

    What This Enables
    – Healthcare clients can use Claude for chart analysis, clinical note generation, patient data extraction
    – Financial clients can use Claude for document analysis, regulatory reporting, trade summarization
    – Legal clients can use Claude for contract analysis, case law research, document review
    – All without violating data residency, compliance, or isolation requirements

    The Enterprise Advantage
    This is where AI agencies diverge from freelancers. Most freelancers can’t build compliant AI infrastructure. You need GCP expertise, service account management knowledge, and regulatory understanding.

    But regulated verticals are where the money is. A healthcare data extraction project can be worth $50K+. A financial compliance project can be $100K+. The infrastructure investment pays for itself on the first client.

    If you’re only doing public API integrations, you’re leaving regulated verticals entirely on the table. Build the fortress. The clients are waiting.

    {
    “@context”: “https://schema.org”,
    “@type”: “Article”,
    “headline”: “Service Account Keys, Vertex AI, and the GCP Fortress”,
    “description”: “For regulated verticals, we build isolated GCP projects with service accounts and restricted Vertex AI access. Here’s the compliance architecture for heal”,
    “datePublished”: “2026-03-30”,
    “dateModified”: “2026-04-03”,
    “author”: {
    “@type”: “Person”,
    “name”: “Will Tygart”,
    “url”: “https://tygartmedia.com/about”
    },
    “publisher”: {
    “@type”: “Organization”,
    “name”: “Tygart Media”,
    “url”: “https://tygartmedia.com”,
    “logo”: {
    “@type”: “ImageObject”,
    “url”: “https://tygartmedia.com/wp-content/uploads/tygart-media-logo.png”
    }
    },
    “mainEntityOfPage”: {
    “@type”: “WebPage”,
    “@id”: “https://tygartmedia.com/service-account-keys-vertex-ai-and-the-gcp-fortress/”
    }
    }