[{"data":1,"prerenderedAt":678},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-introduction":217,"-getting-started-introduction-surround":675},[4,25,41,84,126,165,201],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":24},"Overview","i-lucide-house","\u002Fgetting-started","1.getting-started",[10,14,19],{"title":11,"path":12,"stem":13,"icon":6},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Project structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure","i-lucide-folder-tree",false,{"title":26,"icon":27,"path":28,"stem":29,"children":30,"page":24},"Architecture","i-lucide-cpu","\u002Farchitecture","3.architecture",[31,36],{"title":32,"path":33,"stem":34,"icon":35},"Core, themes, and apps","\u002Farchitecture\u002Foverview","3.architecture\u002F1.overview","i-lucide-layers",{"title":37,"path":38,"stem":39,"icon":40},"Kits and extension modules","\u002Farchitecture\u002Fkits","3.architecture\u002F3.kits","i-lucide-puzzle",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":24},"Apps","i-lucide-app-window","\u002Fapps","4.apps",[47,51,55,60,64,69,74,79],{"title":5,"path":48,"stem":49,"icon":50},"\u002Fapps\u002Foverview","4.apps\u002F1.overview","i-lucide-info",{"title":52,"path":53,"stem":54,"icon":23},"Package layout","\u002Fapps\u002Fpackage-layout","4.apps\u002F2.package-layout",{"title":56,"path":57,"stem":58,"icon":59},"Create from scratch","\u002Fapps\u002Fcreate-from-scratch","4.apps\u002F3.create-from-scratch","i-lucide-list-checks",{"title":61,"path":62,"stem":63,"icon":40},"Module and runtime","\u002Fapps\u002Fmodule-and-runtime","4.apps\u002F4.module-and-runtime",{"title":65,"path":66,"stem":67,"icon":68},"Plugins","\u002Fapps\u002Fplugins","4.apps\u002F5.plugins","i-lucide-plug",{"title":70,"path":71,"stem":72,"icon":73},"Windows and commands","\u002Fapps\u002Fwindows-and-commands","4.apps\u002F6.windows-and-commands","i-lucide-layout-panel-top",{"title":75,"path":76,"stem":77,"icon":78},"Playground","\u002Fapps\u002Fplayground","4.apps\u002F7.playground","i-lucide-flask-conical",{"title":80,"path":81,"stem":82,"icon":83},"Build and publish","\u002Fapps\u002Fbuild-and-publish","4.apps\u002F8.build-and-publish","i-lucide-package",{"title":85,"icon":86,"path":87,"stem":88,"children":89,"page":24},"Themes","i-lucide-palette","\u002Fthemes","5.themes",[90,93,98,102,106,111,116,121],{"title":5,"path":91,"stem":92,"icon":50},"\u002Fthemes\u002Foverview","5.themes\u002F1.overview",{"title":94,"path":95,"stem":96,"icon":97},"Theme anatomy","\u002Fthemes\u002Ftheme-anatomy","5.themes\u002F2.theme-anatomy","i-lucide-component",{"title":99,"path":100,"stem":101},"Create From Scratch","\u002Fthemes\u002Fcreate-from-scratch","5.themes\u002F3.create-from-scratch",{"title":103,"path":104,"stem":105,"icon":68},"Theme plugins","\u002Fthemes\u002Fplugins","5.themes\u002F4.plugins",{"title":107,"path":108,"stem":109,"icon":110},"Styling and Tailwind","\u002Fthemes\u002Fstyling-and-tailwind","5.themes\u002F5.styling-and-tailwind","i-lucide-brush",{"title":112,"path":113,"stem":114,"icon":115},"Pages and boot flow","\u002Fthemes\u002Fpages-and-boot-flow","5.themes\u002F6.pages-and-boot-flow","i-lucide-power",{"title":117,"path":118,"stem":119,"icon":120},"Theme and optional modules","\u002Fthemes\u002Ftheme-and-optional-modules","5.themes\u002F7.theme-and-optional-modules","i-lucide-link",{"title":122,"path":123,"stem":124,"icon":125},"Window chrome and nav buttons","\u002Fthemes\u002Fwindow-chrome-and-nav-buttons","5.themes\u002F8.window-chrome-and-nav-buttons","i-lucide-square-mouse-pointer",{"title":127,"icon":128,"path":129,"stem":130,"children":131,"page":24},"Client & CLI","i-lucide-terminal","\u002Fsetup","6.setup",[132,136,141,146,151,156,161],{"title":133,"path":134,"stem":135,"icon":128},"desktop CLI","\u002Fsetup\u002Fdesktop-cli","6.setup\u002F1.desktop-cli",{"title":137,"path":138,"stem":139,"icon":140},"Package linking","\u002Fsetup\u002Fpackage-linking","6.setup\u002F2.package-linking","i-lucide-link-2",{"title":142,"path":143,"stem":144,"icon":145},"Monorepo and workspace","\u002Fsetup\u002Fmonorepo-workspace","6.setup\u002F3.monorepo-workspace","i-lucide-blocks",{"title":147,"path":148,"stem":149,"icon":150},"desktop.config.ts","\u002Fsetup\u002Fdesktop-config","6.setup\u002F4.desktop-config","i-lucide-file-code",{"title":152,"path":153,"stem":154,"icon":155},"Migrate themes, apps, and modules (3.3.2)","\u002Fsetup\u002Fmigrate-packages-3.3.2","6.setup\u002F5.migrate-packages-3.3.2","i-lucide-arrow-right-left",{"title":157,"path":158,"stem":159,"icon":160},"Migrate themes, apps, and modules (3.4)","\u002Fsetup\u002Fmigrate-packages-3.4","6.setup\u002F6.migrate-packages-3.4","i-lucide-arrow-up-right",{"title":162,"path":163,"stem":164},"Troubleshooting","\u002Fsetup\u002Ftroubleshooting","6.setup\u002F7.troubleshooting",{"title":166,"icon":167,"path":168,"stem":169,"children":170,"page":24},"Internals","i-lucide-book-open","\u002Finternals","7.internals",[171,176,181,186,191,196],{"title":172,"path":173,"stem":174,"icon":175},"Boot sequence","\u002Finternals\u002Fboot-sequence","7.internals\u002F1.boot-sequence","i-lucide-list-ordered",{"title":177,"path":178,"stem":179,"icon":180},"Stores and composables","\u002Finternals\u002Fstores-and-composables","7.internals\u002F2.stores-and-composables","i-lucide-database",{"title":182,"path":183,"stem":184,"icon":185},"Core components","\u002Finternals\u002Fcore-components","7.internals\u002F3.core-components","i-lucide-layout-grid",{"title":187,"path":188,"stem":189,"icon":190},"Dialog provider","\u002Finternals\u002Fdialog-provider","7.internals\u002F4.dialog-provider","i-lucide-message-square",{"title":192,"path":193,"stem":194,"icon":195},"Kernel contract","\u002Finternals\u002Fkernel-contract","7.internals\u002F5.kernel-contract","i-lucide-shield-check",{"title":197,"path":198,"stem":199,"icon":200},"Shell identity","\u002Finternals\u002Fshell-identity","7.internals\u002F6.shell-identity","i-lucide-user",{"title":202,"icon":203,"path":204,"stem":205,"children":206,"page":24},"Reference","i-lucide-book-marked","\u002Freference","8.reference",[207,212],{"title":208,"path":209,"stem":210,"icon":211},"Glossary","\u002Freference\u002Fglossary","8.reference\u002F1.glossary","i-lucide-book-a",{"title":213,"path":214,"stem":215,"icon":216},"Ecosystem","\u002Freference\u002Fuseful-links","8.reference\u002F2.useful-links","i-lucide-external-link",{"id":218,"title":11,"body":219,"description":668,"extension":669,"links":670,"meta":671,"navigation":672,"path":12,"seo":673,"stem":13,"__hash__":674},"docs\u002F1.getting-started\u002F2.introduction.md",{"type":220,"value":221,"toc":661},"minimark",[222,227,243,246,337,361,365,372,382,409,416,420,481,485,494,497,563,569,574,578,657],[223,224,226],"h2",{"id":225},"what-open-web-desktop-is","What Open Web Desktop is",[228,229,230,234,235,238,239,242],"p",{},[231,232,233],"strong",{},"OWD"," is a ",[231,236,237],{},"desktop UI in the browser",": windows you can move and resize, a shell (menu bar, dock, workspaces — depending on theme), and ",[231,240,241],{},"programs"," started from a launcher.",[228,244,245],{},"You work on three package types:",[247,248,249,265],"table",{},[250,251,252],"thead",{},[253,254,255,259,262],"tr",{},[256,257,258],"th",{},"Type",[256,260,261],{},"Example",[256,263,264],{},"What it does",[266,267,268,293,316],"tbody",{},[253,269,270,276,290],{},[271,272,273],"td",{},[231,274,275],{},"Client",[271,277,278,282,283],{},[279,280,281],"code",{},"desktop\u002F"," in ",[284,285,289],"a",{"href":286,"rel":287},"https:\u002F\u002Fgithub.com\u002Fowdproject\u002Fclient",[288],"nofollow","owdproject\u002Fclient",[271,291,292],{},"The Nuxt app you run and deploy",[253,294,295,300,309],{},[271,296,297],{},[231,298,299],{},"Theme",[271,301,302,305,306],{},[279,303,304],{},"@owdproject\u002Ftheme-nova",", ",[279,307,308],{},"@owdproject\u002Ftheme-paper",[271,310,311,312,315],{},"Shell look + ",[279,313,314],{},"Desktop.vue"," + window chrome",[253,317,318,323,331],{},[271,319,320],{},[231,321,322],{},"App",[271,324,325,305,328],{},[279,326,327],{},"@owdproject\u002Fapp-about",[279,329,330],{},"@owdproject\u002Fapp-todo",[271,332,333,334],{},"Programs via ",[279,335,336],{},"defineDesktopApp",[228,338,339,342,343,305,346,349,350,353,354,357,358,360],{},[231,340,341],{},"Modules"," add capabilities (",[279,344,345],{},"@owdproject\u002Fmodule-fs",[279,347,348],{},"@owdproject\u002Fmodule-persistence","). ",[231,351,352],{},"Kits"," (like ",[279,355,356],{},"@owdproject\u002Fkit-primevue",") share component stacks and helper utilities between themes — see ",[284,359,352],{"href":38},".",[223,362,364],{"id":363},"the-desktop-client","The desktop client",[228,366,367,368,371],{},"A client is a normal ",[231,369,370],{},"Nuxt 4"," project:",[373,374,380],"pre",{"className":375,"code":377,"language":378,"meta":379},[376],"language-text","my-desktop\u002F\n├── nuxt.config.ts       # modules: ['@owdproject\u002Fcore']\n├── desktop.config.ts    # theme, apps, modules, shell keys\n└── app\u002Fapp.vue          # \u003CDesktop \u002F>\n","text","",[279,381,377],{"__ignoreMap":379},[228,383,384,385,387,388,391,392,305,395,398,399,404,405,408],{},"Core reads ",[279,386,147],{}," from the Nuxt root, installs ",[231,389,390],{},"theme → modules → apps",", and registers core components (",[279,393,394],{},"DesktopCore",[279,396,397],{},"DesktopWindow",", …). The theme’s global ",[231,400,401],{},[279,402,403],{},"Desktop"," component is what ",[279,406,407],{},"app.vue"," renders.",[228,410,411,412,305,414,360],{},"Bootstrap order and APIs: ",[284,413,172],{"href":173},[284,415,192],{"href":193},[223,417,419],{"id":418},"monorepo-vs-your-own-repo","Monorepo vs your own repo",[247,421,422,432],{},[250,423,424],{},[253,425,426,429],{},[256,427,428],{},"Workflow",[256,430,431],{},"When",[266,433,434,456,468],{},[253,435,436,443],{},[271,437,438],{},[231,439,440],{},[284,441,289],{"href":286,"rel":442},[288],[271,444,445,446,448,449,452,453],{},"Dev core, kits, reference ",[279,447,281],{},", clone apps\u002Fthemes under ",[279,450,451],{},"apps\u002F"," and ",[279,454,455],{},"themes\u002F",[253,457,458,465],{},[271,459,460],{},[231,461,462],{},[279,463,464],{},"npm create owd",[271,466,467],{},"New desktop project for end users)",[253,469,470,475],{},[271,471,472],{},[231,473,474],{},"Separate app\u002Ftheme repo",[271,476,477,478],{},"Publish to npm; consumers use ",[279,479,480],{},"desktop add",[223,482,484],{"id":483},"the-command-center-desktop-cli","The Command Center: desktop CLI",[228,486,487,488,493],{},"The ",[231,489,490],{},[279,491,492],{},"pnpm desktop"," command is the operational heart of the project. It is the tool that allows you to manage the entire desktop environment directly from the terminal, without having to manually edit dozens of configuration files.",[228,495,496],{},"From the project root you can run:",[373,498,502],{"className":499,"code":500,"language":501,"meta":379,"style":379},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm desktop              # Opens the interactive control panel (TUI)\npnpm desktop dev          # Starts the desktop development server\npnpm desktop add app-todo # Installs a new app and auto-updates the config\npnpm desktop validate     # Verifies that your modules are correctly configured\n","bash",[279,503,504,521,534,550],{"__ignoreMap":379},[505,506,509,513,517],"span",{"class":507,"line":508},"line",1,[505,510,512],{"class":511},"sBMFI","pnpm",[505,514,516],{"class":515},"sfazB"," desktop",[505,518,520],{"class":519},"sHwdD","              # Opens the interactive control panel (TUI)\n",[505,522,524,526,528,531],{"class":507,"line":523},2,[505,525,512],{"class":511},[505,527,516],{"class":515},[505,529,530],{"class":515}," dev",[505,532,533],{"class":519},"          # Starts the desktop development server\n",[505,535,537,539,541,544,547],{"class":507,"line":536},3,[505,538,512],{"class":511},[505,540,516],{"class":515},[505,542,543],{"class":515}," add",[505,545,546],{"class":515}," app-todo",[505,548,549],{"class":519}," # Installs a new app and auto-updates the config\n",[505,551,553,555,557,560],{"class":507,"line":552},4,[505,554,512],{"class":511},[505,556,516],{"class":515},[505,558,559],{"class":515}," validate",[505,561,562],{"class":519},"     # Verifies that your modules are correctly configured\n",[228,564,565,566,568],{},"Think of ",[279,567,492],{}," as your \"mission control\" for installing apps, switching themes, and managing the project lifecycle.",[228,570,571,572,360],{},"Full reference: ",[284,573,133],{"href":134},[223,575,577],{"id":576},"where-to-read-next","Where to read next",[247,579,580,590],{},[250,581,582],{},[253,583,584,587],{},[256,585,586],{},"Goal",[256,588,589],{},"Page",[266,591,592,601,610,625,639,648],{},[253,593,594,597],{},[271,595,596],{},"Run the reference desktop",[271,598,599],{},[284,600,15],{"href":16},[253,602,603,606],{},[271,604,605],{},"Repo layout",[271,607,608],{},[284,609,20],{"href":21},[253,611,612,617],{},[271,613,614],{},[231,615,616],{},"Write an app",[271,618,619,622,623],{},[284,620,621],{"href":48},"Apps overview"," → ",[284,624,56],{"href":57},[253,626,627,632],{},[271,628,629],{},[231,630,631],{},"Write a theme",[271,633,634,622,637],{},[284,635,636],{"href":91},"Themes overview",[284,638,56],{"href":100},[253,640,641,644],{},[271,642,643],{},"Config file",[271,645,646],{},[284,647,147],{"href":148},[253,649,650,653],{},[271,651,652],{},"Dependencies",[271,654,655],{},[284,656,137],{"href":138},[658,659,660],"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":379,"searchDepth":523,"depth":523,"links":662},[663,664,665,666,667],{"id":225,"depth":523,"text":226},{"id":363,"depth":523,"text":364},{"id":418,"depth":523,"text":419},{"id":483,"depth":523,"text":484},{"id":576,"depth":523,"text":577},"Open Web Desktop in one page — client, core, themes, apps.","md",null,{},{"icon":6},{"title":11,"description":668},"8FCqW7ZZe4lxmL-T2sUEyqXff-I5fdqbAVt4Itm_pBg",[670,676],{"title":15,"path":16,"stem":17,"description":677,"icon":18,"children":-1},"Run the OWD client monorepo and app\u002Ftheme playgrounds.",1782171654422]