[{"data":1,"prerenderedAt":812},["ShallowReactive",2],{"fougere:post.list:{}":3,"docs:\u002Fdocs\u002Frun\u002Fdeploy":6,"docs-uses":502,"docs-nav":674},{"items":4,"hasMore":5},[],false,{"id":7,"title":8,"body":9,"description":487,"extension":488,"forms":489,"kind":492,"meta":493,"navigation":308,"path":494,"seo":495,"stem":496,"step":497,"uses":498,"__hash__":501},"docs\u002Fdocs\u002F6.run\u002F1.deploy.md","Deploy a split",{"type":10,"value":11,"toc":482},"minimark",[12,30,35,119,134,147,157,161,172,242,245,370,381,400,404,428,446,465,471,478],[13,14,15,16,20,21,25,26,29],"p",{},"A Fougere app is a Nitro app. The build scans the frond sources once and writes the statement —\n",[17,18,19],"code",{},"frond()"," calls importing every class — which the server bundle carries: ",[22,23,24],"strong",{},"nothing reads a source at\nruntime",", and neither TypeScript nor ",[17,27,28],{},"@fougere\u002Fcompiler"," ships. This page is what deploying this very\nsite taught — the checklist, then the Docker realization.",[31,32,34],"h2",{"id":33},"the-runtime-checklist","The runtime checklist",[36,37,38,51,65,79,93,107],"ol",{},[39,40,41,46,47,50],"li",{},[22,42,43],{},[17,44,45],{},".output\u002F"," — the Nitro build (",[17,48,49],{},"pnpm build","). It holds the frond code: the statement the\nbuild wrote imports it, so the bundle carries it.",[39,52,53,56,57,60,61,64],{},[22,54,55],{},"The native driver"," — ",[17,58,59],{},"better-sqlite3"," opens beside the app and is no part of a bundle.\n",[17,62,63],{},"pnpm deploy --prod"," writes the closure that holds it; hand-picking packages is re-implementing\na tracer, don't.",[39,66,67,70,71,74,75,78],{},[22,68,69],{},"The rows a file source keeps"," — the site's ",[17,72,73],{},"posts\u002F",", which ",[17,76,77],{},"sources:"," names by path.",[39,80,81,87,88,92],{},[22,82,83,84],{},"A writable ",[17,85,86],{},".data\u002F"," — the SQLite file and Nuxt Content's index live there. It is\nthe ",[89,90,91],"em",{},"only"," thing to persist: one volume.",[39,94,95,98,99,102,103,106],{},[22,96,97],{},"A migrated database"," — the boot reads the schema and refuses one behind the entities,\nso ",[17,100,101],{},"fougere migrate --apply"," runs first, as a release step, from an image that holds the\nsources. Once per deployment, never per replica. It applies the frozen versions and\nrefuses an entity nobody froze, so the change that moves one carries ",[17,104,105],{},"fougere freeze",".",[39,108,109,56,112,115,116,106],{},[22,110,111],{},"Secrets by env",[17,113,114],{},"SITE_AUTH_SECRET"," (32+ chars), the public ",[17,117,118],{},"SITE_URL",[13,120,121,124,125,124,128,130,131,133],{},[17,122,123],{},".output",", ",[17,126,127],{},".data",[17,129,73],{}," and ",[17,132,59],{}," alone, in an empty directory, boot the\nsite's three fronds and answer a call.",[13,135,136,137,142,143,146],{},"The verification signal is the ",[138,139,141],"a",{"href":140},"\u002Fdocs\u002Fadopt\u002Fnew-project#create-it","boot log"," and one envelope call —\n",[22,144,145],{},"not"," a 200 on pages (SSR renders happily with zero fronds loaded):",[148,149,154],"pre",{"className":150,"code":152,"language":153},[151],"language-text","{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}\n","text",[17,155,152],{"__ignoreMap":156},"",[31,158,160],{"id":159},"docker","Docker",[13,162,163,164,167,168,171],{},"The site ships a working pair — ",[17,165,166],{},"site\u002FDockerfile"," + ",[17,169,170],{},"site\u002Fdocker-compose.yml",":",[148,173,177],{"className":174,"code":175,"language":176,"meta":156,"style":156},"language-bash shiki shiki-themes material-theme-lighter fougere-pastel material-theme-palenight","SITE_AUTH_SECRET='…32+ chars…' SITE_URL='https:\u002F\u002Fyour-domain' \\\n  docker compose -f site\u002Fdocker-compose.yml up -d --build\n","bash",[17,178,179,217],{"__ignoreMap":156},[180,181,184,187,191,195,199,201,204,206,208,211,213],"span",{"class":182,"line":183},"line",1,[180,185,114],{"class":186},"sPEhv",[180,188,190],{"class":189},"s15xx","=",[180,192,194],{"class":193},"sDDC1","'",[180,196,198],{"class":197},"sN-8n","…32+ chars…",[180,200,194],{"class":193},[180,202,203],{"class":186}," SITE_URL",[180,205,190],{"class":189},[180,207,194],{"class":193},[180,209,210],{"class":197},"https:\u002F\u002Fyour-domain",[180,212,194],{"class":193},[180,214,216],{"class":215},"sV8pK"," \\\n",[180,218,220,223,226,230,233,236,239],{"class":182,"line":219},2,[180,221,222],{"class":197},"  docker",[180,224,225],{"class":197}," compose",[180,227,229],{"class":228},"svHQO"," -f",[180,231,232],{"class":197}," site\u002Fdocker-compose.yml",[180,234,235],{"class":197}," up",[180,237,238],{"class":228}," -d",[180,240,241],{"class":228}," --build\n",[13,243,244],{},"The Dockerfile realizes the checklist in two stages:",[148,246,250],{"className":247,"code":248,"language":249,"meta":156,"style":156},"language-dockerfile shiki shiki-themes material-theme-lighter fougere-pastel material-theme-palenight","# build stage: install workspace → build packages → build site\nRUN pnpm --filter \".\u002Fpackages\u002F**\" -r run build \\\n && pnpm --filter \"@fougere\u002Fsite\" run build\n# the native driver's closure, by pnpm itself:\nRUN pnpm --filter \"@fougere\u002Fsite\" deploy --prod --legacy \u002Fdeploy\n\n# run stage: node:22-bookworm-slim, non-root\nCOPY --from=build \u002Frepo\u002Fsite\u002F.output .\u002F.output\nCOPY --from=build \u002Frepo\u002Fsite\u002Fposts   .\u002Fposts\nCOPY --from=build \u002Fdeploy\u002Fnode_modules .\u002Fnode_modules\nVOLUME \u002Fapp\u002F.data\nCMD [\"node\", \".output\u002Fserver\u002Findex.mjs\"]\n","dockerfile",[17,251,252,258,273,285,291,303,310,316,325,333,341,350],{"__ignoreMap":156},[180,253,254],{"class":182,"line":183},[180,255,257],{"class":256},"skXKP","# build stage: install workspace → build packages → build site\n",[180,259,260,264,267,270],{"class":182,"line":219},[180,261,263],{"class":262},"sWPpw","RUN",[180,265,266],{"class":186}," pnpm --filter ",[180,268,269],{"class":197},"\".\u002Fpackages\u002F**\"",[180,271,272],{"class":186}," -r run build \\\n",[180,274,276,279,282],{"class":182,"line":275},3,[180,277,278],{"class":186}," && pnpm --filter ",[180,280,281],{"class":197},"\"@fougere\u002Fsite\"",[180,283,284],{"class":186}," run build\n",[180,286,288],{"class":182,"line":287},4,[180,289,290],{"class":256},"# the native driver's closure, by pnpm itself:\n",[180,292,294,296,298,300],{"class":182,"line":293},5,[180,295,263],{"class":262},[180,297,266],{"class":186},[180,299,281],{"class":197},[180,301,302],{"class":186}," deploy --prod --legacy \u002Fdeploy\n",[180,304,306],{"class":182,"line":305},6,[180,307,309],{"emptyLinePlaceholder":308},true,"\n",[180,311,313],{"class":182,"line":312},7,[180,314,315],{"class":256},"# run stage: node:22-bookworm-slim, non-root\n",[180,317,319,322],{"class":182,"line":318},8,[180,320,321],{"class":262},"COPY",[180,323,324],{"class":186}," --from=build \u002Frepo\u002Fsite\u002F.output .\u002F.output\n",[180,326,328,330],{"class":182,"line":327},9,[180,329,321],{"class":262},[180,331,332],{"class":186}," --from=build \u002Frepo\u002Fsite\u002Fposts   .\u002Fposts\n",[180,334,336,338],{"class":182,"line":335},10,[180,337,321],{"class":262},[180,339,340],{"class":186}," --from=build \u002Fdeploy\u002Fnode_modules .\u002Fnode_modules\n",[180,342,344,347],{"class":182,"line":343},11,[180,345,346],{"class":262},"VOLUME",[180,348,349],{"class":186}," \u002Fapp\u002F.data\n",[180,351,353,356,359,362,364,367],{"class":182,"line":352},12,[180,354,355],{"class":262},"CMD",[180,357,358],{"class":186}," [",[180,360,361],{"class":197},"\"node\"",[180,363,124],{"class":186},[180,365,366],{"class":197},"\".output\u002Fserver\u002Findex.mjs\"",[180,368,369],{"class":186},"]\n",[13,371,372,373,376,377,380],{},"State lives in the ",[17,374,375],{},"site-data"," volume mounted at ",[17,378,379],{},"\u002Fapp\u002F.data"," — backups are one file copy.",[13,382,383,384,387,388,391,392,395,396,399],{},"The compose file runs the release step as a service of its own: ",[17,385,386],{},"migrate"," is built from the\n",[22,389,390],{},"build"," stage — the one holding the sources and the CLI — mounts the same volume, and runs\n",[17,393,394],{},"pnpm -C site migrate",". The site waits for it (",[17,397,398],{},"depends_on: condition: service_completed_successfully","), so a server never starts against a database behind it.",[31,401,403],{"id":402},"splitting-in-production","Splitting in production",[13,405,406,407,410,411,414,415,418,419,423,424,106],{},"The same image model applies to a split: the host process serving a frond needs items\n1–3 for ",[89,408,409],{},"its"," fronds, and the consumer declares it in ",[17,412,413],{},"fronds:",". A dead host degrades to\na typed ",[17,416,417],{},"SERVICE_UNAVAILABLE"," in pages (",[138,420,422],{"href":421},"\u002Fdocs\u002Fconcepts\u002Fconfiguration#after-a-split","The gradient",");\nrestarting it is recovery — the consumer is never rebuilt. The host process runs on Node or Bun\nalike, and one on a Worker mounts the app on the engine it already has — see\n",[138,425,427],{"href":426},"\u002Fdocs\u002Fadopt\u002Fhosts#any-engine","any engine",[13,429,430,431,434,435,437,438,441,442,445],{},"Three things get called \"together\" and only one of them is required. The ",[22,432,433],{},"contract"," must\ntravel — the consumer has to know what the host serves. The ",[22,436,17],{}," need not: ",[17,439,440],{},"fougere sync"," reads the host's identity card and rebuilds a live schema locally, which is how a\nFrond written in another language is consumed at all. The ",[22,443,444],{},"ports"," must reach each other,\nand that is the only one a deployment decides.",[13,447,448,449,452,453,456,457,460,461,106],{},"The receiver binds loopback unless told otherwise, so the simplest split puts both\nprocesses on one machine: the same pod, or one image. ",[17,450,451],{},"hosts: ['0.0.0.0']"," widens it in\none line, and a receiver widened that way must be able to establish its caller or it will\nnot start. That is a seventh item for the list above: ",[17,454,455],{},"fougere keys"," once for the system,\n",[17,458,459],{},"fougere grant \u003Cfrond>"," for each frond that calls, and three environment variables\ninjected at launch — see ",[138,462,464],{"href":463},"\u002Fdocs\u002Frun\u002Fsecure","Identity across fronds",[13,466,467,470],{},[17,468,469],{},"fougere build"," writes the statement, not an image: the steps above are yours, and this page is\ntheir checklist.",[13,472,473,474,106],{},"What a deployed process does on the way out — draining the calls in flight before closing\nits connection — is one page over: ",[138,475,477],{"href":476},"\u002Fdocs\u002Frun\u002Flifecycle","Lifecycle",[479,480,481],"style",{},"html pre.shiki code .sPEhv, html code.shiki .sPEhv{--shiki-light:#90A4AE;--shiki-default:#DDE5DA;--shiki-dark:#BABED8}html pre.shiki code .s15xx, html code.shiki .s15xx{--shiki-light:#39ADB5;--shiki-default:#A3B0A5;--shiki-dark:#89DDFF}html pre.shiki code .sDDC1, html code.shiki .sDDC1{--shiki-light:#39ADB5;--shiki-default:#EE9F6B;--shiki-dark:#89DDFF}html pre.shiki code .sN-8n, html code.shiki .sN-8n{--shiki-light:#91B859;--shiki-default:#EE9F6B;--shiki-dark:#C3E88D}html pre.shiki code .sV8pK, html code.shiki .sV8pK{--shiki-light:#E2931D;--shiki-default:#C9B6EA;--shiki-dark:#FFCB6B}html pre.shiki code .svHQO, html code.shiki .svHQO{--shiki-light:#91B859;--shiki-default:#8FCF86;--shiki-dark:#C3E88D}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);}html pre.shiki code .skXKP, html code.shiki .skXKP{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#7D8C80;--shiki-default-font-style:inherit;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sWPpw, html code.shiki .sWPpw{--shiki-light:#F76D47;--shiki-default:#8FCF86;--shiki-dark:#F78C6C}",{"title":156,"searchDepth":219,"depth":219,"links":483},[484,485,486],{"id":33,"depth":219,"text":34},{"id":159,"depth":219,"text":160},{"id":402,"depth":219,"text":403},"Two processes in production, the same code in each.","md",[490,469,491],"fronds.*.remote","fougere serve","task",{},"\u002Fdocs\u002Frun\u002Fdeploy",{"title":8,"description":487},"docs\u002F6.run\u002F1.deploy",null,[499,500],"configuration","frond","taxA9POa87nZhBVPym89MnXJ6TJNQy0XeRQo85yES5A",[503,506,509,512,515,518,521,524,527,532,537,542,546,550,554,558,562,567,571,575,580,584,589,593,597,599,602,605,609,613,617,621,625,629,633,637,641,644,647,650,653,656,659,662,665,668,671],{"path":504,"title":505,"uses":497},"\u002Fdocs\u002Fconcepts\u002Fentity","Entity",{"path":507,"title":508,"uses":497},"\u002Fdocs\u002Fconcepts\u002Fhandler","Handler",{"path":510,"title":511,"uses":497},"\u002Fdocs\u002Fconcepts\u002Frepository","Repository",{"path":513,"title":514,"uses":497},"\u002Fdocs\u002Fconcepts\u002Ffrond","Frond",{"path":516,"title":517,"uses":497},"\u002Fdocs\u002Fconcepts\u002Ffacade","Facade",{"path":519,"title":520,"uses":497},"\u002Fdocs\u002Fconcepts\u002Ffact","Fact",{"path":522,"title":523,"uses":497},"\u002Fdocs\u002Fconcepts\u002Fport","Port",{"path":525,"title":526,"uses":497},"\u002Fdocs\u002Fconcepts\u002Fconfiguration","Configuration",{"path":528,"title":529,"uses":530},"\u002Fdocs\u002Faccess\u002Fauthentication","Authentication",[531,500],"port",{"path":533,"title":534,"uses":535},"\u002Fdocs\u002Faccess\u002Fstate","Keep a caller's state",[499,536],"handler",{"path":538,"title":539,"uses":540},"\u002Fdocs\u002Fdata\u002Fsql","SQLite or Postgres",[541,499],"entity",{"path":543,"title":544,"uses":545},"\u002Fdocs\u002Fdata\u002Fseveral-databases","Several databases",[499,541],{"path":547,"title":548,"uses":549},"\u002Fdocs\u002Fdata\u002Fcomputed-field","A computed field",[541,531],{"path":551,"title":552,"uses":553},"\u002Fdocs\u002Fdata\u002Fevolve","Evolve a schema",[541],{"path":555,"title":556,"uses":557},"\u002Fdocs\u002Fdata\u002Fseeds","Seed data",[541],{"path":559,"title":560,"uses":561},"\u002Fdocs\u002Fdata\u002Fvalues","Read settings and secrets",[541,499],{"path":563,"title":564,"uses":565},"\u002Fdocs\u002Fdata\u002Fmirror","Mirror a source you cannot query",[566],"repository",{"path":568,"title":569,"uses":570},"\u002Fdocs\u002Fdata\u002Ftogether","Two writes as one",[566],{"path":572,"title":573,"uses":574},"\u002Fdocs\u002Fbehaviour\u002Faround-every-call","Around every call",[531,500],{"path":576,"title":577,"uses":578},"\u002Fdocs\u002Fbehaviour\u002Ffinish-a-fact","Finish a fact",[579],"fact",{"path":581,"title":582,"uses":583},"\u002Fdocs\u002Fserve\u002Frest-graphql","REST, OpenAPI, GraphQL",[536,499],{"path":585,"title":586,"uses":587},"\u002Fdocs\u002Fserve\u002Fpages","Pages: queries and commands",[536,588],"facade",{"path":590,"title":591,"uses":592},"\u002Fdocs\u002Fserve\u002Fforms","A form",[541],{"path":594,"title":595,"uses":596},"\u002Fdocs\u002Fserve\u002Fadmin","An admin panel",[536],{"path":494,"title":8,"uses":598},[499,500],{"path":463,"title":600,"uses":601},"Secure calls between processes",[499,500],{"path":476,"title":603,"uses":604},"Reload and shut down",[499],{"path":606,"title":607,"uses":608},"\u002Fdocs\u002Frun\u002Fobserve","Observe",[499,536],{"path":610,"title":611,"uses":612},"\u002Fdocs\u002Frun\u002Fdev-panel","The dev panel",[536],{"path":614,"title":615,"uses":616},"\u002Fdocs\u002Frun\u002Ftest","Test",[541,531],{"path":618,"title":619,"uses":620},"\u002Fdocs\u002Fadopt\u002Fnew-project","Start a project",[500,499],{"path":622,"title":623,"uses":624},"\u002Fdocs\u002Fadopt\u002Fexisting-app","Add Fougere to an existing app",[500,499],{"path":626,"title":627,"uses":628},"\u002Fdocs\u002Fadopt\u002Fbring-your-schema","Bring your schema",[541],{"path":630,"title":631,"uses":632},"\u002Fdocs\u002Fadopt\u002Fhosts","Pick a host",[499],{"path":634,"title":635,"uses":636},"\u002Fdocs\u002Fadopt\u002Fanother-repository","A frond from another repository",[588,500],{"path":638,"title":639,"uses":640},"\u002Fdocs\u002Fadopt\u002Fdemos","Demos",[],{"path":642,"title":643,"uses":497},"\u002Fdocs\u002Fextending\u002Fscan","How the scan reads a project",{"path":645,"title":646,"uses":497},"\u002Fdocs\u002Fextending\u002Fwithout-compiler","Boot without the compiler",{"path":648,"title":649,"uses":497},"\u002Fdocs\u002Fextending\u002Fboot","The boot, step by step",{"path":651,"title":652,"uses":497},"\u002Fdocs\u002Fextending\u002Fcard-and-wire","The card and the wire",{"path":654,"title":655,"uses":497},"\u002Fdocs\u002Fextending\u002Fextension-points","Registries and extension points",{"path":657,"title":658,"uses":497},"\u002Fdocs\u002Fextending\u002Fvocabulary","Teach a word",{"path":660,"title":661,"uses":497},"\u002Fdocs\u002Fextending\u002Fextensions","Run code at boot and shutdown",{"path":663,"title":664,"uses":497},"\u002Fdocs\u002Fextending\u002Fsource-adapter","Write a source adapter",{"path":666,"title":667,"uses":497},"\u002Fdocs\u002Fextending\u002Fsurface","Write a surface",{"path":669,"title":670,"uses":497},"\u002Fdocs\u002Fextending\u002Fforeign-frond","A frond in another language",{"path":672,"title":673,"uses":497},"\u002Fdocs","What is Fougere",[675],{"title":676,"path":672,"stem":677,"children":678,"page":-1},"Docs","docs",[679,681,702,711,732,741,754,770,787],{"title":673,"path":672,"stem":680},"docs\u002Findex",{"title":682,"path":683,"stem":684,"children":685,"page":5},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F1.concepts",[686,688,690,692,694,696,698,700],{"title":505,"path":504,"stem":687},"docs\u002F1.concepts\u002F1.entity",{"title":508,"path":507,"stem":689},"docs\u002F1.concepts\u002F2.handler",{"title":511,"path":510,"stem":691},"docs\u002F1.concepts\u002F3.repository",{"title":514,"path":513,"stem":693},"docs\u002F1.concepts\u002F4.frond",{"title":517,"path":516,"stem":695},"docs\u002F1.concepts\u002F5.facade",{"title":520,"path":519,"stem":697},"docs\u002F1.concepts\u002F6.fact",{"title":523,"path":522,"stem":699},"docs\u002F1.concepts\u002F7.port",{"title":526,"path":525,"stem":701},"docs\u002F1.concepts\u002F8.configuration",{"title":703,"path":704,"stem":705,"children":706,"page":5},"Access","\u002Fdocs\u002Faccess","docs\u002F2.access",[707,709],{"title":529,"path":528,"stem":708},"docs\u002F2.access\u002F1.authentication",{"title":534,"path":533,"stem":710},"docs\u002F2.access\u002F2.state",{"title":712,"path":713,"stem":714,"children":715,"page":5},"Data","\u002Fdocs\u002Fdata","docs\u002F3.data",[716,718,720,722,724,726,728,730],{"title":539,"path":538,"stem":717},"docs\u002F3.data\u002F1.sql",{"title":544,"path":543,"stem":719},"docs\u002F3.data\u002F2.several-databases",{"title":548,"path":547,"stem":721},"docs\u002F3.data\u002F3.computed-field",{"title":552,"path":551,"stem":723},"docs\u002F3.data\u002F4.evolve",{"title":556,"path":555,"stem":725},"docs\u002F3.data\u002F5.seeds",{"title":560,"path":559,"stem":727},"docs\u002F3.data\u002F6.values",{"title":564,"path":563,"stem":729},"docs\u002F3.data\u002F7.mirror",{"title":569,"path":568,"stem":731},"docs\u002F3.data\u002F8.together",{"title":733,"path":734,"stem":735,"children":736,"page":5},"Behaviour","\u002Fdocs\u002Fbehaviour","docs\u002F4.behaviour",[737,739],{"title":573,"path":572,"stem":738},"docs\u002F4.behaviour\u002F1.around-every-call",{"title":577,"path":576,"stem":740},"docs\u002F4.behaviour\u002F2.finish-a-fact",{"title":742,"path":743,"stem":744,"children":745,"page":5},"Serve","\u002Fdocs\u002Fserve","docs\u002F5.serve",[746,748,750,752],{"title":582,"path":581,"stem":747},"docs\u002F5.serve\u002F1.rest-graphql",{"title":586,"path":585,"stem":749},"docs\u002F5.serve\u002F2.pages",{"title":591,"path":590,"stem":751},"docs\u002F5.serve\u002F3.forms",{"title":595,"path":594,"stem":753},"docs\u002F5.serve\u002F4.admin",{"title":755,"path":756,"stem":757,"children":758,"page":5},"Run","\u002Fdocs\u002Frun","docs\u002F6.run",[759,760,762,764,766,768],{"title":8,"path":494,"stem":496},{"title":600,"path":463,"stem":761},"docs\u002F6.run\u002F2.secure",{"title":603,"path":476,"stem":763},"docs\u002F6.run\u002F3.lifecycle",{"title":607,"path":606,"stem":765},"docs\u002F6.run\u002F4.observe",{"title":611,"path":610,"stem":767},"docs\u002F6.run\u002F5.dev-panel",{"title":615,"path":614,"stem":769},"docs\u002F6.run\u002F6.test",{"title":771,"path":772,"stem":773,"children":774,"page":5},"Adopt","\u002Fdocs\u002Fadopt","docs\u002F7.adopt",[775,777,779,781,783,785],{"title":619,"path":618,"stem":776},"docs\u002F7.adopt\u002F1.new-project",{"title":623,"path":622,"stem":778},"docs\u002F7.adopt\u002F2.existing-app",{"title":627,"path":626,"stem":780},"docs\u002F7.adopt\u002F3.bring-your-schema",{"title":631,"path":630,"stem":782},"docs\u002F7.adopt\u002F4.hosts",{"title":635,"path":634,"stem":784},"docs\u002F7.adopt\u002F5.another-repository",{"title":639,"path":638,"stem":786},"docs\u002F7.adopt\u002F6.demos",{"title":788,"path":789,"stem":790,"children":791,"page":5},"Extending","\u002Fdocs\u002Fextending","docs\u002F8.extending",[792,794,796,798,800,802,804,806,808,810],{"title":643,"path":642,"stem":793},"docs\u002F8.extending\u002F1.scan",{"title":646,"path":645,"stem":795},"docs\u002F8.extending\u002F10.without-compiler",{"title":649,"path":648,"stem":797},"docs\u002F8.extending\u002F2.boot",{"title":652,"path":651,"stem":799},"docs\u002F8.extending\u002F3.card-and-wire",{"title":655,"path":654,"stem":801},"docs\u002F8.extending\u002F4.extension-points",{"title":658,"path":657,"stem":803},"docs\u002F8.extending\u002F5.vocabulary",{"title":661,"path":660,"stem":805},"docs\u002F8.extending\u002F6.extensions",{"title":664,"path":663,"stem":807},"docs\u002F8.extending\u002F7.source-adapter",{"title":667,"path":666,"stem":809},"docs\u002F8.extending\u002F8.surface",{"title":670,"path":669,"stem":811},"docs\u002F8.extending\u002F9.foreign-frond",1794396614663]