<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Velaris Blog</title><description>Product notes, engineering deep-dives and playbooks from the team building the AI Operating System.</description><link>https://velabios.com/</link><language>en</language><item><title>The scroll animation that hid our content permanently</title><link>https://velabios.com/blog/the-animation-that-hid-our-content/</link><guid isPermaLink="true">https://velabios.com/blog/the-animation-that-hid-our-content/</guid><description>A reveal effect and the observer meant to trigger it deadlocked each other. The bug was invisible in dev, total in production, and obvious in hindsight.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><category>css</category><category>javascript</category><category>debugging</category><category>web performance</category><category>story</category></item><item><title>The audit that measured nothing</title><link>https://velabios.com/blog/the-audit-that-measured-nothing/</link><guid isPermaLink="true">https://velabios.com/blog/the-audit-that-measured-nothing/</guid><description>I grepped a file to check for missing data, found the problem, and reported it. The strings I counted didn&apos;t exist. What I built instead was better.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><category>testing</category><category>code quality</category><category>debugging</category><category>craft</category><category>story</category></item><item><title>We built a demo Google couldn&apos;t see</title><link>https://velabios.com/blog/the-demo-search-engines-couldnt-see/</link><guid isPermaLink="true">https://velabios.com/blog/the-demo-search-engines-couldnt-see/</guid><description>Eleven interactive apps, a guided tour, thousands of lines of React — and a crawler that received 76 words. One directive was the difference.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><category>seo</category><category>javascript</category><category>astro</category><category>rendering</category><category>story</category></item><item><title>We built a redesign, then deleted all of it</title><link>https://velabios.com/blog/the-redesign-we-deleted/</link><guid isPermaLink="true">https://velabios.com/blog/the-redesign-we-deleted/</guid><description>Four phases of work, reverted in one message. Why that was the right call, what made it expensive, and the cheaper way to be wrong.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><category>design</category><category>process</category><category>craft</category><category>decision making</category><category>story</category></item><item><title>AI agent memory: what to keep and what to throw away</title><link>https://velabios.com/blog/ai-agent-memory/</link><guid isPermaLink="true">https://velabios.com/blog/ai-agent-memory/</guid><description>Context windows aren&apos;t memory. The four tiers a working agent needs, why summarising too early destroys runs, and how to stop context rot.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>ai agents</category><category>memory</category><category>context</category><category>architecture</category><category>engineering</category></item><item><title>AI agent security: scoping access before you grant it</title><link>https://velabios.com/blog/ai-agent-security-best-practices/</link><guid isPermaLink="true">https://velabios.com/blog/ai-agent-security-best-practices/</guid><description>The threat model isn&apos;t a rogue AI — it&apos;s an agent doing exactly what an attacker&apos;s email told it to. Practical controls, in the order they matter.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>security</category><category>ai agents</category><category>permissions</category><category>engineering</category></item><item><title>AI agent use cases: where they work and where they don&apos;t</title><link>https://velabios.com/blog/ai-agent-use-cases/</link><guid isPermaLink="true">https://velabios.com/blog/ai-agent-use-cases/</guid><description>A grounded map of what AI agents are genuinely good at today, the tasks they quietly fail, and the property that separates the two.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>ai agents</category><category>use cases</category><category>automation</category><category>category</category></item><item><title>How to automate inbox triage with an AI agent</title><link>https://velabios.com/blog/automate-inbox-triage-with-ai/</link><guid isPermaLink="true">https://velabios.com/blog/automate-inbox-triage-with-ai/</guid><description>A working triage setup: what to classify, what to automate, what must stay manual — and the archive-don&apos;t-delete rule that makes it safe.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>inbox zero</category><category>email</category><category>ai agents</category><category>tutorial</category></item><item><title>How to automate meeting scheduling with an AI agent</title><link>https://velabios.com/blog/automate-meeting-scheduling-with-ai/</link><guid isPermaLink="true">https://velabios.com/blog/automate-meeting-scheduling-with-ai/</guid><description>Booking links solve the easy half. What an agent adds, the timezone and buffer rules that decide quality, and why sending the invite needs a human.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>calendar</category><category>scheduling</category><category>ai agents</category><category>productivity</category><category>tutorial</category></item><item><title>client:only vs client:load — the directive that cost us a page</title><link>https://velabios.com/blog/astro-client-only-vs-client-load/</link><guid isPermaLink="true">https://velabios.com/blog/astro-client-only-vs-client-load/</guid><description>One Astro directive made an interactive page invisible to search engines. How to tell which you need, and how to check what crawlers actually see.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>astro</category><category>seo</category><category>islands</category><category>ssr</category><category>engineering</category></item><item><title>How to design tools an AI agent can actually use</title><link>https://velabios.com/blog/how-to-design-agent-tools/</link><guid isPermaLink="true">https://velabios.com/blog/how-to-design-agent-tools/</guid><description>Most agent failures are tool design failures. Naming, arguments, error messages, and why wrapping your REST API one-to-one produces a bad agent.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>tool design</category><category>ai agents</category><category>api design</category><category>tutorial</category></item><item><title>How to monitor AI agents in production</title><link>https://velabios.com/blog/how-to-monitor-ai-agents/</link><guid isPermaLink="true">https://velabios.com/blog/how-to-monitor-ai-agents/</guid><description>Uptime and error rates tell you almost nothing about an agent. What to trace, which four metrics actually matter, and how to alert without noise.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>observability</category><category>monitoring</category><category>ai agents</category><category>tutorial</category></item><item><title>How to reduce LLM API costs without making it worse</title><link>https://velabios.com/blog/how-to-reduce-llm-api-costs/</link><guid isPermaLink="true">https://velabios.com/blog/how-to-reduce-llm-api-costs/</guid><description>Seven levers, ordered by how much they save per hour of work. Start with the requests you shouldn&apos;t send at all, not with a cheaper model.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>cost</category><category>llm</category><category>optimization</category><category>engineering</category></item><item><title>How to test AI agents when output isn&apos;t deterministic</title><link>https://velabios.com/blog/how-to-test-ai-agents/</link><guid isPermaLink="true">https://velabios.com/blog/how-to-test-ai-agents/</guid><description>Assert on behaviour, not strings. Golden traces, tool-call assertions, and the adversarial cases most agent test suites never cover.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>testing</category><category>ai agents</category><category>evaluation</category><category>engineering</category></item><item><title>MCP vs function calling: a protocol, not a replacement</title><link>https://velabios.com/blog/mcp-vs-function-calling/</link><guid isPermaLink="true">https://velabios.com/blog/mcp-vs-function-calling/</guid><description>They operate at different layers and people compare them as rivals. What MCP actually standardises, what it doesn&apos;t, and when a direct integration wins.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>mcp</category><category>function calling</category><category>tools</category><category>architecture</category><category>comparison</category></item><item><title>How to migrate from Zapier to AI agents</title><link>https://velabios.com/blog/migrate-from-zapier-to-ai-agents/</link><guid isPermaLink="true">https://velabios.com/blog/migrate-from-zapier-to-ai-agents/</guid><description>Not a rip-and-replace. Which Zaps to keep forever, which ones an agent handles better, and a five-step migration that never leaves you without a fallback.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>zapier</category><category>automation</category><category>migration</category><category>ai agents</category><category>tutorial</category></item><item><title>OAuth token storage: encrypting what you can&apos;t afford to leak</title><link>https://velabios.com/blog/oauth-token-storage/</link><guid isPermaLink="true">https://velabios.com/blog/oauth-token-storage/</guid><description>Refresh tokens are long-lived credentials to someone else&apos;s account. Envelope encryption, scoping per run, and the refresh race that corrupts them.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>oauth</category><category>security</category><category>encryption</category><category>integrations</category><category>engineering</category></item><item><title>Open-source vs proprietary LLMs: the cost math nobody shows</title><link>https://velabios.com/blog/open-source-vs-proprietary-llms/</link><guid isPermaLink="true">https://velabios.com/blog/open-source-vs-proprietary-llms/</guid><description>Self-hosting looks cheaper per token and usually isn&apos;t. Where the crossover actually is, and the three reasons that beat cost either way.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>open source</category><category>llm</category><category>self-hosting</category><category>cost</category><category>comparison</category></item><item><title>Prompt injection: why you can&apos;t prompt your way out of it</title><link>https://velabios.com/blog/prompt-injection-defense/</link><guid isPermaLink="true">https://velabios.com/blog/prompt-injection-defense/</guid><description>Every mitigation people reach for is probabilistic. The only controls that hold are architectural — and they assume the injection already succeeded.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>security</category><category>prompt injection</category><category>ai agents</category><category>engineering</category></item><item><title>RAG vs fine-tuning: which problem are you actually solving?</title><link>https://velabios.com/blog/rag-vs-fine-tuning/</link><guid isPermaLink="true">https://velabios.com/blog/rag-vs-fine-tuning/</guid><description>RAG adds knowledge. Fine-tuning changes behaviour. They fix different failures, and the wrong choice is expensive in a way that isn&apos;t obvious for months.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>rag</category><category>fine-tuning</category><category>llm</category><category>architecture</category><category>comparison</category></item><item><title>Rate limiting when you&apos;re the client, not the server</title><link>https://velabios.com/blog/rate-limiting-strategies/</link><guid isPermaLink="true">https://velabios.com/blog/rate-limiting-strategies/</guid><description>Most guides teach you to protect your API. Agents mostly consume other people&apos;s. Token buckets, jitter, and respecting Retry-After properly.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>rate limiting</category><category>reliability</category><category>integrations</category><category>engineering</category></item><item><title>Multi-tenant isolation in Postgres: deny by default</title><link>https://velabios.com/blog/multi-tenant-data-isolation-postgres/</link><guid isPermaLink="true">https://velabios.com/blog/multi-tenant-data-isolation-postgres/</guid><description>Row-level security only helps if the policies are right. The failure modes that look secure in review — and the assertions that catch them.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>postgres</category><category>security</category><category>multi-tenancy</category><category>rls</category><category>engineering</category></item><item><title>Single agent vs multi-agent: when splitting actually helps</title><link>https://velabios.com/blog/single-agent-vs-multi-agent/</link><guid isPermaLink="true">https://velabios.com/blog/single-agent-vs-multi-agent/</guid><description>Multi-agent architectures are fashionable and often worse. The three conditions that justify a split, and the coordination costs nobody budgets for.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>multi-agent</category><category>architecture</category><category>ai agents</category><category>comparison</category></item><item><title>Streaming LLM responses: the parts that break in production</title><link>https://velabios.com/blog/streaming-llm-responses/</link><guid isPermaLink="true">https://velabios.com/blog/streaming-llm-responses/</guid><description>Streaming is easy until a connection drops mid-token. Backpressure, resumability, buffering proxies, and why tool calls change the whole problem.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>streaming</category><category>sse</category><category>llm</category><category>architecture</category><category>engineering</category></item><item><title>The mascot that kept flying backwards</title><link>https://velabios.com/blog/the-mascot-that-flew-backwards/</link><guid isPermaLink="true">https://velabios.com/blog/the-mascot-that-flew-backwards/</guid><description>A 3D robot flies through our homepage. Getting it to face the right way took three failed fixes and taught me to stop debugging by eye.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>webgl</category><category>three.js</category><category>debugging</category><category>craft</category><category>story</category></item><item><title>Types of AI agents: a taxonomy that actually helps</title><link>https://velabios.com/blog/types-of-ai-agents/</link><guid isPermaLink="true">https://velabios.com/blog/types-of-ai-agents/</guid><description>Textbook agent categories don&apos;t map to anything you&apos;d build. A more useful split by autonomy, scope, and how many steps an agent plans ahead.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>ai agents</category><category>taxonomy</category><category>architecture</category><category>category</category></item><item><title>We built a demo you can break instead of a product video</title><link>https://velabios.com/blog/we-built-a-demo-you-can-break/</link><guid isPermaLink="true">https://velabios.com/blog/we-built-a-demo-you-can-break/</guid><description>Videos show the happy path at the vendor&apos;s pace. We shipped the real interface with fake data, and the constraint made the product better.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>product</category><category>demo</category><category>design</category><category>story</category></item><item><title>Webhook idempotency: handling the same event twice</title><link>https://velabios.com/blog/webhook-idempotency/</link><guid isPermaLink="true">https://velabios.com/blog/webhook-idempotency/</guid><description>Providers deliver at least once, so your handler will see duplicates. Verify the signature, key on the event id, and do the work in one transaction.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>webhooks</category><category>idempotency</category><category>reliability</category><category>engineering</category></item><item><title>What is an AI operating system? A definitive guide</title><link>https://velabios.com/blog/what-is-an-ai-operating-system/</link><guid isPermaLink="true">https://velabios.com/blog/what-is-an-ai-operating-system/</guid><description>The full definition: the five properties, the architecture underneath, what it isn&apos;t, the hard problems nobody solved yet, and how to evaluate one.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>ai operating system</category><category>agents</category><category>architecture</category><category>category</category></item><item><title>What is an AI workflow?</title><link>https://velabios.com/blog/what-is-an-ai-workflow/</link><guid isPermaLink="true">https://velabios.com/blog/what-is-an-ai-workflow/</guid><description>The middle ground between a rigid automation and a free-roaming agent: fixed steps with model calls inside them. Often the right answer, and underrated.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>ai workflow</category><category>automation</category><category>architecture</category><category>category</category></item><item><title>We deleted our best marketing stats because they weren&apos;t true</title><link>https://velabios.com/blog/we-deleted-our-best-marketing-stats/</link><guid isPermaLink="true">https://velabios.com/blog/we-deleted-our-best-marketing-stats/</guid><description>2.1M kg of CO₂ saved. $12M in compute costs. 200+ apps. Every one of those numbers came out of our site, and the pages got better.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>marketing</category><category>honesty</category><category>product</category><category>story</category></item><item><title>What is retrieval-augmented generation (RAG)?</title><link>https://velabios.com/blog/what-is-retrieval-augmented-generation/</link><guid isPermaLink="true">https://velabios.com/blog/what-is-retrieval-augmented-generation/</guid><description>RAG lets a model answer from documents it was never trained on. How the pipeline works, where it breaks, and why agents lean on it constantly.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>rag</category><category>llm</category><category>retrieval</category><category>category</category></item><item><title>AI agent orchestration: coordinating more than one agent</title><link>https://velabios.com/blog/ai-agent-orchestration/</link><guid isPermaLink="true">https://velabios.com/blog/ai-agent-orchestration/</guid><description>Multi-agent systems fail in ways single agents don&apos;t. The patterns that hold up, the ones that don&apos;t, and when one agent is the right answer.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>agent orchestration</category><category>multi-agent</category><category>ai agents</category><category>architecture</category></item><item><title>AI agents vs workflow automation: when each one wins</title><link>https://velabios.com/blog/ai-agents-vs-workflow-automation/</link><guid isPermaLink="true">https://velabios.com/blog/ai-agents-vs-workflow-automation/</guid><description>Zapier-style rules are deterministic and cheap. Agents handle judgement. An honest comparison of where each belongs, from people building both.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>workflow automation</category><category>ai agents</category><category>comparison</category></item><item><title>AI copilot vs AI agent: who is holding the controls</title><link>https://velabios.com/blog/ai-copilot-vs-ai-agent/</link><guid isPermaLink="true">https://velabios.com/blog/ai-copilot-vs-ai-agent/</guid><description>A copilot works beside you in one app. An agent works instead of you across many. The distinction is about initiative, not intelligence.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>ai copilot</category><category>ai agents</category><category>comparison</category></item><item><title>Build vs buy AI agents: an honest decision framework</title><link>https://velabios.com/blog/build-vs-buy-ai-agents/</link><guid isPermaLink="true">https://velabios.com/blog/build-vs-buy-ai-agents/</guid><description>The demo takes a weekend. The 20% that follows takes a year. What actually costs time when you build agents in-house — and when it&apos;s still right.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>build vs buy</category><category>ai agents</category><category>architecture</category><category>comparison</category></item><item><title>Chatbot vs AI agent: the difference that matters</title><link>https://velabios.com/blog/chatbot-vs-ai-agent/</link><guid isPermaLink="true">https://velabios.com/blog/chatbot-vs-ai-agent/</guid><description>Both take a message and reply. Only one changes the state of your systems. Where the line actually falls, and why most &apos;agents&apos; are chatbots.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>ai agents</category><category>chatbot</category><category>comparison</category></item><item><title>LLM model routing: the cheapest model that can do the job</title><link>https://velabios.com/blog/llm-model-routing/</link><guid isPermaLink="true">https://velabios.com/blog/llm-model-routing/</guid><description>Sending every prompt to a frontier model is the default and it&apos;s wasteful. How to classify a request first, then route it — including the fallback chain.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>model routing</category><category>llm</category><category>cost</category><category>engineering</category></item><item><title>Programmatic SEO without shipping doorway pages</title><link>https://velabios.com/blog/programmatic-seo-without-doorway-pages/</link><guid isPermaLink="true">https://velabios.com/blog/programmatic-seo-without-doorway-pages/</guid><description>We generated 600 integration pages. The difference between a page set that ranks and one that gets demoted is what varies between the pages.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>seo</category><category>content</category><category>engineering</category></item><item><title>RPA vs AI agents: what changes when the bot can read</title><link>https://velabios.com/blog/rpa-vs-ai-agents/</link><guid isPermaLink="true">https://velabios.com/blog/rpa-vs-ai-agents/</guid><description>RPA automates the clicks. Agents work at the API layer and handle judgement. Why brittleness, not intelligence, is the real difference.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>rpa</category><category>ai agents</category><category>automation</category><category>comparison</category></item><item><title>Transactional email that actually arrives: SPF, DKIM, DMARC</title><link>https://velabios.com/blog/transactional-email-deliverability/</link><guid isPermaLink="true">https://velabios.com/blog/transactional-email-deliverability/</guid><description>Your sign-in codes are worthless in spam. The DNS records that authenticate your domain, and why one suppression list will lock users out.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>email</category><category>deliverability</category><category>dns</category><category>engineering</category></item><item><title>What is agentic AI? The term, minus the hype</title><link>https://velabios.com/blog/what-is-agentic-ai/</link><guid isPermaLink="true">https://velabios.com/blog/what-is-agentic-ai/</guid><description>Agentic AI describes a spectrum, not a switch. The five levels from autocomplete to autonomy, and an honest account of where the technology actually is.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>agentic ai</category><category>ai agents</category><category>definitions</category></item><item><title>What is an AI agent? A working definition</title><link>https://velabios.com/blog/what-is-an-ai-agent/</link><guid isPermaLink="true">https://velabios.com/blog/what-is-an-ai-agent/</guid><description>An agent isn&apos;t a chatbot with plugins. The four properties that separate an agent from a very good autocomplete — and the one most products are missing.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>ai agents</category><category>agentic ai</category><category>definitions</category></item><item><title>Email enumeration: how your login form leaks your user list</title><link>https://velabios.com/blog/email-enumeration-attack-prevention/</link><guid isPermaLink="true">https://velabios.com/blog/email-enumeration-attack-prevention/</guid><description>Identical error messages aren&apos;t enough — response timing leaks the same secret. How to make a signup endpoint that reveals nothing about who has an account.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate><category>security</category><category>authentication</category><category>privacy</category><category>engineering</category></item><item><title>How to store OTP codes securely (not as plain hashes)</title><link>https://velabios.com/blog/how-to-store-otp-codes-securely/</link><guid isPermaLink="true">https://velabios.com/blog/how-to-store-otp-codes-securely/</guid><description>A 6-digit code is only a million possibilities. Why SHA-256 isn&apos;t enough, what a server-side pepper buys you, and how to make verification atomic.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate><category>security</category><category>authentication</category><category>otp</category><category>engineering</category></item><item><title>Human-in-the-loop: shipping agents that don&apos;t scare people</title><link>https://velabios.com/blog/human-in-the-loop-approvals/</link><guid isPermaLink="true">https://velabios.com/blog/human-in-the-loop-approvals/</guid><description>Nobody wants an agent with root access. The three-tier approval model behind Velaris, why per-run scoped credentials matter, and what we refuse to automate at all.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate><category>human in the loop</category><category>security</category><category>agents</category><category>trust</category></item><item><title>How Velaris picks 1 tool from 1,000: the capability mesh</title><link>https://velabios.com/blog/how-velaris-picks-one-tool-from-a-thousand/</link><guid isPermaLink="true">https://velabios.com/blog/how-velaris-picks-one-tool-from-a-thousand/</guid><description>Tool schemas don&apos;t fit in a context window. How we treat connectors as data an agent searches at runtime, instead of stuffing 1,000 definitions into a prompt.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate><category>capability mesh</category><category>agents</category><category>engineering</category><category>tool calling</category></item></channel></rss>