<?xml version="1.0" encoding="UTF-8"?>
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
>
  <url>
    <loc>https://omnihash.com/</loc>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://omnihash.com/work/ai-agent-platform-0-to-1</loc>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://omnihash.com/work/crypto-rpc-cost-audit</loc>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://omnihash.com/work/healthtech-clinical-search</loc>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://omnihash.com/blog</loc>
    <lastmod>2026-06-29</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://omnihash.com/blog/local-ai-development-gpu-cost</loc>
    <lastmod>2026-06-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/gpu-prices.png</image:loc>
      <image:title>The true cost of a local AI rig once you add the machine around the card: a 3090 build near $2,300, a 4090 build near $3,600, a 5090 build near $5,300, and an RTX PRO 6000 workstation near $17,000. On the cheaper builds the GPU is barely half the total.</image:title>
    </image:image>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/gpu-price-rise.png</image:loc>
      <image:title>GPU prices have climbed over roughly the last two years, the reverse of the usual slide in used-hardware prices. The two newest cards use their launch price as the baseline.</image:title>
    </image:image>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/cost-over-time.png</image:loc>
      <image:title>Cumulative cost over two years, counting the whole rig: a one-time 3090 build (around $2,300) as a near-flat line against $20, $100, and $200-a-month plans, with break-even near twelve and twenty-three months.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/true-cost-of-an-employee-token-spend</loc>
    <lastmod>2026-06-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/cost-equation.png</image:loc>
      <image:title>The cost of an employee in the AI era: salary plus benefits plus token spend.</image:title>
    </image:image>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/cost-stack.png</image:loc>
      <image:title>Two hires, total cost against useful output. The cheap hire has a lower salary but a large, mostly wasted token-spend segment and little useful output; the quality hire has a higher salary, a small efficient token-spend segment, and high output.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/llama-cpp-vs-ollama</loc>
    <lastmod>2026-06-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/llamacpp-ollama.png</image:loc>
      <image:title>Two paths to one engine. Ollama is the easy, opinionated route (one-line pulls, a model library, a REST API); llama.cpp is the control-and-performance route (GGUF, quantization, raw kernels). Both converge on the same GGUF model running on your GPU.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/nextjs-vs-vite-vs-remix</loc>
    <lastmod>2026-06-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/vite-composable.png</image:loc>
      <image:title>A bundled framework fuses build, router, rendering, and data into one block you adopt whole. A composable setup keeps them as separate layers you choose and swap independently.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/pulumi-vs-iac-ease-of-use</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/iac-spectrum.png</image:loc>
      <image:title>The infrastructure-as-code spectrum, from declarative YAML through a domain-specific language to a general-purpose programming language. Tools sit where their authoring model lives, not where their power ceiling is.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/mcp-explained-tools-auth</loc>
    <lastmod>2026-05-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/mcp-architecture.png</image:loc>
      <image:title>The MCP shape. A host application with an MCP client connects across a trust and auth boundary to one or more MCP servers, each backed by a real system. Identity and scopes flow down the same boundary.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/evals-for-llm-apps</loc>
    <lastmod>2026-05-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/eval-gate.png</image:loc>
      <image:title>The eval gate. Any change runs against the eval set, produces a score, and meets a decision: clear the bar and ship, miss it and loop back to iterate.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/agent-orchestration-and-delegation</loc>
    <lastmod>2026-04-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/agent-orchestration.png</image:loc>
      <image:title>The orchestrator-worker pattern. A coordinator fans work out to specialized sub-agents running in isolated contexts, then fans their results back into a single synthesis step.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/rag-chunking-strategies</loc>
    <lastmod>2026-04-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/chunking-strategies.png</image:loc>
      <image:title>The same document, split two ways. Left: fixed-size cuts land mid-idea and strand a fact from its context. Right: structural and semantic cuts fall on natural boundaries, so each chunk stands on its own.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/prototyping-with-disposable-html</loc>
    <lastmod>2026-04-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/prototype-loop.png</image:loc>
      <image:title>The disposable prototype loop. Iterate cheaply until a direction is validated, then branch out to a real build. The loop is the point; the files are not.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/oidc-github-actions-aws</loc>
    <lastmod>2026-03-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/oidc-flow.png</image:loc>
      <image:title>The token-for-credentials handshake. No secret is stored anywhere in the pipeline; the workflow proves who it is, and AWS hands back credentials that expire in minutes.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/why-ai-pilots-never-ship</loc>
    <lastmod>2026-02-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/pilot-gap.png</image:loc>
      <image:title>The demo-to-production gap. Most pilots reach an impressive demo, then fall into the gap that separates it from production. A thin bridge, scoping the pilot as a production slice, is the only thing that crosses.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/agent-driven-development-in-practice</loc>
    <lastmod>2026-02-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/agent-loop.png</image:loc>
      <image:title>Generation is fast; merging is not. The review bar does not drop. If anything, agent-driven development makes review more important, because volume goes up.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/build-vs-buy-ai</loc>
    <lastmod>2026-01-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/build-buy.png</image:loc>
      <image:title>Build for what differentiates you and what no vendor will fit. Buy everything else.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/rag-in-production-what-matters</loc>
    <lastmod>2025-12-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/rag-pipeline.png</image:loc>
      <image:title>A RAG pipeline. The quality of the answer is capped by the quality of retrieval. Most teams over-invest in the last box and under-invest in the first.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/ai-mvp-cost-and-timeline</loc>
    <lastmod>2025-11-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/scope-first.png</image:loc>
      <image:title>Scope-first sequencing. The MVP exists to test the riskiest assumption, not to be a small version of the final product.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/rag-vs-fine-tuning</loc>
    <lastmod>2025-10-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/rag-vs-ft.png</image:loc>
      <image:title>RAG supplies knowledge; fine-tuning shapes behavior. Most &quot;the model does not know our stuff&quot; problems are knowledge problems.</image:title>
    </image:image>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/rag-decision.png</image:loc>
      <image:title>Start with the cheapest thing that could work. Prompting and a good eval set solve more problems than either technique alone.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/add-ai-to-existing-product</loc>
    <lastmod>2025-09-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/value-risk.png</image:loc>
      <image:title>Pick a first feature in the high-value, low-risk quadrant. Let trust, not enthusiasm, move you rightward.</image:title>
    </image:image>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/ai-boundary.png</image:loc>
      <image:title>A single internal boundary keeps provider details, prompts, and guardrails in one place, and lets you swap or add models without touching the product.</image:title>
    </image:image>
  </url>
  <url>
    <loc>https://omnihash.com/blog/crypto-rpc-cost-audit-lessons</loc>
    <lastmod>2025-08-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <image:image>
      <image:loc>https://omnihash.com/images/diagrams/cost-curve.png</image:loc>
      <image:title>Inefficient per-action call patterns turn linear user growth into super-linear cost. The leak was always there; scale just made it visible.</image:title>
    </image:image>
  </url>
</urlset>
