[{"data":1,"prerenderedAt":1063},["ShallowReactive",2],{"navigation_docs":3,"-docs-cli-overview":493,"-docs-cli-overview-surround":1058},[4,46,135,218,257,292,355,377,420],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":45},"Getting Started","i-lucide-rocket","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"What is Heximon?","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F01.getting-started\u002F01.introduction","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F01.getting-started\u002F02.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002F01.getting-started\u002F03.quick-start","i-lucide-zap",{"title":26,"path":27,"stem":28,"icon":29},"Core Concepts","\u002Fdocs\u002Fgetting-started\u002Fcore-concepts","docs\u002F01.getting-started\u002F04.core-concepts","i-lucide-shapes",{"title":31,"path":32,"stem":33,"icon":34},"Examples","\u002Fdocs\u002Fgetting-started\u002Fexamples","docs\u002F01.getting-started\u002F05.examples","i-lucide-library",{"title":36,"path":37,"stem":38,"icon":39},"Where Next?","\u002Fdocs\u002Fgetting-started\u002Fwhere-next","docs\u002F01.getting-started\u002F06.where-next","i-lucide-signpost",{"title":41,"path":42,"stem":43,"icon":44},"Troubleshooting","\u002Fdocs\u002Fgetting-started\u002Ftroubleshooting","docs\u002F01.getting-started\u002F07.troubleshooting","i-lucide-life-buoy",false,{"title":47,"icon":48,"path":49,"stem":50,"children":51,"page":45},"Essentials","i-lucide-boxes","\u002Fdocs\u002Fessentials","docs\u002F02.essentials",[52,56,61,66,71,76,81,86,91,96,101,105,110,115,120,125,130],{"title":53,"path":54,"stem":55,"icon":48},"Modules & DI","\u002Fdocs\u002Fessentials\u002Fmodules-and-di","docs\u002F02.essentials\u002F01.modules-and-di",{"title":57,"path":58,"stem":59,"icon":60},"Controllers","\u002Fdocs\u002Fessentials\u002Fcontrollers","docs\u002F02.essentials\u002F02.controllers","i-lucide-route",{"title":62,"path":63,"stem":64,"icon":65},"Validation & DTOs","\u002Fdocs\u002Fessentials\u002Fvalidation","docs\u002F02.essentials\u002F03.validation","i-lucide-shield-check",{"title":67,"path":68,"stem":69,"icon":70},"Contracts","\u002Fdocs\u002Fessentials\u002Fcontracts","docs\u002F02.essentials\u002F04.contracts","i-lucide-file-signature",{"title":72,"path":73,"stem":74,"icon":75},"REST Client","\u002Fdocs\u002Fessentials\u002Fclient","docs\u002F02.essentials\u002F05.client","i-lucide-plug",{"title":77,"path":78,"stem":79,"icon":80},"Database","\u002Fdocs\u002Fessentials\u002Fdatabase","docs\u002F02.essentials\u002F06.database","i-lucide-database",{"title":82,"path":83,"stem":84,"icon":85},"Drizzle ORM","\u002Fdocs\u002Fessentials\u002Fdrizzle","docs\u002F02.essentials\u002F07.drizzle","i-lucide-database-zap",{"title":87,"path":88,"stem":89,"icon":90},"Persistence & Transactions","\u002Fdocs\u002Fessentials\u002Fpersistence","docs\u002F02.essentials\u002F08.persistence","i-lucide-database-backup",{"title":92,"path":93,"stem":94,"icon":95},"Migrations","\u002Fdocs\u002Fessentials\u002Fmigrations","docs\u002F02.essentials\u002F09.migrations","i-lucide-git-branch",{"title":97,"path":98,"stem":99,"icon":100},"Authentication","\u002Fdocs\u002Fessentials\u002Fauthentication","docs\u002F02.essentials\u002F10.authentication","i-lucide-key-round",{"title":102,"path":103,"stem":104,"icon":65},"Permissions & scopes","\u002Fdocs\u002Fessentials\u002Fpermissions","docs\u002F02.essentials\u002F11.permissions",{"title":106,"path":107,"stem":108,"icon":109},"Error Handling","\u002Fdocs\u002Fessentials\u002Ferrors","docs\u002F02.essentials\u002F12.errors","i-lucide-triangle-alert",{"title":111,"path":112,"stem":113,"icon":114},"Testing a Heximon App","\u002Fdocs\u002Fessentials\u002Ftesting","docs\u002F02.essentials\u002F13.testing","i-lucide-flask-conical",{"title":116,"path":117,"stem":118,"icon":119},"Test app harness","\u002Fdocs\u002Fessentials\u002Fcreatetestapp","docs\u002F02.essentials\u002F14.createtestapp","i-lucide-test-tube",{"title":121,"path":122,"stem":123,"icon":124},"Logging & Observability","\u002Fdocs\u002Fessentials\u002Flogging","docs\u002F02.essentials\u002F17.logging","i-lucide-scroll-text",{"title":126,"path":127,"stem":128,"icon":129},"Context & Lifecycle","\u002Fdocs\u002Fessentials\u002Fcontext-and-lifecycle","docs\u002F02.essentials\u002F18.context-and-lifecycle","i-lucide-radio",{"title":131,"path":132,"stem":133,"icon":134},"Project Structure","\u002Fdocs\u002Fessentials\u002Fproject-structure","docs\u002F02.essentials\u002F19.project-structure","i-lucide-folder-tree",{"title":136,"icon":137,"path":138,"stem":139,"children":140,"page":45},"Capabilities","i-lucide-sparkles","\u002Fdocs\u002Fcapabilities","docs\u002F03.capabilities",[141,145,150,155,160,164,169,174,179,184,188,193,198,203,208,213],{"title":142,"path":143,"stem":144,"icon":137},"Overview","\u002Fdocs\u002Fcapabilities\u002Foverview","docs\u002F03.capabilities\u002F01.overview",{"title":146,"path":147,"stem":148,"icon":149},"Events","\u002Fdocs\u002Fcapabilities\u002Fevents","docs\u002F03.capabilities\u002F02.events","i-lucide-radio-tower",{"title":151,"path":152,"stem":153,"icon":154},"Queue","\u002Fdocs\u002Fcapabilities\u002Fbackground-jobs","docs\u002F03.capabilities\u002F03.background-jobs","i-lucide-list-ordered",{"title":156,"path":157,"stem":158,"icon":159},"Scheduled Work","\u002Fdocs\u002Fcapabilities\u002Fscheduled-jobs","docs\u002F03.capabilities\u002F04.scheduled-jobs","i-lucide-clock",{"title":161,"path":162,"stem":163,"icon":85},"Caching","\u002Fdocs\u002Fcapabilities\u002Fcaching","docs\u002F03.capabilities\u002F05.caching",{"title":165,"path":166,"stem":167,"icon":168},"Key\u002FValue Storage","\u002Fdocs\u002Fcapabilities\u002Fkey-value","docs\u002F03.capabilities\u002F06.key-value","i-lucide-hard-drive",{"title":170,"path":171,"stem":172,"icon":173},"Blob Storage","\u002Fdocs\u002Fcapabilities\u002Fblob","docs\u002F03.capabilities\u002F07.blob","i-lucide-folder-open",{"title":175,"path":176,"stem":177,"icon":178},"Health & Readiness","\u002Fdocs\u002Fcapabilities\u002Fhealth","docs\u002F03.capabilities\u002F08.health","i-lucide-heart-pulse",{"title":180,"path":181,"stem":182,"icon":183},"Notifications","\u002Fdocs\u002Fcapabilities\u002Fnotifications","docs\u002F03.capabilities\u002F09.notifications","i-lucide-mail",{"title":185,"path":186,"stem":187,"icon":65},"Idempotency","\u002Fdocs\u002Fcapabilities\u002Fidempotency","docs\u002F03.capabilities\u002F10.idempotency",{"title":189,"path":190,"stem":191,"icon":192},"Security Hardening","\u002Fdocs\u002Fcapabilities\u002Fsecurity","docs\u002F03.capabilities\u002F11.security","i-lucide-shield",{"title":194,"path":195,"stem":196,"icon":197},"Observability & Tracing","\u002Fdocs\u002Fcapabilities\u002Fobservability","docs\u002F03.capabilities\u002F12.observability","i-lucide-activity",{"title":199,"path":200,"stem":201,"icon":202},"OpenAPI","\u002Fdocs\u002Fcapabilities\u002Fopenapi","docs\u002F03.capabilities\u002F13.openapi","i-lucide-book-marked",{"title":204,"path":205,"stem":206,"icon":207},"MCP Server","\u002Fdocs\u002Fcapabilities\u002Fmcp","docs\u002F03.capabilities\u002F14.mcp","i-lucide-bot",{"title":209,"path":210,"stem":211,"icon":212},"Schema DTOs","\u002Fdocs\u002Fcapabilities\u002Fschema","docs\u002F03.capabilities\u002F15.schema","i-lucide-file-json",{"title":214,"path":215,"stem":216,"icon":217},"Branded IDs","\u002Fdocs\u002Fcapabilities\u002Fbranded-ids","docs\u002F03.capabilities\u002F16.branded-ids","i-lucide-tag",{"title":219,"icon":220,"path":221,"stem":222,"children":223,"page":45},"Architecture","i-lucide-building","\u002Fdocs\u002Farchitecture","docs\u002F04.architecture",[224,227,232,237,242,247,252],{"title":142,"path":225,"stem":226,"icon":220},"\u002Fdocs\u002Farchitecture\u002Foverview","docs\u002F04.architecture\u002F01.overview",{"title":228,"path":229,"stem":230,"icon":231},"Domain-Driven Design","\u002Fdocs\u002Farchitecture\u002Fddd","docs\u002F04.architecture\u002F02.ddd","i-lucide-hexagon",{"title":233,"path":234,"stem":235,"icon":236},"CQRS","\u002Fdocs\u002Farchitecture\u002Fcqrs","docs\u002F04.architecture\u002F03.cqrs","i-lucide-split",{"title":238,"path":239,"stem":240,"icon":241},"Repository Pattern","\u002Fdocs\u002Farchitecture\u002Frepository-pattern","docs\u002F04.architecture\u002F04.repository-pattern","i-lucide-archive",{"title":243,"path":244,"stem":245,"icon":246},"Integration Events","\u002Fdocs\u002Farchitecture\u002Fintegration-events","docs\u002F04.architecture\u002F05.integration-events","i-lucide-send-horizontal",{"title":248,"path":249,"stem":250,"icon":251},"Saga Orchestration","\u002Fdocs\u002Farchitecture\u002Fsagas","docs\u002F04.architecture\u002F06.sagas","i-lucide-hourglass",{"title":253,"path":254,"stem":255,"icon":256},"Durable Workflows","\u002Fdocs\u002Farchitecture\u002Fworkflows","docs\u002F04.architecture\u002F07.workflows","i-lucide-workflow",{"title":258,"icon":259,"path":260,"stem":261,"children":262,"page":45},"Realtime","i-lucide-cable","\u002Fdocs\u002Frealtime","docs\u002F05.realtime",[263,266,270,274,279,284,288],{"title":142,"path":264,"stem":265,"icon":259},"\u002Fdocs\u002Frealtime\u002Foverview","docs\u002F05.realtime\u002F01.overview",{"title":267,"path":268,"stem":269,"icon":129},"WebSockets","\u002Fdocs\u002Frealtime\u002Fwebsockets","docs\u002F05.realtime\u002F02.websockets",{"title":271,"path":272,"stem":273,"icon":70},"WebSocket Contracts","\u002Fdocs\u002Frealtime\u002Fwebsocket-contracts","docs\u002F05.realtime\u002F03.websocket-contracts",{"title":275,"path":276,"stem":277,"icon":278},"Server-Sent Events","\u002Fdocs\u002Frealtime\u002Fserver-sent-events","docs\u002F05.realtime\u002F04.server-sent-events","i-lucide-rss",{"title":280,"path":281,"stem":282,"icon":283},"Typed Clients","\u002Fdocs\u002Frealtime\u002Ftyped-clients","docs\u002F05.realtime\u002F05.typed-clients","i-lucide-plug-zap",{"title":285,"path":286,"stem":287,"icon":259},"AsyncAPI","\u002Fdocs\u002Frealtime\u002Fasyncapi","docs\u002F05.realtime\u002F06.asyncapi",{"title":289,"path":290,"stem":291,"icon":80},"Durable Objects","\u002Fdocs\u002Frealtime\u002Fdurable-objects","docs\u002F05.realtime\u002F07.durable-objects",{"title":293,"icon":294,"path":295,"stem":296,"children":297,"page":45},"Deploy","i-lucide-cloud-upload","\u002Fdocs\u002Fdeploy","docs\u002F06.deploy",[298,301,306,311,316,321,326,331,336,341,345,350],{"title":142,"path":299,"stem":300,"icon":6},"\u002Fdocs\u002Fdeploy\u002Foverview","docs\u002F06.deploy\u002F01.overview",{"title":302,"path":303,"stem":304,"icon":305},"Node","\u002Fdocs\u002Fdeploy\u002Fnode","docs\u002F06.deploy\u002F02.node","la:node-js",{"title":307,"path":308,"stem":309,"icon":310},"Cloudflare","\u002Fdocs\u002Fdeploy\u002Fcloudflare","docs\u002F06.deploy\u002F03.cloudflare","simple-icons:cloudflare",{"title":312,"path":313,"stem":314,"icon":315},"Vercel","\u002Fdocs\u002Fdeploy\u002Fvercel","docs\u002F06.deploy\u002F04.vercel","ri:vercel-fill",{"title":317,"path":318,"stem":319,"icon":320},"Netlify","\u002Fdocs\u002Fdeploy\u002Fnetlify","docs\u002F06.deploy\u002F05.netlify","i-simple-icons-netlify",{"title":322,"path":323,"stem":324,"icon":325},"AWS Lambda","\u002Fdocs\u002Fdeploy\u002Faws-lambda","docs\u002F06.deploy\u002F06.aws-lambda","hugeicons:aws-lambda",{"title":327,"path":328,"stem":329,"icon":330},"Deno Deploy","\u002Fdocs\u002Fdeploy\u002Fdeno-deploy","docs\u002F06.deploy\u002F07.deno-deploy","simple-icons:denodeploy",{"title":332,"path":333,"stem":334,"icon":335},"Nitro","\u002Fdocs\u002Fdeploy\u002Fnitro","docs\u002F06.deploy\u002F08.nitro","i-unjs-nitro",{"title":337,"path":338,"stem":339,"icon":340},"Nuxt","\u002Fdocs\u002Fdeploy\u002Fnuxt","docs\u002F06.deploy\u002F09.nuxt","i-devicon-nuxt",{"title":342,"path":343,"stem":344,"icon":236},"Mixed-runtime split","\u002Fdocs\u002Fdeploy\u002Fmixed-runtime-split","docs\u002F06.deploy\u002F10.mixed-runtime-split",{"title":346,"path":347,"stem":348,"icon":349},"Hosts","\u002Fdocs\u002Fdeploy\u002Fhosts","docs\u002F06.deploy\u002F11.hosts","i-lucide-map",{"title":351,"path":352,"stem":353,"icon":354},"Cross-service events","\u002Fdocs\u002Fdeploy\u002Fcross-service-events","docs\u002F06.deploy\u002F12.cross-service-events","i-lucide-network",{"title":356,"icon":357,"path":358,"stem":359,"children":360,"page":45},"CLI","i-lucide-terminal","\u002Fdocs\u002Fcli","docs\u002F07.cli",[361,365,369,373],{"title":362,"path":363,"stem":364,"icon":357},"The heximon CLI","\u002Fdocs\u002Fcli\u002Foverview","docs\u002F07.cli\u002F01.overview",{"title":366,"path":367,"stem":368,"icon":137},"Create a New App","\u002Fdocs\u002Fcli\u002Fcreate","docs\u002F07.cli\u002F02.create",{"title":370,"path":371,"stem":372,"icon":95},"Migrations from the CLI","\u002Fdocs\u002Fcli\u002Fmigrations","docs\u002F07.cli\u002F03.migrations",{"title":374,"path":375,"stem":376,"icon":6},"Deploying a Heximon app","\u002Fdocs\u002Fcli\u002Fdeploy","docs\u002F07.cli\u002F04.deploy",{"title":378,"icon":379,"path":380,"stem":381,"children":382,"page":45},"Under the Hood","i-lucide-wrench","\u002Fdocs\u002Funder-the-hood","docs\u002F08.under-the-hood",[383,388,393,397,402,407,411,415],{"title":384,"path":385,"stem":386,"icon":387},"How the Compiler Works","\u002Fdocs\u002Funder-the-hood\u002Fhow-the-compiler-works","docs\u002F08.under-the-hood\u002F01.how-the-compiler-works","i-lucide-cog",{"title":389,"path":390,"stem":391,"icon":392},"Compiler","\u002Fdocs\u002Funder-the-hood\u002Fextending-the-compiler","docs\u002F08.under-the-hood\u002F02.extending-the-compiler","i-lucide-cpu",{"title":394,"path":395,"stem":396,"icon":357},"Compiler Diagnostics","\u002Fdocs\u002Funder-the-hood\u002Fcompiler-diagnostics","docs\u002F08.under-the-hood\u002F03.compiler-diagnostics",{"title":398,"path":399,"stem":400,"icon":401},"Library Mode","\u002Fdocs\u002Funder-the-hood\u002Flibrary-mode","docs\u002F08.under-the-hood\u002F04.library-mode","i-lucide-package",{"title":403,"path":404,"stem":405,"icon":406},"Other bundlers","\u002Fdocs\u002Funder-the-hood\u002Falternate-bundlers","docs\u002F08.under-the-hood\u002F05.alternate-bundlers","i-lucide-blocks",{"title":408,"path":409,"stem":410,"icon":401},"Packages","\u002Fdocs\u002Funder-the-hood\u002Fpackages","docs\u002F08.under-the-hood\u002F06.packages",{"title":412,"path":413,"stem":414,"icon":207},"AI Skills","\u002Fdocs\u002Funder-the-hood\u002Fai-and-agents","docs\u002F08.under-the-hood\u002F07.ai-and-agents",{"title":416,"path":417,"stem":418,"icon":419},"Advanced DI","\u002Fdocs\u002Funder-the-hood\u002Fadvanced-di","docs\u002F08.under-the-hood\u002F08.advanced-di","i-lucide-git-fork",{"title":421,"icon":422,"path":423,"stem":424,"children":425,"page":45},"Recipes","i-lucide-book-open-check","\u002Fdocs\u002Frecipes","docs\u002F09.recipes",[426,431,436,440,444,448,452,456,460,465,469,474,479,484,488],{"title":427,"path":428,"stem":429,"icon":430},"Send an Email","\u002Fdocs\u002Frecipes\u002Fsend-an-email","docs\u002F09.recipes\u002F01.send-an-email","i-lucide-send",{"title":432,"path":433,"stem":434,"icon":435},"Upload a File","\u002Fdocs\u002Frecipes\u002Fupload-a-file","docs\u002F09.recipes\u002F02.upload-a-file","i-lucide-upload",{"title":437,"path":438,"stem":439,"icon":24},"Cache an Expensive Call","\u002Fdocs\u002Frecipes\u002Fcache-an-expensive-call","docs\u002F09.recipes\u002F03.cache-an-expensive-call",{"title":441,"path":442,"stem":443,"icon":154},"Paginate a List","\u002Fdocs\u002Frecipes\u002Fpaginate-a-list","docs\u002F09.recipes\u002F04.paginate-a-list",{"title":445,"path":446,"stem":447,"icon":65},"Protect Admin Routes","\u002Fdocs\u002Frecipes\u002Fprotect-admin-routes","docs\u002F09.recipes\u002F05.protect-admin-routes",{"title":449,"path":450,"stem":451,"icon":178},"Health Probes and a Nightly Job","\u002Fdocs\u002Frecipes\u002Fhealth-probes-and-a-nightly-job","docs\u002F09.recipes\u002F06.health-probes-and-a-nightly-job",{"title":453,"path":454,"stem":455,"icon":80},"Build a CRUD API","\u002Fdocs\u002Frecipes\u002Fcrud-api","docs\u002F09.recipes\u002F07.crud-api",{"title":457,"path":458,"stem":459,"icon":100},"Add Authentication","\u002Fdocs\u002Frecipes\u002Fadd-authentication","docs\u002F09.recipes\u002F08.add-authentication",{"title":461,"path":462,"stem":463,"icon":464},"Background Jobs","\u002Fdocs\u002Frecipes\u002Fbackground-jobs","docs\u002F09.recipes\u002F09.background-jobs","i-lucide-timer",{"title":466,"path":467,"stem":468,"icon":149},"Decouple Features with Events","\u002Fdocs\u002Frecipes\u002Fevent-driven-module","docs\u002F09.recipes\u002F10.event-driven-module",{"title":470,"path":471,"stem":472,"icon":473},"Build a DDD Aggregate","\u002Fdocs\u002Frecipes\u002Fddd-aggregate","docs\u002F09.recipes\u002F11.ddd-aggregate","i-lucide-box",{"title":475,"path":476,"stem":477,"icon":478},"Publish a Feature Package","\u002Fdocs\u002Frecipes\u002Ffeature-package","docs\u002F09.recipes\u002F12.feature-package","i-lucide-package-open",{"title":480,"path":481,"stem":482,"icon":483},"Reliable Integration Events","\u002Fdocs\u002Frecipes\u002Freliable-integration-events","docs\u002F09.recipes\u002F13.reliable-integration-events","i-lucide-inbox",{"title":485,"path":486,"stem":487,"icon":95},"Reactive Choreography","\u002Fdocs\u002Frecipes\u002Freactive-choreography","docs\u002F09.recipes\u002F14.reactive-choreography",{"title":489,"path":490,"stem":491,"icon":492},"Build a Production CRUD API","\u002Fdocs\u002Frecipes\u002Fproduction-crud-api","docs\u002F09.recipes\u002F15.production-crud-api","i-lucide-layers",{"id":494,"title":362,"body":495,"description":1051,"extension":1052,"links":1053,"meta":1054,"navigation":1055,"path":363,"seo":1056,"stem":364,"__hash__":1057},"docs\u002Fdocs\u002F07.cli\u002F01.overview.md",{"type":496,"value":497,"toc":1044},"minimark",[498,515,700,705,814,861,865,895,920,924,941,947,951,979,983,1040],[499,500,501,502,506,507,510,511,514],"p",{},"Building and running a Heximon app in development is ",[503,504,505],"code",{},"pnpm dev"," — no CLI needed. The ",[503,508,509],{},"heximon"," package is a\nseparate, unscoped install for the parts that bracket everyday development: starting a new project,\nshipping a build to a real platform, provisioning the resources that build needs an id for, and driving\nmigrations without a hand-written ",[503,512,513],{},"drizzle.config.ts",". It ships exactly four commands.",[516,517,518,577,619,660],"code-group",{},[519,520,526],"pre",{"className":521,"code":522,"filename":523,"language":524,"meta":525,"style":525},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm create heximon my-app     # day zero — nothing installed yet\npnpm add -D heximon            # in an existing project\npnpx heximon deploy\n","pnpm","bash","",[503,527,528,550,566],{"__ignoreMap":525},[529,530,533,536,540,543,546],"span",{"class":531,"line":532},"line",1,[529,534,523],{"class":535},"sBMFI",[529,537,539],{"class":538},"sfazB"," create",[529,541,542],{"class":538}," heximon",[529,544,545],{"class":538}," my-app",[529,547,549],{"class":548},"sHwdD","     # day zero — nothing installed yet\n",[529,551,553,555,558,561,563],{"class":531,"line":552},2,[529,554,523],{"class":535},[529,556,557],{"class":538}," add",[529,559,560],{"class":538}," -D",[529,562,542],{"class":538},[529,564,565],{"class":548},"            # in an existing project\n",[529,567,569,572,574],{"class":531,"line":568},3,[529,570,571],{"class":535},"pnpx",[529,573,542],{"class":538},[529,575,576],{"class":538}," deploy\n",[519,578,581],{"className":521,"code":579,"filename":580,"language":524,"meta":525,"style":525},"npm create heximon@latest my-app     # day zero — nothing installed yet\nnpm install -D heximon               # in an existing project\nnpx heximon deploy\n","npm",[503,582,583,596,610],{"__ignoreMap":525},[529,584,585,587,589,592,594],{"class":531,"line":532},[529,586,580],{"class":535},[529,588,539],{"class":538},[529,590,591],{"class":538}," heximon@latest",[529,593,545],{"class":538},[529,595,549],{"class":548},[529,597,598,600,603,605,607],{"class":531,"line":552},[529,599,580],{"class":535},[529,601,602],{"class":538}," install",[529,604,560],{"class":538},[529,606,542],{"class":538},[529,608,609],{"class":548},"               # in an existing project\n",[529,611,612,615,617],{"class":531,"line":568},[529,613,614],{"class":535},"npx",[529,616,542],{"class":538},[529,618,576],{"class":538},[519,620,623],{"className":521,"code":621,"filename":622,"language":524,"meta":525,"style":525},"yarn create heximon my-app     # day zero — nothing installed yet\nyarn add -D heximon            # in an existing project\nyarn dlx heximon deploy\n","yarn",[503,624,625,637,649],{"__ignoreMap":525},[529,626,627,629,631,633,635],{"class":531,"line":532},[529,628,622],{"class":535},[529,630,539],{"class":538},[529,632,542],{"class":538},[529,634,545],{"class":538},[529,636,549],{"class":548},[529,638,639,641,643,645,647],{"class":531,"line":552},[529,640,622],{"class":535},[529,642,557],{"class":538},[529,644,560],{"class":538},[529,646,542],{"class":538},[529,648,565],{"class":548},[529,650,651,653,656,658],{"class":531,"line":568},[529,652,622],{"class":535},[529,654,655],{"class":538}," dlx",[529,657,542],{"class":538},[529,659,576],{"class":538},[519,661,664],{"className":521,"code":662,"filename":663,"language":524,"meta":525,"style":525},"bun create heximon my-app     # day zero — nothing installed yet\nbun add -d heximon            # in an existing project\nbunx heximon deploy\n","bun",[503,665,666,678,691],{"__ignoreMap":525},[529,667,668,670,672,674,676],{"class":531,"line":532},[529,669,663],{"class":535},[529,671,539],{"class":538},[529,673,542],{"class":538},[529,675,545],{"class":538},[529,677,549],{"class":548},[529,679,680,682,684,687,689],{"class":531,"line":552},[529,681,663],{"class":535},[529,683,557],{"class":538},[529,685,686],{"class":538}," -d",[529,688,542],{"class":538},[529,690,565],{"class":548},[529,692,693,696,698],{"class":531,"line":568},[529,694,695],{"class":535},"bunx",[529,697,542],{"class":538},[529,699,576],{"class":538},[701,702,704],"h2",{"id":703},"the-command-surface","The command surface",[706,707,708,722],"table",{},[709,710,711],"thead",{},[712,713,714,719],"tr",{},[715,716,718],"th",{"align":717},"left","Command",[715,720,721],{"align":717},"What it does",[723,724,725,751,767,782],"tbody",{},[712,726,727,736],{},[728,729,730],"td",{"align":717},[731,732,733],"a",{"href":367},[503,734,735],{},"heximon create",[728,737,738,739,742,743,746,747,750],{"align":717},"Scaffold a new app from a starter template (",[503,740,741],{},"minimal"," \u002F ",[503,744,745],{},"database",", with an optional zod\u002Fvalibot validator). Also reachable as ",[503,748,749],{},"pnpm create heximon",".",[712,752,753,760],{},[728,754,755],{"align":717},[731,756,757],{"href":375},[503,758,759],{},"heximon deploy",[728,761,762,763,766],{"align":717},"Build (",[503,764,765],{},"vp build","), then ship the artifact to the configured platform via its native CLI.",[712,768,769,774],{},[728,770,771],{"align":717},[503,772,773],{},"heximon provision",[728,775,776,777,781],{"align":717},"Pre-build: create the foundational resources whose ",[778,779,780],"strong",{},"id the compiler needs"," (e.g. a Cloudflare Hyperdrive binding), and report each id to record.",[712,783,784,791],{},[728,785,786],{"align":717},[731,787,788],{"href":371},[503,789,790],{},"heximon migrations",[728,792,793,742,796,742,799,742,802,805,806,809,810,813],{"align":717},[503,794,795],{},"generate",[503,797,798],{},"migrate",[503,800,801],{},"status",[503,803,804],{},"push"," — drive your app's local ",[503,807,808],{},"drizzle-kit"," against its auto-detected config, with ",[503,811,812],{},".env"," already loaded.",[499,815,816,817,820,821,824,825,828,829,832,833,742,836,838,839,842,843,846,847,849,850,853,854,856,857,860],{},"That's the whole surface. There is no ",[503,818,819],{},"heximon dev",", ",[503,822,823],{},"heximon build",", or ",[503,826,827],{},"heximon serve"," — the dev server\nand the build step are the ",[503,830,831],{},"vp"," tasks (",[503,834,835],{},"vp dev",[503,837,765],{},") your ",[503,840,841],{},"vite.config.ts"," already runs via the\n",[503,844,845],{},"heximon()"," Vite plugin. The ",[503,848,509],{}," CLI brackets those: ",[503,851,852],{},"create"," before your first ",[503,855,505],{},", and\n",[503,858,859],{},"deploy"," at \"ship this to a platform.\"",[701,862,864],{"id":863},"every-command-shares-a-few-flags","Every command shares a few flags",[499,866,867,870,871,873,874,877,878,742,881,884,885,820,888,890,891,894],{},[503,868,869],{},"--cwd"," (project root, default ",[503,872,750],{},") and ",[503,875,876],{},"--env"," (deploy environment — ",[503,879,880],{},"production",[503,882,883],{},"staging"," \u002F\n",[503,886,887],{},"preview:\u003Cid>",[503,889,859],{},"\u002F",[503,892,893],{},"provision"," only) work the same way everywhere.",[499,896,897,898,900,901,903,904,907,908,911,912,915,916,919],{},"Beyond that, ",[503,899,859],{}," and ",[503,902,893],{}," read your ",[503,905,906],{},"heximon.config.ts"," config file to resolve ",[778,909,910],{},"which\nplatform"," you're targeting — a ",[503,913,914],{},"--platform cloudflare"," flag overrides it when your config doesn't declare\none — and ",[503,917,918],{},"migrations"," reads your drizzle config(s) directly, no platform involved.",[701,921,923],{"id":922},"interactive-or-scripted-either-way","Interactive or scripted, either way",[499,925,926,927,933,934,936,937,940],{},"Every command renders through ",[731,928,932],{"href":929,"rel":930},"https:\u002F\u002Fwww.clack.cc\u002F",[931],"nofollow","clack"," prompts when your terminal is a TTY — a\nmissing credential is an interactive question, a multi-database ",[503,935,918],{}," run is a ",[503,938,939],{},"select"," menu.",[499,942,943,944,946],{},"In CI (no TTY), the same commands run non-interactively: a missing required credential halts with the env\nvar name to set instead of prompting, and a multi-database ",[503,945,918],{}," run defaults to acting on all of\nthem. Nothing about the underlying steps changes between the two modes — only how a decision gets made.",[701,948,950],{"id":949},"no-embedded-infrastructure-engine","No embedded infrastructure engine",[499,952,953,900,955,957,958,960,961,964,965,820,968,971,972,820,975,978],{},[503,954,759],{},[503,956,773],{}," don't reimplement Terraform. They resolve your credentials, run\n",[503,959,765],{},", then hand off to the platform's ",[778,962,963],{},"own"," CLI — ",[503,966,967],{},"wrangler deploy",[503,969,970],{},"vercel deploy --prebuilt",",\n",[503,973,974],{},"netlify deploy",[503,976,977],{},"deployctl deploy"," — capturing its output and reporting it back through clack. That's the\nwhole ship step: native-CLI handoff, not a second deploy tool to learn.",[701,980,982],{"id":981},"see-also","See also",[984,985,986,1014,1027],"ul",{},[987,988,989,992,993,995,996,820,999,971,1002,820,1005,820,1008,820,1011,750],"li",{},[731,990,991],{"href":375},"Deploy a Heximon app"," — ",[503,994,759],{},"'s full flag reference: ",[503,997,998],{},"--provision",[503,1000,1001],{},"--create",[503,1003,1004],{},"--migrate",[503,1006,1007],{},"--profile",[503,1009,1010],{},"--verify",[503,1012,1013],{},"--destroy",[987,1015,1016,992,1018,742,1020,742,1022,742,1024,1026],{},[731,1017,370],{"href":371},[503,1019,795],{},[503,1021,798],{},[503,1023,801],{},[503,1025,804],{}," without a\nhand-written drizzle config.",[987,1028,1029,1032,1033,742,1036,1039],{},[731,1030,1031],{"href":93},"Database migrations"," — the ",[503,1034,1035],{},"MigrationRunner",[503,1037,1038],{},"MigrationConfig"," mechanism the CLI\ndrives at the drizzle-kit layer, and the injectable runner that applies migrations at boot.",[1041,1042,1043],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":525,"searchDepth":552,"depth":552,"links":1045},[1046,1047,1048,1049,1050],{"id":703,"depth":552,"text":704},{"id":863,"depth":552,"text":864},{"id":922,"depth":552,"text":923},{"id":949,"depth":552,"text":950},{"id":981,"depth":552,"text":982},"heximon create, deploy, provision, and migrations — the commands the unscoped heximon package ships, scaffolding new apps, resolving credentials, running vp build, and shelling the vendor CLI for you.","md",null,{},{"icon":357},{"title":362,"description":1051},"ICaOR4A69T2-d2IwlmKGLw0X_Vk_0gDWwe64aH8ftPw",[1059,1061],{"title":351,"path":352,"stem":353,"description":1060,"icon":354,"children":-1},"Fan an integration event out to independently deployed services — the per-service-queue split, Redis Streams and SNS-to-SQS native broadcast, the Cloudflare DO-router escape hatch, and QStash push broadcast for freezing platforms — selected via crossService.transport.",{"title":366,"path":367,"stem":368,"description":1062,"icon":137,"children":-1},"heximon create (and pnpm create heximon) — scaffold a working Heximon app from a starter template in one command, with the template, validator, git, and install steps prompted or flagged.",1783300761903]