1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,72520,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",0,t],72520)},3116,e=>{"use strict";let t=(0,e.i(75254).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",0,t],3116)},39659,e=>{e.v(t=>Promise.all(["static/immutable/chunks/44e1ruj9yipy0.js"].map(t=>e.l(t))).then(()=>t(83260)))},83745,e=>{e.v(t=>Promise.all(["static/immutable/chunks/1gembez978uew.js","static/immutable/chunks/3s573xlkimfiq.js"].map(t=>e.l(t))).then(()=>t(70064)))},9305,e=>{"use strict";var t=e.i(43476),s=e.i(46932),n=e.i(71645),r=e.i(75157);let i={up:{x:0,y:30},left:{x:-30,y:0},right:{x:30,y:0}};e.s(["AnimatedSection",0,function({children:e,className:a,delay:o=0,duration:l=.6,direction:c="up"}){let{ref:u,isInView:b}=function({threshold:e=.1,rootMargin:t="0px",triggerOnce:s=!0}={}){let r=(0,n.useRef)(null),[i,a]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let n=r.current;if(!n)return;let i=new IntersectionObserver(([e])=>{e.isIntersecting?(a(!0),s&&i.unobserve(n)):s||a(!1)},{threshold:e,rootMargin:t});return i.observe(n),()=>i.disconnect()},[e,t,s]),{ref:r,isInView:i}}({threshold:.1,triggerOnce:!0}),d=i[c];return(0,t.jsx)(s.motion.div,{ref:u,initial:{opacity:0,x:d.x,y:d.y},animate:b?{opacity:1,x:0,y:0}:{opacity:0,x:d.x,y:d.y},transition:{duration:l,delay:o,ease:"easeOut"},className:(0,r.cn)(a),children:e})}],9305)},25138,e=>{"use strict";var t=e.i(43476),s=e.i(61745);let n=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var r=e.i(44705),i=e.i(75157);e.s(["Breadcrumbs",0,function({items:e}){let a=(0,s.useLocale)(),o="de"===a?"":`/${a}`,l={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.map((e,t)=>({"@type":"ListItem",position:t+1,name:e.label,...e.href?{item:`https://tommsel.com${o}${"/"===e.href?"":e.href}`}:{}}))};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:(0,i.serializeJsonLd)(l)}}),(0,t.jsx)("nav",{"aria-label":"Breadcrumb",className:"flex items-center gap-1 text-xs text-[var(--color-muted)]",children:e.map((e,s)=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[s>0&&(0,t.jsx)(n,{className:"h-3 w-3 shrink-0","aria-hidden":"true"}),e.href?(0,t.jsx)(r.Link,{href:e.href,className:(0,i.cn)("hover:text-[var(--color-text)] transition-colors","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--color-accent)] rounded"),children:e.label}):(0,t.jsx)("span",{className:"text-[var(--color-text)] font-medium truncate max-w-[200px]",children:e.label})]},s))})]})}],25138)},427,e=>{"use strict";var t=e.i(43476),s=e.i(48148),n=e.i(75157);e.s(["StatusDot",0,function({status:e,className:r}){let i=(0,s.useTranslations)("status")(e),a="live"===e,o="concept"===e||"research"===e;return(0,t.jsxs)("span",{className:(0,n.cn)("inline-flex items-center gap-1.5",r),role:"status","aria-label":`Status: ${i}`,children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2","aria-hidden":"true",children:[a&&(0,t.jsx)("span",{className:"absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75 animate-[ping_3s_cubic-bezier(0,0,0.2,1)_infinite]"}),(0,t.jsx)("span",{className:(0,n.cn)("relative inline-flex h-2 w-2 rounded-full",a&&"bg-emerald-500","soon"===e&&"bg-amber-500","in-development"===e&&"bg-sky-500",o&&"bg-violet-500")})]}),(0,t.jsx)("span",{className:(0,n.cn)("text-xs font-medium",a&&"text-emerald-600 dark:text-emerald-400","soon"===e&&"text-amber-600 dark:text-amber-400","in-development"===e&&"text-sky-600 dark:text-sky-400",o&&"text-violet-600 dark:text-violet-400"),children:i})]})}])},35497,e=>{"use strict";let t=new Set(["soon","in-development","concept","research"]),s={"browser-extension":{de:"Browser Extension",en:"Browser extension"},"server-assisted":{de:"Server-assisted",en:"Server-assisted"},"local-first":{de:"Local-first",en:"Local-first"},"browser-first":{de:"Browser-first",en:"Browser-first"},"web-tool":{de:"Web Tool",en:"Web tool"}},n={required:{de:"Account nötig",en:"Account required"},"not-required":{de:"Kein Account",en:"No account"},unknown:{de:"Account nicht angegeben",en:"Account not specified"}},r=RegExp("\\b(?:supabase|firebase|neon|postgresql|postgres|server-assisted|serverunterstutzt|serverunterstützt|serverseitige[nrs]?\\s+verarbeitung|server-side\\s+processing|backend[\\s-]?service|backend[\\s-]?api|api\\s+server|server\\s+api|database\\s+storage|cloud\\s+storage|cloud-speicherung|uploaded?\\s+to\\s+(?:a|the|our)?\\s*server|upload\\s+auf\\s+den\\s+server|server\\s+processing|authentication\\s+backend|realtime\\s+backend|remote\\s+database|remote-datenbank|vps[\\s-]?anal
1ysis[\\s-]?service|vps-analyse-service|fastapi\\s+backend|datenbank\\s+auf\\s+dem\\s+server)\\b","g"),i="kein|keine|keinen|keinem|keiner|keines|nicht|nichts|ohne|no|not|nothing|without|never|niemals",a=RegExp(`\\b(?:${i})\\b[^.!?]{0,24}$`),o=RegExp(`^[^.!]{0,26}\\b(?:${i})\\b`),l="(?:eigen(?:e[nrs]?)?\\s+)?",c="(?:own\\s+)?",u="an?\\s+",b=[`kein(?:e[nrs]?)?\\s+${l}backend(?:[\\s-]server)?`,`ohne\\s+${l}backend(?:[\\s-]server)?`,`kein(?:e[nrs]?)?\\s+${l}server`,`ohne\\s+${l}server`,"keine\\s+datenbank","ohne\\s+datenbank","keine\\s+cloud","ohne\\s+cloud","keine\\s+server-?übertragung","keine\\s+datenübertragung\\s+an\\s+(?:den\\s+)?server",`no\\s+${c}backend(?:\\s+server)?`,`without\\s+${u}backend(?:\\s+server)?`,`no\\s+${c}server`,`without\\s+${u}server`,"no\\s+database",`without\\s+${u}database`,"no\\s+cloud","without\\s+cloud(?:\\s+storage)?","no\\s+server\\s+upload","no\\s+server-side\\s+processing"],d=RegExp(`\\b(?:${b.join("|")})\\b`),m=/\blocal-first\b|\blokal\b|\blokale\b|\blokalen\b|\blocal\b|\blocally on device\b|\blocal processing\b|\blokale verarbeitung\b|\bausschlieÃlich lokal\b|\bentirely in the browser\b|\bvollständig im browser\b|\bbrowser-only\b|\bclient-side\b|\bclientseitig\b|\bno uploads?\b|\bkeine uploads?\b/;function h(e,t){let s=e.sections?.map(e=>`${e.title[t]} ${e.content[t]}`).join(" ")??"",n=e.features?.map(e=>`${e.title[t]} ${e.desc[t]}`).join(" ")??"",r=e.faq?.map(e=>`${e.q[t]} ${e.a[t]}`).join(" ")??"";return`${e.description[t]} ${e.longDescription?.[t]??""} ${s} ${n} ${r}`.toLowerCase()}function p(e,t){let s=h(e,t);return/\bno accounts?\b|\bno account\b|\bkein konto\b|\bkeine accounts?\b|\bohne konto\b|\bkeine registrierung\b|\bno registration\b/.test(s)?"not-required":/\baccount required\b|\baccount is required\b|\bkonto nötig\b|\bkonto notwendig\b|\bkonto erforderlich\b|\baccount\b|\bsupabase auth\b|\blogin\b|\bauthentication\b|\bauthentifizierung\b/.test(s)?"required":"unknown"}function f(e){if("live"===e.status)return e.url||e.chromeUrl||e.firefoxUrl||e.appStoreUrl}function g(e){return!!f(e)}e.s(["getAccountRequirement",0,p,"getAccountRequirementLabel",0,function(e,t){return n[p(e,t)][t]},"getPrimaryExternalTarget",0,f,"getProcessingModelLabel",0,function(e,t){return s[function(e,t){if("extension"===e.category)return"browser-extension";let s=h(e,t);return!function(e,t){let s,n=new RegExp(t.source,t.flags.includes("g")?t.flags:`${t.flags}g`);for(;null!==(s=n.exec(e));){let t=e.slice(Math.max(0,s.index-30),s.index),r=e.slice(n.lastIndex,n.lastIndex+30);if(!a.test(t)&&!o.test(r))return!0;s.index===n.lastIndex&&n.lastIndex++}return!1}(s,r)?m.test(s)||d.test(s)?"local-first":/\bbrowser\b|\bbrowserbasiert\b|\bbrowser-based\b/.test(s)?"browser-first":"web-tool":"server-assisted"}(e,t)][t]},"hasExternalTarget",0,function(e){return g(e)},"hasLiveExternalTarget",0,g,"isNonLiveProject",0,function(e){return t.has(e.status)}])}]);
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.