[{"data":1,"prerenderedAt":167},["ShallowReactive",2],{"blog-po-agent-eve-boring-to-build":3},{"id":4,"title":5,"body":6,"coverImage":152,"date":153,"description":12,"excerpt":154,"extension":155,"meta":156,"navigation":162,"path":163,"published":162,"seo":164,"stem":165,"__hash__":166},"blog\u002Fblog\u002Fpo-agent-eve-boring-to-build.md","I Built a PO Agent That Knows My Code, My Tickets, and My Docs. eve Made It Boring to Build.",{"type":7,"value":8,"toc":141},"minimark",[9,13,16,19,22,27,30,33,35,39,42,45,48,50,54,62,65,68,71,73,77,80,96,99,102,104,108,111,114,117,119,123,126,129,132,134,138],[10,11,12],"p",{},"I run several personal projects at the same time, on top of a full-time job. The part that breaks first is never the code. It's tracking. Specs drift, tickets go stale, docs stop matching what's actually shipped, and I lose an hour every week just reconstructing where a project stands.",[10,14,15],{},"What I wanted wasn't another chatbot. I wanted something closer to a PO: an agent that can read my code, write and update specs, follow issues across the tools I actually use, and pull real data when I ask it a real question. Something that knows the project the way I do, without me re-explaining it every time.",[10,17,18],{},"That's what became my personal PO agent. This is the story of building it, and of eve, the framework I still don't see anyone actually building with yet.",[20,21],"hr",{},[23,24,26],"h2",{"id":25},"where-this-started-vercel-ship","Where This Started: Vercel Ship",[10,28,29],{},"I was in London for Vercel Ship when eve got announced, live, on stage, next to a stack of other launches under the Agent Stack banner. Most of what gets unveiled at these events blurs together by the time you're on the train home. This one didn't. The pitch was \"Next.js for agents,\" and I've spent enough years inside Nuxt and Next to know exactly what that promise means if it actually holds: an agent that's a directory of files, not a pile of glue code you rebuild every time.",[10,31,32],{},"I went home and tried to break it on a real problem before I let myself get excited about it.",[20,34],{},[23,36,38],{"id":37},"what-i-tried-before-eve","What I Tried Before eve",[10,40,41],{},"I didn't land on eve first. I tried OpenClaw, Hermes, and even LangChain, back before \"agentic\" was the word everyone reached for.",[10,43,44],{},"OpenClaw and Hermes are fully-fledged standalone runtimes, and that's precisely the problem: you inherit an entire application's worth of configuration surface just to get one agent talking to your tools. Setup took longer than it should have, and the security model never felt solid. I'm not the only one who's noticed. Academic security researchers have already published attack benchmarks against OpenClaw, documenting real vulnerabilities across prompt handling, tool use, and memory retrieval. LangChain sits at the opposite extreme: it's a library, not a working agent, so you spend your first week writing the plumbing eve gives you for free.",[10,46,47],{},"I wanted a framework, not an application, and not a pile of primitives either. Something where adding a new capability means adding a file, not learning a new subsystem or assembling one from scratch.",[20,49],{},[23,51,53],{"id":52},"why-eve","Why eve",[10,55,56,57,61],{},"eve's core idea is that an agent is a directory. Markdown for instructions and skills, TypeScript for tools, nothing to register by hand. Add a file under ",[58,59,60],"code",{},"tools\u002F",", and the filename becomes the tool name. Add a markdown skill, and it's loaded only when it's relevant instead of bloating every prompt.",[10,63,64],{},"The detail almost nobody mentions: eve's HTTP layer runs on Nitro, the same server engine that powers Nuxt. I've spent years inside Nuxt, so this wasn't a neutral detail for me. It meant the deployment story - build output, portability across hosts, the shape of the compiled app - was already familiar before I wrote a single tool.",[10,66,67],{},"Subagents are where it clicks for personal tooling specifically. Each subagent gets its own sandbox, isolated from its parent, so I could give my agent a GitHub subagent, a Jira subagent, a Confluence subagent, and later a Notion and a PostHog one, without any of them sharing a blast radius.",[10,69,70],{},"Adding the PostHog subagent, tool and connection wired end to end including its API key auth, took about ten minutes. The GitHub CLI connector was the same, roughly ten minutes to a working tool.",[20,72],{},[23,74,76],{"id":75},"what-it-actually-does","What It Actually Does",[10,78,79],{},"It's built on eve, with a thin routing layer on top that dispatches requests to specialist subagents based on intent. Requests get routed to specialist subagents:",[81,82,83,87,90,93],"ul",{},[84,85,86],"li",{},"A GitHub subagent that reads code, opens branches, and drafts PRs",[84,88,89],{},"A Jira and Confluence subagent for tracking and documentation",[84,91,92],{},"A Notion subagent for the project pages I actually use day to day",[84,94,95],{},"A PostHog subagent that pulls real usage data when I ask a real question",[10,97,98],{},"Every subagent that can write anything goes through an approval gate. Nothing lands in a repo, a ticket, or a doc without me confirming it first. That's not a nice-to-have. It's the only reason I trust this thing to touch real projects instead of a sandboxed demo repo.",[10,100,101],{},"The result is closer to a PO than a chatbot. I can ask it to draft a spec from a rough idea, and it pulls the current state of the code and the existing tickets before writing anything, instead of hallucinating a plan that ignores what already exists.",[20,103],{},[23,105,107],{"id":106},"security-without-overselling-it","Security, Without Overselling It",[10,109,110],{},"I want to be precise here, because it's easy to borrow eve's strongest security pitch without checking whether it applies to your actual setup.",[10,112,113],{},"eve's headline security feature is credential brokering: secrets never enter the sandbox at all, they're injected at the network firewall on a per-domain basis. That's a real feature, and it's genuinely strong, but it's specific to the Vercel Sandbox and microsandbox backends.",[10,115,116],{},"I run it locally in development and deploy it to my own VPS, which means the sandbox backend is Docker. Docker gives me real isolation, each subagent runs in its own container, and one subagent misbehaving doesn't reach into another one's filesystem. What Docker does not give me is per-domain credential brokering. It only supports allow-all or deny-all network policy, not the fine-grained firewall injection Vercel Sandbox offers.",[20,118],{},[23,120,122],{"id":121},"the-part-i-dont-say-enough","The Part I Don't Say Enough",[10,124,125],{},"This started as an experiment. A side project to see if I could stop losing an hour a week to project bookkeeping. It quietly stopped being an experiment somewhere in the last few weeks, and now I notice when it's down.",[10,127,128],{},"That's the uncomfortable part, not the beta label on the framework underneath it. I built a tool, alone, on infrastructure I self-host, and it became load-bearing for how I run every personal project I care about. There's no team backing it up if it breaks, no support contract, just me and whatever I decided to write six months ago. I'm fine with that trade. I'd rather admit I made it than pretend the tool arrived fully hardened.",[10,130,131],{},"Self-hosted is where it lives for now, not where it stays. The next move I actually want to make is putting it on Vercel directly and picking up the credential brokering I gave up by running Docker on my own VPS.",[20,133],{},[23,135,137],{"id":136},"conclusion","Conclusion",[10,139,140],{},"Most of what's been written about eve so far is about the pitch. This is about the six weeks after the pitch, spent wiring it into tools I actually use until it turned into something I depend on without thinking about it. I went in for one framework, and I'm coming out wanting to test the rest of what Vercel shipped alongside it - Connect, the Workflow SDK, Vercel Agent watching production and opening its own PRs. That's the only review of a framework that means anything to me, and it's the one nobody else has published yet.",{"title":142,"searchDepth":143,"depth":143,"links":144},"",2,[145,146,147,148,149,150,151],{"id":25,"depth":143,"text":26},{"id":37,"depth":143,"text":38},{"id":52,"depth":143,"text":53},{"id":75,"depth":143,"text":76},{"id":106,"depth":143,"text":107},{"id":121,"depth":143,"text":122},{"id":136,"depth":143,"text":137},"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1604688596260-0ca6e1c2e471?auto=format&fit=crop&w=1920&h=1080&q=80","2026-07-11",null,"md",{"tags":157},[158,159,160,161],"ai-agents","eve","developer-tools","side-projects",true,"\u002Fblog\u002Fpo-agent-eve-boring-to-build",{"title":5,"description":12},"blog\u002Fpo-agent-eve-boring-to-build","OEcTqpHMPj8-yAjGKOjRe2r9D6SMGnNBv8lwJzL7eBA",1783778329001]