PageSourceSearch

https://pockethost.io/_app/immutable/nodes/31.D_oBFpXb.js

js pockethost.io collected 2026-10-04 00:16:17 UTC 8,993 bytes, 1 lines download raw bytes

1import{B as e,Ct as t,D as n,E as r,I as i,K as a,L as o,N as s,P as c,R as l,St as u,Z as d,a as f,at as p,c as m,et as h,g,gt as _,it as v,j as y,mt as b,ot as x,pt as S,st as C,u as ee,v as w,vt as te,w as T,x as E,yt as ne,z as D}from"../chunks/CzsObDY8.js";import"../chunks/xihTtKlq.js";import"../chunks/C5qy-xbg.js";import{l as re}from"../chunks/Du7Y30mz.js";import{i as O}from"../chunks/Bh8oZHKH.js";import{n as ie,t as ae}from"../chunks/D7aDtkCV.js";function oe(e,t){let n=()=>b(O,`$isAuthStateInitialized`,r),[r,a]=S();var o=D(),s=x(o),c=e=>{var n=D();y(x(n),t,`default`,{},null),l(e,n)},u=e=>{var n=D();y(x(n),t,`loading`,{},null),l(e,n)};i(s,e=>{n()?e(c):e(u,-1)}),l(e,o),a()}var k=e(`<wa-icon></wa-icon>`,2),A=e(`<div class="relative inline-flex group"><div class="absolute transition-all duration-1000 opacity-70 -inset-px rounded-xl group-hover:opacity-100 group-hover:-inset-1 group-hover:duration-200 animate-tilt"></div> <a role="button"> <!></a></div>`);function j(e,n){let r=m(n,`className`,8,``),a=m(n,`text`,8),s=m(n,`url`,8),c=m(n,`icon`,8,``),u=m(n,`target`,8,``);var d=A(),f=C(p(d),2),_=p(f),v=C(_),y=e=>{var t=k();h(()=>w(t,`name`,c())),l(e,t)};i(v,e=>{c()&&e(y)}),t(f),t(d),h(()=>{g(f,`href`,s()),E(f,1,`relative ${r()} inline-flex gap-4 items-center bg-primary justify-center px-8 py-3 text-md font-medium hover:bg-light !text-white transition-all duration-200 font-pj rounded-xl focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-900`),g(f,`target`,u()),o(_,`${a()??``} `)}),l(e,d)}function M(e){return Object.prototype.toString.call(e)===`[object Date]`}function N(e){return e}function P(e){let t=e-1;return t*t*t+1}function F(e,t){if(e===t||e!==e)return()=>e;let n=typeof e;if(n!==typeof t||Array.isArray(e)!==Array.isArray(t))throw Error(`Cannot interpolate values of different type`);if(Array.isArray(e)){let n=t.map((t,n)=>F(e[n],t));return e=>n.map(t=>t(e))}if(n===`object`){if(!e||!t)throw Error(`Object cannot be null`);if(M(e)&&M(t)){let n=e.getTime(),r=t.getTime()-n;return e=>new Date(n+e*r)}let n=Object.keys(t),r={};return n.forEach(n=>{r[n]=F(e[n],t[n])}),e=>{let t={};return n.forEach(n=>{t[n]=r[n](e)}),t}}if(n===`number`){let n=t-e;return t=>e+t*n}return()=>t}function I(e,t={}){let i=_(e),a,o=e;function s(s,c){if(o=s,e==null)return i.set(e=s),Promise.resolve();let l=a,u=!1,{delay:d=0,duration:f=400,easing:p=N,interpolate:m=F}={...t,...c};if(f===0)return l&&=(l.abort(),null),i.set(e=o),Promise.resolve();let h=n.now()+d,g;return a=r(t=>{if(t<h)return!0;u||=(g=m(e,s),typeof f==`function`&&(f=f(e,s)),!0),l&&=(l.abort(),null);let n=t-h;return n>f?(i.set(e=s),!1):(i.set(e=g(p(n/f))),!0)}),a.promise}return{set:s,update:(t,n)=>s(t(o,e),n),subscribe:i.subscribe}}var se=e(`<!> <!>`,1),ce=e(`<div slot="loading"><!></div>`),le=e(`<div class="group h-full"><div class="h-full bg-white/5 border border-white/10 rounded-xl p-8 hover:bg-white/10 hover:border-white/20 transition-all duration-500"><div class="flex items-center gap-4 mb-4"><div class="w-10 h-10 bg-white/10 rounded-lg flex items-center justify-center group-hover:bg-primary/50 transition-all duration-500"><wa-icon></wa-icon></div> <h3 class="text-lg font-medium text-white"> </h3></div> <p class="text-white/60 leading-relaxed font-light text-sm"> </p></div></div>`,2),ue=e(`<div class="relative min-h-screen px-8 md:px-16 z-50"><div class="relative w-full text-white p-8 lg:px-16 flex flex-col h-[85vh] md:h-[70vh] items-center justify-center"><div class="flex flex-col items-center z-10 relative"><h1 class="text-5xl max-w-4xl md:text-6xl text-center fade-up">PocketBase Hosting, <span class="font-bold">Simplified</span></h1> <p class="text-xl w-2/3 md:w-1/2 text-center font-light mb-10 mt-4 text-white/60 fade-up animation-delay-250">No server configs. No downtime. Just build.</p> <!></div></div> <section class="lg:px-8"><div class="max-w-6xl mx-auto"><div class="bg-[#111111]/50 border border-white/20 rounded-2xl p-12 backdrop-blur-xl fade-in text-white"><div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-8 text-center"><div><div class="text-3xl md:text-4xl font-light mb-2 text-white">30s</div> <div class="text-white/60 text-sm font-light">
1Setup Time</div></div> <div><div class="text-3xl md:text-4xl font-light mb-2 text-white"> </div> <div class="text-white/60 text-sm font-light">Uptime</div></div> <div><div class="text-3xl md:text-4xl font-light mb-2 text-white"> </div> <div class="text-white/60 text-sm font-light">Developers</div></div> <div><div class="text-3xl md:text-4xl font-light mb-2 text-white"> </div> <div class="text-white/60 text-sm font-light">Instances</div></div> <div><div class="text-3xl md:text-4xl font-light mb-2 flex items-center justify-center gap-2 text-white"> <wa-icon></wa-icon></div> <div class="text-white/60 text-sm font-light">On Github</div></div></div></div></div></section> <section class="py-24 lg:px-8 text-white"><div class="text-center mb-10 md:mb-20"><h2 class="text-4xl md:text-5xl font-light mb-6 tracking-tight text-white">Everything you need to <span class="font-medium">build</span></h2></div> <div class="max-w-6xl mx-auto grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 items-stretch"></div></section></div>`,2);function L(e,n){ne(n,!1);let r=()=>b(T,`$uptime`,g),i=()=>b(D,`$developers`,g),d=()=>b(O,`$instances`,g),m=()=>b(y,`$stars`,g),[g,_]=S(),v=[{icon:`database`,title:`Database`,description:`Your PocketHost instance is powered by its own internal SQLite instance. SQLite is more performant than mySQL or Postgres and is perfect for powering your next app.`},{icon:`lock`,title:`Auth`,description:`Email and oAuth authentication options work out of the box for your app users.`},{icon:`cloud`,title:`Cloud Functions`,description:`Run your own custom code on PocketHost with our cloud functions. Use the JS Client to call your functions from your frontend.`},{icon:`link`,title:`Custom Domain`,description:`Point your own domain at your PocketHost instance. SSL provisioning and verification are handled automatically.`},{icon:`download`,title:`Self-host`,description:`When you're ready to take your project in-house, download your full instance via SFTP and run PocketBase on your own hardware.`},{icon:`bolt`,title:`Zero Config`,description:`With PocketHost, batteries are included. You get a database, SSL, authentication, cloud functions, SFTP access, and high concurrency all in one stop.`}],y=I(0,{duration:1500,easing:P}),T=I(99.964,{duration:1500,easing:P}),D=I(1e4,{duration:1500,easing:P}),O=I(5e3,{duration:1500,easing:P}),k=new Intl.NumberFormat,A=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:k.format(e),M=async()=>{let e=await fetch(`https://api.github.com/repos/pockethost/pockethost`);if(!e.ok)throw Error(`Failed to fetch GitHub stars`);let t=await e.json();typeof t.stargazers_count==`number`&&Number.isFinite(t.stargazers_count)&&y.set(t.stargazers_count)},N=async()=>{let e=await fetch(`https://status.pockethost.io/index.json`);if(!e.ok)throw Error(`Failed to fetch status page`);let t=((await e.json()).included??[]).filter(e=>e.type===`status_page_resource`).map(e=>e.attributes?.availability).filter(e=>typeof e==`number`&&e>0);t.length!==0&&T.set(Math.min(...t)*100)},F=async()=>{let e=await fetch(`${re}/stats.json`);if(!e.ok)throw Error(`Failed to fetch platform stats`);let t=await e.json();typeof t.developers==`number`&&Number.isFinite(t.developers)&&D.set(t.developers),typeof t.instances==`number`&&Number.isFinite(t.instances)&&O.set(t.instances)};f(async()=>{await Promise.allSettled([M(),N(),F()])}),ee();var L=ue(),R=p(L),z=p(R);oe(C(p(z),4),{children:(e,t)=>{var n=se(),r=x(n);ie(r,{children:(e,t)=>{j(e,{text:`Dashboard`,url:`/dashboard`,icon:`arrow-right`,className:`opacity-0 fade-up animation-delay-500`})},$$slots:{default:!0}}),ae(C(r,2),{children:(e,t)=>{j(e,{text:`Get Started`,url:`/get-started`,icon:`arrow-right`,className:`wiggle`})},$$slots:{default:!0}}),l(e,n)},$$slots:{default:!0,loading:(e,n)=>{var r=ce();j(p(r),{text:`Get Started`,url:`/get-started`,className:`wiggle opacity-0 fade-up animation-delay-500`,icon:`arrow-right`}),t(r),l(e,r)}}}),t(z),t(R);var B=C(R,2),V=p(B),H=p(V),U=p(H),W=C(p(U),2),G=p(W),de=p(G);t(G),u(2),t(W);var K=C(W,2),q=p(K),fe=p(q,!0);t(q),u(2),t(K);var J=C(K,2),Y=p(J),pe=p(Y,!0);t(Y),u(2),t(J);var X=C(J,2),Z=p(X),Q=p(Z),$=C(Q);w($,`name`,`star`),E($,1,`w-5 h-5 text-yellow-400`),t(Z),u(2),t(X),t(U),t(H),t(V),t(B);var me=C(B,2),he=C(p(me),2);s(he,5,()=>v,c,(e,n)=>{var r=le(),i=p(r),s=p(i),c=p(s),u=p(c);h(()=>w(u,`name`,a(n).icon)),E(u,1,`w-5 h-5 text-white`),t(c);var d=C(c,2),f=p(d,!0);t(d),t(s);var m=C(s,2),g=p(m,!0);t(m),t(i),t(r),h(()=>{o(f,a(n).title),o(g,a(n).description)}),l(e,r)}),t(he),t(me),t(L),h((e,t,n,r)=>{o(de,`${e??``}%`),o(fe,t),o(pe,n),o(Q,`${r??``} `)},[()=>r().toFixed(3),()=>A(i()),()=>A(d()),()=>k.format(Number(m().toFixed(0)))]),l(e,L),te(),_()}function R(e){T(`r5wgi6`,e=>{d(()=>{v.title=`Home - PocketHost`})}),L(e,{})}export{R as component};

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.