[{"data":1,"prerenderedAt":962},["ShallowReactive",2],{"navigation":3,"\u002Fcore\u002Farchitecture":173,"\u002Fcore\u002Farchitecture-surround":957},[4,9,14,19,46,96,109,127,148],{"title":5,"path":6,"stem":7,"icon":8},"Introduction","\u002Fintroduction","01.introduction","i-lucide-info",{"title":10,"path":11,"stem":12,"icon":13},"Installation","\u002Finstallation","02.installation","i-lucide-circle-arrow-down",{"title":15,"path":16,"stem":17,"icon":18},"First App","\u002Ffirst-app","03.first-app","i-lucide-play",{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":45},"Core","i-lucide-container","\u002Fcore","10.core",[25,30,35,40],{"title":26,"path":27,"stem":28,"icon":29},"Architecture","\u002Fcore\u002Farchitecture","10.core\u002F1.architecture","i-lucide-folder-tree",{"title":31,"path":32,"stem":33,"icon":34},"Concepts","\u002Fcore\u002Fconcepts","10.core\u002F2.concepts","i-lucide-lightbulb",{"title":36,"path":37,"stem":38,"icon":39},"Runtime","\u002Fcore\u002Fruntime","10.core\u002F3.runtime","i-lucide-cpu",{"title":41,"path":42,"stem":43,"icon":44},"Modules","\u002Fcore\u002Fmodules","10.core\u002F4.modules","i-lucide-puzzle",false,{"title":47,"icon":48,"path":49,"stem":50,"children":51,"page":45},"Server","i-simple-icons-nestjs","\u002Fnest","11.nest",[52,55,72,77,82,87,92],{"title":5,"path":53,"stem":54,"icon":8},"\u002Fnest\u002Fintroduction","11.nest\u002F1.introduction",{"title":56,"path":57,"stem":58,"children":59,"icon":71},"Database","\u002Fnest\u002Fdatabase","11.nest\u002F2.database\u002F1.index",[60,61,66],{"title":56,"path":57,"stem":58,"icon":8},{"title":62,"path":63,"stem":64,"icon":65},"Models","\u002Fnest\u002Fdatabase\u002Fmodels","11.nest\u002F2.database\u002F2.models","i-lucide-database-zap",{"title":67,"path":68,"stem":69,"icon":70},"Plugins","\u002Fnest\u002Fdatabase\u002Fplugins","11.nest\u002F2.database\u002F3.plugins","i-lucide-plug","i-lucide-database",{"title":73,"path":74,"stem":75,"icon":76},"Controllers","\u002Fnest\u002Fcontrollers","11.nest\u002F3.controllers","i-lucide-route",{"title":78,"path":79,"stem":80,"icon":81},"Guards","\u002Fnest\u002Fguards","11.nest\u002F4.guards","i-lucide-shield-check",{"title":83,"path":84,"stem":85,"icon":86},"Services","\u002Fnest\u002Fservices","11.nest\u002F5.services","i-lucide-layers",{"title":88,"path":89,"stem":90,"icon":91},"Locales","\u002Fnest\u002Flocales","11.nest\u002F6.locales","i-lucide-languages",{"title":93,"path":94,"stem":95},"Env","\u002Fnest\u002Fenv","11.nest\u002F7.env",{"title":97,"icon":98,"path":99,"stem":100,"children":101,"page":45},"Client","i-simple-icons-nuxt","\u002Fnuxt","12.nuxt",[102,105],{"title":5,"path":103,"stem":104},"\u002Fnuxt\u002Fintroduction","12.nuxt\u002F1.introduction",{"title":106,"path":107,"stem":108},"Coming Soon","\u002Fnuxt\u002Fcoming-soon","12.nuxt\u002F2.coming-soon",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":45},"Configuration","i-lucide-settings","\u002Fconfiguration","13.configuration",[115,119,123],{"title":116,"path":117,"stem":118},"Opensya Config","\u002Fconfiguration\u002Fopensya-config","13.configuration\u002F1.opensya-config",{"title":120,"path":121,"stem":122},"Runtime Config","\u002Fconfiguration\u002Fruntime-config","13.configuration\u002F2.runtime-config",{"title":124,"path":125,"stem":126},"Server Config","\u002Fconfiguration\u002Fserver-config","13.configuration\u002F3.server-config",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":45},"Deployment","i-lucide-cloud","\u002Fdeployment","14.deployment",[133,136,140,144],{"title":5,"path":134,"stem":135},"\u002Fdeployment\u002Fintroduction","14.deployment\u002F1.introduction",{"title":137,"path":138,"stem":139},"Docker","\u002Fdeployment\u002Fdocker","14.deployment\u002F2.docker",{"title":141,"path":142,"stem":143},"Production","\u002Fdeployment\u002Fproduction","14.deployment\u002F3.production",{"title":145,"path":146,"stem":147},"Self Hosting","\u002Fdeployment\u002Fself-hosting","14.deployment\u002F4.self-hosting",{"title":149,"icon":150,"path":151,"stem":152,"children":153,"page":45},"Advanced","i-lucide-plus","\u002Fadvanced","15.advanced",[154,158,162,165,169],{"title":155,"path":156,"stem":157},"Internals","\u002Fadvanced\u002Finternals","15.advanced\u002F1.internals",{"title":159,"path":160,"stem":161},"Compiler","\u002Fadvanced\u002Fcompiler","15.advanced\u002F2.compiler",{"title":41,"path":163,"stem":164},"\u002Fadvanced\u002Fmodules","15.advanced\u002F3.modules",{"title":166,"path":167,"stem":168},"Globals","\u002Fadvanced\u002Fglobals","15.advanced\u002F4.globals",{"title":170,"path":171,"stem":172},"Lifecycle","\u002Fadvanced\u002Flifecycle","15.advanced\u002F5.lifecycle",{"id":174,"title":26,"body":175,"description":950,"extension":951,"links":952,"meta":953,"navigation":954,"path":27,"seo":955,"stem":28,"__hash__":956},"docs\u002F10.core\u002F1.architecture.md",{"type":176,"value":177,"toc":931},"minimark",[178,182,186,189,192,195,203,208,211,221,224,337,340,344,351,354,374,378,381,417,420,477,480,483,507,510,513,519,539,543,546,571,574,577,602,605,608,633,636,639,659,663,669,671,688,692,695,725,728,732,735,760,763,766,791,795,798,831,835,838,841,861,864,870,874,877,880,894,897,901,904,907,910,924,927],[179,180,26],"h1",{"id":181},"architecture",[183,184,185],"p",{},"OpenSya is the open-source recruitment infrastructure for modern companies.",[183,187,188],{},"Modular, scalable, and fully owned by you.",[183,190,191],{},"To support this vision, OpenSya Core provides a convention-driven fullstack architecture built around runtime orchestration, filesystem conventions and generated typings.",[183,193,194],{},"Instead of manually configuring every controller, service, plugin or route, OpenSya automatically discovers and orchestrates applications based on the project structure.",[196,197,200],"callout",{"color":198,"icon":199},"primary","i-lucide-box",[183,201,202],{},"OpenSya focuses on runtime orchestration rather than boilerplate generation.",[204,205,207],"h2",{"id":206},"fullstack-architecture","Fullstack Architecture",[183,209,210],{},"OpenSya applications are organized around two runtimes:",[212,213,214,218],"ul",{},[215,216,217],"li",{},"A backend runtime powered by NestJS",[215,219,220],{},"A frontend runtime powered by Nuxt",[183,222,223],{},"Both runtimes share the same development philosophy and conventions.",[225,226,231],"pre",{"className":227,"code":228,"filename":26,"language":229,"meta":230,"style":230},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","project\u002F\n├── server\u002F\n│   ├── controllers\u002F\n│   ├── services\u002F\n│   ├── database\u002F\n│   │   ├── models\u002F\n│   │   └── plugins\u002F\n│   ├── guards\u002F\n│   └── locales\u002F\n│\n├── client\u002F\n│   ├── pages\u002F\n│   ├── components\u002F\n│   └── plugins\u002F\n│\n├── .env\n└── opensya.config.ts\n","txt","",[232,233,234,242,248,254,260,266,272,278,284,290,296,302,308,314,320,325,331],"code",{"__ignoreMap":230},[235,236,239],"span",{"class":237,"line":238},"line",1,[235,240,241],{},"project\u002F\n",[235,243,245],{"class":237,"line":244},2,[235,246,247],{},"├── server\u002F\n",[235,249,251],{"class":237,"line":250},3,[235,252,253],{},"│   ├── controllers\u002F\n",[235,255,257],{"class":237,"line":256},4,[235,258,259],{},"│   ├── services\u002F\n",[235,261,263],{"class":237,"line":262},5,[235,264,265],{},"│   ├── database\u002F\n",[235,267,269],{"class":237,"line":268},6,[235,270,271],{},"│   │   ├── models\u002F\n",[235,273,275],{"class":237,"line":274},7,[235,276,277],{},"│   │   └── plugins\u002F\n",[235,279,281],{"class":237,"line":280},8,[235,282,283],{},"│   ├── guards\u002F\n",[235,285,287],{"class":237,"line":286},9,[235,288,289],{},"│   └── locales\u002F\n",[235,291,293],{"class":237,"line":292},10,[235,294,295],{},"│\n",[235,297,299],{"class":237,"line":298},11,[235,300,301],{},"├── client\u002F\n",[235,303,305],{"class":237,"line":304},12,[235,306,307],{},"│   ├── pages\u002F\n",[235,309,311],{"class":237,"line":310},13,[235,312,313],{},"│   ├── components\u002F\n",[235,315,317],{"class":237,"line":316},14,[235,318,319],{},"│   └── plugins\u002F\n",[235,321,323],{"class":237,"line":322},15,[235,324,295],{},[235,326,328],{"class":237,"line":327},16,[235,329,330],{},"├── .env\n",[235,332,334],{"class":237,"line":333},17,[235,335,336],{},"└── opensya.config.ts\n",[183,338,339],{},"The runtime continuously scans and orchestrates these directories automatically.",[204,341,343],{"id":342},"backend-runtime","Backend Runtime",[183,345,346,347,350],{},"The ",[232,348,349],{},"server\u002F"," directory contains the backend runtime powered by NestJS.",[183,352,353],{},"It is responsible for:",[212,355,356,359,362,365,368,371],{},[215,357,358],{},"Controllers and routes",[215,360,361],{},"Business services",[215,363,364],{},"Database models and plugins",[215,366,367],{},"Guards and access control",[215,369,370],{},"Internationalization",[215,372,373],{},"Runtime orchestration",[375,376,73],"h3",{"id":377},"controllers",[183,379,380],{},"Controllers define HTTP routes using filesystem conventions.",[225,382,385],{"className":227,"code":383,"filename":384,"language":229,"meta":230,"style":230},"server\u002Fcontrollers\u002F\n├── users\u002F\n│   ├── index.get.ts\n│   ├── index.post.ts\n│   └── [id]\u002F\n│       └── index.get.ts\n","Example",[232,386,387,392,397,402,407,412],{"__ignoreMap":230},[235,388,389],{"class":237,"line":238},[235,390,391],{},"server\u002Fcontrollers\u002F\n",[235,393,394],{"class":237,"line":244},[235,395,396],{},"├── users\u002F\n",[235,398,399],{"class":237,"line":250},[235,400,401],{},"│   ├── index.get.ts\n",[235,403,404],{"class":237,"line":256},[235,405,406],{},"│   ├── index.post.ts\n",[235,408,409],{"class":237,"line":262},[235,410,411],{},"│   └── [id]\u002F\n",[235,413,414],{"class":237,"line":268},[235,415,416],{},"│       └── index.get.ts\n",[183,418,419],{},"OpenSya automatically converts files into routes.",[421,422,423,437],"table",{},[424,425,426],"thead",{},[427,428,429,434],"tr",{},[430,431,433],"th",{"align":432},"left","File",[430,435,436],{"align":432},"Generated Route",[438,439,440,453,465],"tbody",{},[427,441,442,448],{},[443,444,445],"td",{},[232,446,447],{},"users\u002Findex.get.ts",[443,449,450],{},[232,451,452],{},"GET \u002Fusers",[427,454,455,460],{},[443,456,457],{},[232,458,459],{},"users\u002Findex.post.ts",[443,461,462],{},[232,463,464],{},"POST \u002Fusers",[427,466,467,472],{},[443,468,469],{},[232,470,471],{},"users\u002F[id]\u002Findex.get.ts",[443,473,474],{},[232,475,476],{},"GET \u002Fusers\u002F:id",[375,478,83],{"id":479},"services",[183,481,482],{},"Services contain reusable business logic.",[225,484,486],{"className":227,"code":485,"filename":384,"language":229,"meta":230,"style":230},"server\u002Fservices\u002F\n├── auth\u002F\n├── users\u002F\n└── notifications\u002F\n",[232,487,488,493,498,502],{"__ignoreMap":230},[235,489,490],{"class":237,"line":238},[235,491,492],{},"server\u002Fservices\u002F\n",[235,494,495],{"class":237,"line":244},[235,496,497],{},"├── auth\u002F\n",[235,499,500],{"class":237,"line":250},[235,501,396],{},[235,503,504],{"class":237,"line":256},[235,505,506],{},"└── notifications\u002F\n",[183,508,509],{},"Services are automatically discovered and registered by the runtime.",[375,511,56],{"id":512},"database",[183,514,346,515,518],{},[232,516,517],{},"database\u002F"," directory contains database-related runtime definitions.",[225,520,522],{"className":227,"code":521,"filename":384,"language":229,"meta":230,"style":230},"server\u002Fdatabase\u002F\n├── models\u002F\n└── plugins\u002F\n",[232,523,524,529,534],{"__ignoreMap":230},[235,525,526],{"class":237,"line":238},[235,527,528],{},"server\u002Fdatabase\u002F\n",[235,530,531],{"class":237,"line":244},[235,532,533],{},"├── models\u002F\n",[235,535,536],{"class":237,"line":250},[235,537,538],{},"└── plugins\u002F\n",[540,541,62],"h4",{"id":542},"models",[183,544,545],{},"Models define database entities.",[225,547,549],{"className":227,"code":548,"filename":384,"language":229,"meta":230,"style":230},"server\u002Fdatabase\u002Fmodels\u002F\n├── user.ts\n├── company.ts\n└── application.ts\n",[232,550,551,556,561,566],{"__ignoreMap":230},[235,552,553],{"class":237,"line":238},[235,554,555],{},"server\u002Fdatabase\u002Fmodels\u002F\n",[235,557,558],{"class":237,"line":244},[235,559,560],{},"├── user.ts\n",[235,562,563],{"class":237,"line":250},[235,564,565],{},"├── company.ts\n",[235,567,568],{"class":237,"line":256},[235,569,570],{},"└── application.ts\n",[540,572,67],{"id":573},"plugins",[183,575,576],{},"Plugins provide reusable database behaviors and extensions.",[225,578,580],{"className":227,"code":579,"filename":384,"language":229,"meta":230,"style":230},"server\u002Fdatabase\u002Fplugins\u002F\n├── timestamps.ts\n├── soft-delete.ts\n└── slug.ts\n",[232,581,582,587,592,597],{"__ignoreMap":230},[235,583,584],{"class":237,"line":238},[235,585,586],{},"server\u002Fdatabase\u002Fplugins\u002F\n",[235,588,589],{"class":237,"line":244},[235,590,591],{},"├── timestamps.ts\n",[235,593,594],{"class":237,"line":250},[235,595,596],{},"├── soft-delete.ts\n",[235,598,599],{"class":237,"line":256},[235,600,601],{},"└── slug.ts\n",[375,603,78],{"id":604},"guards",[183,606,607],{},"Guards contain runtime access control logic.",[225,609,611],{"className":227,"code":610,"filename":384,"language":229,"meta":230,"style":230},"server\u002Fguards\u002F\n├── authenticated.ts\n├── admin.ts\n└── permissions.ts\n",[232,612,613,618,623,628],{"__ignoreMap":230},[235,614,615],{"class":237,"line":238},[235,616,617],{},"server\u002Fguards\u002F\n",[235,619,620],{"class":237,"line":244},[235,621,622],{},"├── authenticated.ts\n",[235,624,625],{"class":237,"line":250},[235,626,627],{},"├── admin.ts\n",[235,629,630],{"class":237,"line":256},[235,631,632],{},"└── permissions.ts\n",[375,634,88],{"id":635},"locales",[183,637,638],{},"Locales contain translation resources and internationalization files.",[225,640,642],{"className":227,"code":641,"filename":384,"language":229,"meta":230,"style":230},"server\u002Flocales\u002F\n├── en\u002F\n└── fr\u002F\n",[232,643,644,649,654],{"__ignoreMap":230},[235,645,646],{"class":237,"line":238},[235,647,648],{},"server\u002Flocales\u002F\n",[235,650,651],{"class":237,"line":244},[235,652,653],{},"├── en\u002F\n",[235,655,656],{"class":237,"line":250},[235,657,658],{},"└── fr\u002F\n",[204,660,662],{"id":661},"frontend-runtime","Frontend Runtime",[183,664,346,665,668],{},[232,666,667],{},"client\u002F"," directory contains the frontend runtime powered by Nuxt.",[183,670,353],{},[212,672,673,676,679,682,685],{},[215,674,675],{},"Pages and routing",[215,677,678],{},"UI components",[215,680,681],{},"Frontend plugins",[215,683,684],{},"Runtime integrations",[215,686,687],{},"Shared typings",[375,689,691],{"id":690},"pages","Pages",[183,693,694],{},"Pages define frontend routes and views.",[225,696,698],{"className":227,"code":697,"filename":384,"language":229,"meta":230,"style":230},"client\u002Fpages\u002F\n├── index.vue\n├── login.vue\n└── users\u002F\n    └── [id].vue\n",[232,699,700,705,710,715,720],{"__ignoreMap":230},[235,701,702],{"class":237,"line":238},[235,703,704],{},"client\u002Fpages\u002F\n",[235,706,707],{"class":237,"line":244},[235,708,709],{},"├── index.vue\n",[235,711,712],{"class":237,"line":250},[235,713,714],{},"├── login.vue\n",[235,716,717],{"class":237,"line":256},[235,718,719],{},"└── users\u002F\n",[235,721,722],{"class":237,"line":262},[235,723,724],{},"    └── [id].vue\n",[183,726,727],{},"Nuxt automatically generates routes from the filesystem.",[375,729,731],{"id":730},"components","Components",[183,733,734],{},"Components contain reusable UI elements.",[225,736,738],{"className":227,"code":737,"filename":384,"language":229,"meta":230,"style":230},"client\u002Fcomponents\u002F\n├── ui\u002F\n├── forms\u002F\n└── layouts\u002F\n",[232,739,740,745,750,755],{"__ignoreMap":230},[235,741,742],{"class":237,"line":238},[235,743,744],{},"client\u002Fcomponents\u002F\n",[235,746,747],{"class":237,"line":244},[235,748,749],{},"├── ui\u002F\n",[235,751,752],{"class":237,"line":250},[235,753,754],{},"├── forms\u002F\n",[235,756,757],{"class":237,"line":256},[235,758,759],{},"└── layouts\u002F\n",[375,761,67],{"id":762},"plugins-1",[183,764,765],{},"Plugins extend the frontend runtime.",[225,767,769],{"className":227,"code":768,"filename":384,"language":229,"meta":230,"style":230},"client\u002Fplugins\u002F\n├── api.ts\n├── auth.ts\n└── i18n.ts\n",[232,770,771,776,781,786],{"__ignoreMap":230},[235,772,773],{"class":237,"line":238},[235,774,775],{},"client\u002Fplugins\u002F\n",[235,777,778],{"class":237,"line":244},[235,779,780],{},"├── api.ts\n",[235,782,783],{"class":237,"line":250},[235,784,785],{},"├── auth.ts\n",[235,787,788],{"class":237,"line":256},[235,789,790],{},"└── i18n.ts\n",[204,792,794],{"id":793},"shared-configuration","Shared Configuration",[183,796,797],{},"The root of the project contains shared configuration and environment files.",[421,799,800,809],{},[424,801,802],{},[427,803,804,806],{},[430,805,433],{"align":432},[430,807,808],{"align":432},"Purpose",[438,810,811,821],{},[427,812,813,818],{},[443,814,815],{},[232,816,817],{},".env",[443,819,820],{},"Environment variables shared across runtimes.",[427,822,823,828],{},[443,824,825],{},[232,826,827],{},"opensya.config.ts",[443,829,830],{},"Main OpenSya runtime configuration.",[204,832,834],{"id":833},"runtime-orchestration","Runtime Orchestration",[183,836,837],{},"OpenSya continuously discovers and orchestrates the application runtime from the filesystem structure.",[183,839,840],{},"This includes:",[212,842,843,846,849,852,855,858],{},[215,844,845],{},"Route discovery",[215,847,848],{},"Service registration",[215,850,851],{},"Plugin loading",[215,853,854],{},"Database initialization",[215,856,857],{},"Runtime hooks",[215,859,860],{},"Type generation",[183,862,863],{},"Developers focus on business logic while OpenSya handles runtime wiring automatically.",[196,865,867],{"color":866,"icon":39},"info",[183,868,869],{},"The filesystem acts as the runtime registry for the entire application.",[204,871,873],{"id":872},"generated-typings","Generated Typings",[183,875,876],{},"OpenSya automatically generates typings from runtime definitions and discovered structures.",[183,878,879],{},"This provides:",[212,881,882,885,888,891],{},[215,883,884],{},"Strong type safety",[215,886,887],{},"Better IDE autocompletion",[215,889,890],{},"Shared runtime contracts",[215,892,893],{},"Consistent developer experience",[183,895,896],{},"Generated typings are a core part of the OpenSya architecture.",[204,898,900],{"id":899},"philosophy","Philosophy",[183,902,903],{},"OpenSya is not a boilerplate or starter kit.",[183,905,906],{},"It is a runtime architecture layer designed to standardize how modern recruitment and business platforms are structured, discovered and orchestrated.",[183,908,909],{},"The architecture relies on four core ideas:",[911,912,913,916,918,921],"ol",{},[215,914,915],{},"Filesystem conventions",[215,917,373],{},[215,919,920],{},"Generated typings",[215,922,923],{},"Modular architecture",[183,925,926],{},"Together, these concepts create a scalable and maintainable fullstack developer experience.",[928,929,930],"style",{},"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":230,"searchDepth":238,"depth":244,"links":932},[933,934,941,946,947,948,949],{"id":206,"depth":244,"text":207},{"id":342,"depth":244,"text":343,"children":935},[936,937,938,939,940],{"id":377,"depth":250,"text":73},{"id":479,"depth":250,"text":83},{"id":512,"depth":250,"text":56},{"id":604,"depth":250,"text":78},{"id":635,"depth":250,"text":88},{"id":661,"depth":244,"text":662,"children":942},[943,944,945],{"id":690,"depth":250,"text":691},{"id":730,"depth":250,"text":731},{"id":762,"depth":250,"text":67},{"id":793,"depth":244,"text":794},{"id":833,"depth":244,"text":834},{"id":872,"depth":244,"text":873},{"id":899,"depth":244,"text":900},"Understand how OpenSya organizes and orchestrates modern fullstack recruitment platforms.","md",null,{},{"icon":29},{"title":26,"description":950},"xzAjQZVjByDFcpchWbAbsmhlw8u6yR2VN0JMsxcrMns",[958,960],{"title":15,"path":16,"stem":17,"description":959,"icon":18,"children":-1},"Understand how OpenSya manages data and why MongoDB powers the backend infrastructure.",{"title":31,"path":32,"stem":33,"description":961,"icon":34,"children":-1},"Learn the core concepts behind the OpenSya runtime architecture.",1779143767265]