1import{c as a,o as s,ag as o,j as e,k as n,a as r}from"./chunks/framework.Ds6Eueu6.js";const i=`<svg xmlns="http://www.w3.org/2000/svg" height="160" viewBox="0 0 439 273" font-family="sans-serif" font-size="32" text-anchor="middle" stroke-width="3"> 2 <g fill="#f37943" stroke="#7a3c21"> 3 <rect width="100" height="100" x="60" y="20" rx="10"/> 4 <path d="M370 23h1l5 5 1 9v78c0 5-22 10-50 10s-50-5-50-10V37l1-8v-1l5-5 9-1h70z"/> 5 <ellipse cx="327" cy="27.5" rx="50" ry="10.5"/> 6 </g> 7 <rect width="374.5" height="62.5" x="34" y="188.5" fill="#87c1f7" stroke="#43617c" rx="10"/> 8 <g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round"> 9 <path d="M188 73h61m-62 0 12-12m-12 12 12 12m51-12-12-12m1 24 11-12"/> 10 <path d="M109 175v-38m0 39-12-12m12 12 12-12m-12-29-12 12m24 0-12-12"/> 11 </g> 12 <text x="110" y="81">App</text> 13 <text x="326" y="86">Data</text> 14 <text x="221.3" y="230.5">Browser</text> 15 <style> 16 .dark g[stroke="#000"] { stroke: #fff } 17 </style> 18</svg>`,l=`<svg xmlns="http://www.w3.org/2000/svg" height="160" viewBox="0 0 439 273" font-family="sans-serif" font-size="32" text-anchor="middle" stroke-width="3"> 19 <g fill="#f37943" stroke="#7a3c21"> 20 <rect width="100" height="100" x="60" y="20" rx="10"/> 21 <path d="M370 23h1l5 5 1 9v78c0 5-22 10-50 10s-50-5-50-10V37l1-8v-1l5-5 9-1h70z"/> 22 <ellipse cx="327" cy="27.5" rx="50" ry="10.5"/> 23 </g> 24 <rect width="374.5" height="62.5" x="34" y="188.5" fill="#87c1f7" stroke="#43617c" rx="10"/> 25 <g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round"> 26 <path d="M109 175v-38m0 39-12-12m12 12 12-12"/> 27 <path d="M325 175v-38m0 39-12-12m12 12 12-12m-12-29-12 12m24 0-12-12"/> 28 </g> 29 <text x="110" y="81">App</text> 30 <text x="326" y="86">Data</text> 31 <text x="221.3" y="230.5">Browser</text> 32 <style> 33 .dark g[stroke="#000"] { stroke: #fff } 34 </style> 35</svg>`,h=`<svg xmlns="http://www.w3.org/2000/svg" height="160" viewBox="0 0 439 273" font-family="sans-serif" font-size="32" text-anchor="middle" stroke-width="3"> 36 <rect width="100" height="100" x="60" y="20" rx="10" fill="#f37943" stroke="#7a3c21"/> 37 <g fill="#87c1f7" stroke="#43617c"> 38 <path d="M370 23h1l5 5 1 9v78c0 5-22 10-50 10s-50-5-50-10V37l1-8v-1l5-5 9-1h70z"/> 39 <ellipse cx="327" cy="27.5" rx="50" ry="10.5"/> 40 <rect width="374.5" height="62.5" x="34" y="188.5" rx="10"/> 41 </g> 42 <g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round"> 43 <path d="M109 175v-38m0 39-12-12m12 12 12-12"/> 44 <path d="M325 175v-38m0 39-12-12m12 12 12-12m-12-29-12 12m24 0-12-12"/> 45 </g> 46 <text x="110" y="81">App</text> 47 <text x="326" y="86">Data</text> 48 <text x="221.3" y="230.5">Browser</text> 49 <style> 50 .dark g[stroke="#000"] { stroke: #fff } 51 </style> 52</svg>`,d=["innerHTML"],p=["innerHTML"],c=["innerHTML"],m=JSON.parse('{"title":"Unhosted Architecture","description":"","frontmatter":{},"headers":[],"relativePath":"unhosted.md","filePath":"unhosted.md"}'),x={name:"unhosted.md"},k=Object.assign(x,{setup(f){return(g,t)=>(s(),a("div",null,[t[0]||(t[0]=o("",4)),e("div",{"aria-hidden":"true",innerHTML:n(i)},null,8,d),t[1]||(t[1]=e("h2",{id:"no-backend-web-apps",tabindex:"-1"},[e("a",{href:"https://nobackend.org",target:"_blank",rel:"noreferrer"},"No-Backend"),r(" Web Apps "),e("a",{class:"header-anchor",href:"#no-backend-web-apps","aria-label":'Permalink to "[No-Backend](https://nobackend.org) Web Apps"'},"â")],-1)),t[2]||(t[2]=e("p",null,"In 100% client-side apps that use CouchDB, Hoodie, Firebase, Parse, Kinto, etcâ¦, the developer provides the app and data, while user controls the device.",-1)),e("div",{"aria-hidden":"true",innerHTML:n(l)},null,8,p),t[3]||(t[3]=e("h2",{id:"unhosted-web-apps",tabindex:"-1"},[e("a",{href:"https://unhosted.org",target:"_blank",rel:"noreferrer"},"Unhosted"),r(" Web Apps "),e("a",{class:"header-anchor",href:"#unhosted-web-apps","aria-label":'Permalink to "[Unhosted](https://unhosted.org) Web Apps"'},"â")],-1)),t[4]||(t[4]=e("p",null,"In 100% client-side apps that use remoteStorage, Google Drive, Dropbox, etcâ¦, the developer provides only the app, while the user controls the device and data.",-1)),e("div",{"aria-hidden":"true",innerHTML:n(h)},null,8,c)]))}});
52export{m as __pageData,k as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.