[{"data":1,"prerenderedAt":180},["ShallowReactive",2],{"work-agent-monorepo-en":3,"work-og-agent-monorepo":122},{"id":4,"title":5,"bars":6,"blurb":7,"body":8,"color":96,"contacts":97,"date":97,"dateModified":97,"description":98,"extension":99,"featured":100,"groups":97,"kicker":101,"meta":102,"metrics":103,"n":97,"navigation":112,"openTabs":97,"path":113,"progress":97,"readTime":97,"reading":97,"role":114,"rules":97,"running":97,"seo":115,"ships":97,"slug":5,"stack":97,"started":97,"status":97,"stem":116,"streak":97,"tag":117,"tagColor":97,"tagline":119,"tasks":97,"timeline":97,"topics":97,"week":97,"year":120,"__hash__":121},"en\u002Fwork\u002Fagent-monorepo.md","agent-monorepo",3,"a boilerplate for teams who let agents write most of the code. contracts first, humans second, agents third.",{"type":9,"value":10,"toc":89},"minimark",[11,16,20,24,27,31,34,73,76,86],[12,13,15],"h2",{"id":14},"the-goal","the goal",[17,18,19],"p",{},"make it cheap and safe to let an ai agent write most of the code in a real product — backend, web, mobile — without the parts silently drifting apart.",[12,21,23],{"id":22},"the-problem","the problem",[17,25,26],{},"agents are fast but local. they happily add a field to a nest controller and forget the nuxt call site, or rename a flutter model and leave the server schema behind. in a normal monorepo nothing stops them — types live separately per runtime, and the first real feedback is a 500 in production.",[12,28,30],{"id":29},"how-it-solves-it","how it solves it",[17,32,33],{},"one contract, three runtimes.",[35,36,37,45,51,65],"ul",{},[38,39,40,44],"li",{},[41,42,43],"strong",{},"openapi + asyncapi"," as the single source of truth for requests, events and domain models.",[38,46,47,50],{},[41,48,49],{},"codegen"," into typed clients and server stubs for nest (typescript), nuxt (typescript) and flutter (dart) — so a change in the spec breaks compile everywhere it matters, before the agent can ship it.",[38,52,53,56,57,60,61,64],{},[41,54,55],{},"prisma 7"," for the data layer, ",[41,58,59],{},"better auth"," for sessions, ",[41,62,63],{},"turbo + pnpm"," for the plumbing.",[38,66,67,68,72],{},"repo layout and readme written ",[69,70,71],"em",{},"for agents",": small, labelled surfaces, clear \"do\u002Fdon't\" boundaries, scripts agents can actually run.",[17,74,75],{},"the boilerplate itself is tiny on purpose. the idea isn't \"use this framework\" — it's \"clone this, delete what you don't need, keep the contract-first habit\".",[17,77,78,79],{},"source → ",[80,81,85],"a",{"href":82,"rel":83},"https:\u002F\u002Fgithub.com\u002Fevgentus-cy\u002Fclaude-driven-nest-nuxt-flutter-monorepo",[84],"nofollow","github.com\u002Fevgentus-cy\u002Fclaude-driven-nest-nuxt-flutter-monorepo",[17,87,88],{},"● oss · tooling · mit",{"title":90,"searchDepth":91,"depth":6,"links":92},"",2,[93,94,95],{"id":14,"depth":91,"text":15},{"id":22,"depth":91,"text":23},{"id":29,"depth":91,"text":30},"var(--green)",null,"agent-monorepo — a spec-first, agent-friendly boilerplate stitching nestjs, nuxt and flutter around a shared openapi + asyncapi contract.","md",false,"▸ CH.04 \u002F agent-monorepo · oss tooling",{},[104,107,109],[105,106],"runtimes","nest · nuxt · flutter",[108,43],"contracts",[110,111],"license","mit",true,"\u002Fwork\u002Fagent-monorepo","author · maintainer",{"title":5,"description":98},"work\u002Fagent-monorepo",{"label":118,"color":96},"oss · tooling","spec-first monorepo for ai-coded teams","2025 → now","0Cg2Thk0QBI3xu9szEBSizdus-KjIu1Qz3S6OZuHVGI",{"id":4,"title":5,"bars":6,"blurb":7,"body":123,"color":96,"contacts":97,"date":97,"dateModified":97,"description":98,"extension":99,"featured":100,"groups":97,"kicker":101,"meta":173,"metrics":174,"n":97,"navigation":112,"openTabs":97,"path":113,"progress":97,"readTime":97,"reading":97,"role":114,"rules":97,"running":97,"seo":178,"ships":97,"slug":5,"stack":97,"started":97,"status":97,"stem":116,"streak":97,"tag":179,"tagColor":97,"tagline":119,"tasks":97,"timeline":97,"topics":97,"week":97,"year":120,"__hash__":121},{"type":9,"value":124,"toc":168},[125,127,129,131,133,135,137,159,161,166],[12,126,15],{"id":14},[17,128,19],{},[12,130,23],{"id":22},[17,132,26],{},[12,134,30],{"id":29},[17,136,33],{},[35,138,139,143,147,155],{},[38,140,141,44],{},[41,142,43],{},[38,144,145,50],{},[41,146,49],{},[38,148,149,56,151,60,153,64],{},[41,150,55],{},[41,152,59],{},[41,154,63],{},[38,156,67,157,72],{},[69,158,71],{},[17,160,75],{},[17,162,78,163],{},[80,164,85],{"href":82,"rel":165},[84],[17,167,88],{},{"title":90,"searchDepth":91,"depth":6,"links":169},[170,171,172],{"id":14,"depth":91,"text":15},{"id":22,"depth":91,"text":23},{"id":29,"depth":91,"text":30},{},[175,176,177],[105,106],[108,43],[110,111],{"title":5,"description":98},{"label":118,"color":96},1777071042800]