(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{79301:function(e,t,s){Promise.resolve().then(s.bind(s,73019))},73019:function(e,t,s){"use strict";s.d(t,{HomePage:function(){return ek}});var i=s(25721),r=s(34361),a=s(61344),n=s(79494),o=s(76617),l=s(43148),c=s(65400),x=s(52879),h=s(60006),d=s(78726),u=s(94236),m=s(38761),g=s(26950),p=s(67550);let j=[{text:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.x,{mb:4,children:"This is the new gold standard for frontend and backend workflow."}),(0,i.jsxs)(l.x,{children:["Preview your ",(0,i.jsx)("strong",{children:"@vercel"})," frontend alongside your ",(0,i.jsx)("strong",{children:"@xata"})," base, with schema changes and automatic (and safe!) data staging."]})]}),link:"https://twitter.com/rauchg/status/1651614599874252802",user:{name:"Guillermo Rauch",title:"Founder & CEO, Vercel",screenName:"rauchg",img:"/images/home/twitter/rauchg.jpg"}},{text:(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)(l.x,{children:["I've been learning about ",(0,i.jsx)("strong",{children:"https://github.com/xataio/pgroll"}),". The schema migration is awesome (keep old and new in production to help migrate old code). Zero downtime migrations is also amazing. Nice work ",(0,i.jsx)("strong",{children:"@xata"}),"."]})}),link:"https://twitter.com/snowboardvstree/status/1748462812110701050",user:{name:"Tony Meehan",title:"CTO @ Stealth",screenName:"snowboardvstree",img:"/images/home/twitter/tony.jpg"}},{text:"The Xata team is doing great work on the end to end experience for data as an API and tires integration takes the DX of Netlify, GitHub and Xata to another level.",link:"https://twitter.com/biilmann/status/1651689102667055104",user:{name:"Matt Biilmann",title:"CEO, Netlify",screenName:"biilmann",img:"/images/home/twitter/biilmann.jpg"}},{text:(0,i.jsxs)(l.x,{children:["One of my favorite features of ",(0,i.jsx)("strong",{children:"@xata"})," is the built-in “fuzzy search” functionality. Most database solutions let you search for an exact match. Users these days, though, often expect a more forgiving search, one that will match “olso” to “oslo” and “alez” to “alex”."]}),link:"https://twitter.com/raae/status/1583166510436323328",user:{name:"Benedicte (Queen) Raae \uD83D\uDC51",screenName:"raae",img:"/images/home/twitter/raae.jpg"}},{text:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.x,{mb:4,children:"There is almost no better feeling then finding a way to reduce your function code by 60%!?"}),(0,i.jsx)(l.x,{mb:4,children:"This is a search query with typo forgiveness, column returning weighting and fallback paginated return with conditional filtering + caching in 13 lines \uD83E\uDD2F."}),(0,i.jsxs)(l.x,{children:[(0,i.jsx)("strong",{children:"@xata"}),"'s SDK is so powerful!"]})]}),link:"https://twitter.com/KyTechInc/status/1740752262962745731",user:{name:"Kyle @ KyTech",title:"Founder KyTech",screenName:"KyTechInc",img:"/images/home/twitter/kyle.png"}},{text:"Xata is a critical step forward in the evolution of Cloud databases services; it is a serverless database that integrates analytics and free-text search. As a result, Xata makes a wide range of applications really easy to build.",user:{name:"Neha Narkhede",screenName:"nehanarkhede",title:"Co-Founder, Confluent",img:"/images/home/twitter/nehanarkhede.jpg"}},{text:"xata is mind blowing \uD83E\uDD2F",link:"https://twitter.com/zenorocha/status/1555085028517769218",user:{name:"Zeno Rocha",title:"Founder & CEO at resend.com",screenName:"zenorocha",img:"/images/home/twitter/zenorocha.jpg"}},{text:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(l.x,{mb:4,children:["Checking out ",(0,i.jsx)("strong",{children:"@xata"})," as a DB to store + query vector embeddings . Big fan so far, great typescript integration."]}),(0,i.jsx)(l.x,{children:"Ran 30,000 updates on the free plan in ~10 mins and instead of rejecting with a rate limit, they just delay the response a ~1s. No extra code needed on my end"})]}),link:"https://twitter.com/wesbos/status/1658487741229981703",user:{name:"Wes Bos",title:"Full Stack JS Dev",screenName:"wesbos",img:"/images/home/twitter/wes.jpg"}},{text:(0,i.jsxs)(i.Fragment,{children:["Did a prototype last night for ",(0,i.jsx)("strong",{children:"https://xata.io/chatgpt"})," . Amazing! ",(0,i.jsx)("strong",{children:"@xata"})," helps you short cut some of the ChatGPT stuff (pgvector, token, PSQL setup, etc.)...and works really really well"]}),link:"https://twitter.com/rblalock/status/1642158405086224385",user:{name:"Rick Blalock",screenName:"rblalock",img:"/images/home/twitter/rblalock.jpg"}},{text:(0,i.jsxs)(l.x,{children:["I'm seriously impressed by ",(0,i.jsx)("strong",{children:"@xata"}),"'s serverless database capabilities! The CQRS architecture needed for large projects is so time consuming, but ",(0,i.jsx)("strong",{children:"@xata"})," has made it so much more manageable. It's a total game-changer!"]}),link:"https://twitter.com/satish1v/status/1657011613717925888",user:{name:"satish1v",screenName:"satish1v",img:"/images/home/twitter/satish.jpg"}},{text:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.x,{mb:4,children:"Just earned my “took down production on holiday” badge."}),(0,i.jsxs)(l.x,{children:["Huge thanks to ",(0,i.jsx)("strong",{children:"@xata"})," for getting me back online within 1.5 hours of the outage on a holiday... A+ customer service."]})]}),link:"https://twitter.com/BenLebich/status/1739398509181440171",user:{name:"Ben Lebich",screenName:"BenLebich",img:"/images/home/twitter/ben.jpg"}},{text:"Not only for ambitious projects! A generous always-free tier is also extremely convenient for people that linger in the margins, in developing societies, away from high-tech hubs of the world. Thus, is also inclusivity. Kudos to you!",link:"https://twitter.com/PentiumBug/status/1587848251188940800",user:{name:"Carlos Alberto Carnero Delgado",screenName:"PentiumBug",img:"/images/home/twitter/PentiumBug.jpg"}}],f=e=>{let{tweets:t,show:s=!0}=e;return(0,i.jsx)(r.k,{flexDir:"column",gap:10,display:{base:s?"flex":"none",lg:"flex"},children:t.map(e=>(0,i.jsxs)(m.f,{className:"card",position:"relative",display:"block",height:"100%",borderRadius:"md",overflow:"hidden",textDecoration:"none",border:"1px solid",borderColor:"stroke",bg:"contrastEmpty",boxShadow:"sm",children:[(0,i.jsxs)(r.k,{padding:"4",gap:"4",className:"card__header",position:"relative",children:[(0,i.jsx)(g.lK,{}),(0,i.jsx)(n.xu,{className:"card__thumb",width:"40px",height:"40px",borderRadius:"50%",overflow:"hidden",children:(0,i.jsx)(p.default,{src:e.user.img,alt:e.user.name,width:40,height:40})}),(0,i.jsxs)(n.xu,{children:[(0,i.jsxs)(l.x,{fontSize:"sm",fontWeight:"bold",children:[e.user.name," "]}),(0,i.jsxs)(l.x,{color:"textPrimary",fontSize:"sm",children:["@",e.user.screenName]}),e.user.title&&(0,i.jsx)(l.x,{fontSize:"xs",color:"textSubtle",children:e.user.title})]})]}),(0,i.jsx)(n.xu,{className:"card__footer",position:"relative",display:"flex",alignItems:"center",gap:"4",padding:"4",backgroundColor:"bg",borderTop:"1px solid",borderTopColor:"stroke",children:(0,i.jsx)(m.A,{fontSize:"sm",href:e.link,children:e.text})})]},e.user.name))})},b=()=>{let[e,t]=(0,d.useState)(!1);return(0,i.jsx)(n.xu,{id:"community",position:"relative",children:(0,i.jsxs)(n.xu,{pos:"relative",...u.l,children:[(0,i.jsxs)(n.xu,{textAlign:"center",fontSize:"sm",maxW:"820px",margin:"0 auto",children:[(0,i.jsx)(o.X,{as:"h2",size:"2xl",color:"titleAccent",mb:8,children:"Join the Community"}),(0,i.jsx)(l.x,{color:"textSubtle",fontSize:"lg",mb:8,children:"Join tens of thousands of developers who are working with Xata to build better products."}),(0,i.jsxs)(r.k,{alignItems:"center",gap:4,mx:"auto",justifyContent:{base:"start",lg:"center"},mb:12,children:[(0,i.jsx)(x.z,{as:"a",href:"https://xata.io/discord",leftIcon:(0,i.jsx)(h.D7,{boxSize:4}),variant:"ghost",children:"Discord"}),(0,i.jsx)(x.z,{as:"a",href:"https://twitter.com/xata",leftIcon:(0,i.jsx)(h.b0,{boxSize:4}),variant:"ghost",children:"@xata"}),(0,i.jsx)(x.z,{as:"a",href:"https://github.com/xataio/client-ts",leftIcon:(0,i.jsx)(h.fy,{boxSize:4}),variant:"ghost",children:"GitHub"})]})]}),(0,i.jsxs)(c.M,{gap:10,columns:{base:1,lg:3},alignItems:"center",justifyContent:"center",w:"full",children:[(0,i.jsx)(f,{tweets:j.slice(0,4)}),(0,i.jsx)(f,{tweets:j.slice(4,8),show:e}),(0,i.jsx)(f,{tweets:j.slice(8,12),show:e}),(0,i.jsx)(n.xu,{display:{base:"block",md:"none"},children:(0,i.jsx)(x.z,{onClick:()=>t(!e),children:e?"Show less":"Show more"})})]})]})})};var y=s(3969),w=s(87822),v=s(28045),k=s(42366),S=s(82224),z=s(84727),C=s(89430),D=s(10187);let I=()=>(0,i.jsxs)(r.k,{direction:{base:"column",md:"row"},position:"relative",textAlign:"left",gap:10,children:[(0,i.jsxs)(g.Zb,{p:10,pattern:"right",children:[(0,i.jsx)(g.yO,{icon:(0,i.jsx)(z.mi7,{}),size:"md",mb:4}),(0,i.jsx)(o.X,{as:"h2",fontSize:"2xl",mb:4,children:"Tailored for multi-tenancy"}),(0,i.jsx)(l.x,{textShadow:"sm",pb:8,children:"Effortlessly manage and segment your data with a branch for each one of your customers."}),(0,i.jsxs)(S.aV,{spacing:3,children:[(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"No row level security required"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"Automatic backups"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"Common or independent schemas"]})]})]}),(0,i.jsxs)(g.Zb,{p:10,pattern:"bottomRight",children:[(0,i.jsx)(g.yO,{icon:(0,i.jsx)(D.CnM,{}),size:"md",mb:4}),(0,i.jsx)(o.X,{as:"h2",fontSize:"2xl",mb:4,children:"Elastic scaling with predictable costs"}),(0,i.jsx)(l.x,{textShadow:"sm",pb:8,children:"Whether your application workload is predictable or not, Xata will scale with it without breaking the bank."}),(0,i.jsxs)(S.aV,{spacing:3,children:[(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"Auto-scaling"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"Multi-AZ and read replicas"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"Usage based pricing"]})]})]})]});var A=s(74543),P=s(59055),E=s(83282),N=s(97225),X=s(60642),H=s(20434),T=s(29510);let O=(0,X.G)((e,t)=>{let s=(0,H.xD)({...e,ref:t}),r=!!s["aria-selected"],{title:a,description:c,icon:x}=e,h={bg:"primary",width:"4px"};return(0,i.jsxs)(n.xu,{as:"button",textAlign:"left",width:"100%",display:"flex",flexDirection:"column",padding:4,transition:"all 0.2s ease-in-out",position:"relative",justifyContent:"center",minHeight:"20",bg:"bg",minH:{base:"auto",lg:r&&c?"140px":"auto"},_after:{content:'""',position:"absolute",top:0,left:0,width:"1px",height:"100%",bg:"stroke",transition:"background 0.2s ease-in-out"},_hover:{_after:h},_selected:{_after:h},...s,children:[(0,i.jsxs)(o.X,{as:"h3",fontSize:"lg",mb:2,display:"inline-flex",alignItems:"center",gap:2,color:r?"textPrimary":"textSubtle",children:[x&&(0,i.jsx)(T.J,{as:x,boxSize:6})," ",a]}),r&&c&&(0,i.jsx)(n.xu,{children:(0,i.jsx)(l.x,{color:r?"text":"textSubtle",children:c})})]})});var W=s(3442);let R=()=>{let e={delay:0,isViewTriggeredOnce:!1,viewTriggerOffset:!0},[t,s]=(0,d.useState)(0);return(0,i.jsx)(A.m,{variant:"unstyled",index:t,onChange:s,children:(0,i.jsxs)(c.M,{gap:{base:12,lg:24},alignItems:"center",columns:{base:1,lg:2},children:[(0,i.jsx)(n.xu,{children:(0,i.jsx)(P.t,{flexDir:"row",children:(0,i.jsxs)(r.k,{direction:"column",children:[(0,i.jsx)(O,{title:"Collaborate with the dashboard",description:"Data entry and management accessible to the whole team through the table, schema and search editors."}),(0,i.jsx)(O,{title:"Query with SQL",description:"Query your data with SQL directly, or plug into your favorite ORM, development and analysis tools."}),(0,i.jsx)(O,{title:"Build with type-safe SDKs",description:"The TypeScript / JavaScript, Python and Go SDKs provide a type-safe way to build fast and iterate."}),(0,i.jsx)(O,{title:"Run from the edge",description:"Keep your data close to your users and easily query your data from serverless edge functions."}),(0,i.jsx)(O,{title:"Develop locally with CLI",description:"Manage Xata directly through your terminal with a CLI experience you’ve only dreamed of."})]})})}),(0,i.jsx)(r.k,{flexDir:"column",alignItems:"center",justifyContent:"center",w:"full",h:"full",position:"relative",children:(0,i.jsxs)(E.n,{children:[(0,i.jsx)(N.x,{children:(0,i.jsx)(W.U,{...e,children:(0,i.jsx)(n.xu,{borderRadius:"lg",boxShadow:"sm",overflow:"hidden",children:(0,i.jsx)(g.WT,{src:"https://us-east-1.storage.xata.sh/2i1uhfe65h2r90efop17tgc9ko"})})})}),(0,i.jsx)(N.x,{children:(0,i.jsx)(W.U,{...e,children:(0,i.jsx)(n.xu,{borderRadius:"lg",boxShadow:"sm",overflow:"hidden",children:(0,i.jsx)(g.WT,{src:"https://us-east-1.storage.xata.sh/arheim1brt0s34gq1q52500h2c"})})})}),(0,i.jsx)(N.x,{children:(0,i.jsx)(W.U,{...e,children:(0,i.jsx)(n.xu,{borderRadius:"lg",boxShadow:"sm",overflow:"hidden",children:(0,i.jsx)(g.WT,{src:"https://us-east-1.storage.xata.sh/39h1n8jeu53drcq3evmh3dtjl8"})})})}),(0,i.jsx)(N.x,{children:(0,i.jsx)(W.U,{...e,children:(0,i.jsx)(n.xu,{borderRadius:"lg",boxShadow:"sm",overflow:"hidden",children:(0,i.jsx)(g.WT,{src:"https://us-east-1.storage.xata.sh/t9cofoh4ml4118kovaigkla30s"})})})}),(0,i.jsx)(N.x,{children:(0,i.jsx)(W.U,{...e,children:(0,i.jsx)(n.xu,{borderRadius:"lg",boxShadow:"sm",overflow:"hidden",children:(0,i.jsx)(g.WT,{src:"https://us-east-1.storage.xata.sh/unbs2m0e7h7pbc18rti1rm9ns4"})})})})]})})]})})},K=()=>(0,i.jsxs)(n.xu,{pos:"relative",id:"developers",...u.l,children:[(0,i.jsx)(v.N,{title:(0,i.jsxs)(i.Fragment,{children:["By developers,",(0,i.jsx)("br",{}),(0,i.jsx)(k.D,{children:"for developers"})]}),description:"Xata is designed to be the ideal database for application development. Optimized for code simplicity and extensibility with all the functionality your app needs."}),(0,i.jsx)(R,{}),(0,i.jsx)(v.N,{title:(0,i.jsxs)(i.Fragment,{children:["For your business,",(0,i.jsx)("br",{}),"every stage of the journey"]}),heading:"h3",description:"Every database is built with elastic scale and tenant isolation from day one. Making scaling up and out as boring as absolutely possible."}),(0,i.jsx)(I,{})]});var M=s(4906),L=s(23784),F=s(15306),_=s(58200);let B=e=>{let{title:t,description:s,link:a,img:n,isImgRight:c=!1,imgHeight:x="240px",icon:h,...u}=e,[p,j]=(0,d.useState)(!1);return(0,i.jsx)(g.Li,{isClickable:!0,onMouseEnter:()=>j(!0),onMouseLeave:()=>j(!1),...u,children:(0,i.jsxs)(r.k,{flexDir:"column",w:"full",h:"full",position:"relative",alignItems:"center",justifyContent:"space-between",children:[(0,i.jsxs)(r.k,{p:10,textAlign:{base:"center",xl:c?"left":"center"},justifySelf:"center",maxW:"500px",flexDir:"column",alignItems:{base:"center",xl:c?"flex-start":"center"},children:[h&&(0,i.jsx)(g.yO,{icon:h,size:"md",mb:4}),(0,i.jsx)(o.X,{as:"h2",fontSize:"xl",mb:4,children:(0,i.jsx)(m.A,{href:a,children:t})}),"string"==typeof s?(0,i.jsx)(l.x,{fontSize:"sm",children:s}):s]}),(0,i.jsx)(r.k,{position:"relative",height:x,w:"full",transition:"all 0.3s ease-in-out",pointerEvents:"none",opacity:p?1:.5,transform:p?"scale(1.05)":"scale(1)",children:(0,i.jsx)(r.k,{position:"absolute",left:0,bottom:0,justifyContent:"center",width:"100%",children:n})})]})})},U=()=>(0,i.jsxs)(c.M,{columns:{base:1,lg:2},spacing:10,zIndex:3,...u.l,children:[(0,i.jsx)(B,{icon:(0,i.jsx)(h.om,{}),title:"Serverless Postgres",description:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.x,{mb:4,fontSize:"sm",children:"Every database is a highly available, fully managed Postgres environment."}),(0,i.jsx)(r.k,{textAlign:"left",children:(0,i.jsxs)(S.aV,{spacing:2,fontSize:"sm",children:[(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:4}),"Generous, forever-free tier"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:4}),"Highly performant"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:4}),"Auto-scaling"]})]})})]}),img:(0,i.jsx)(p.default,{src:"/images/hero/serverless-postgres-hero.svg",alt:"Postgres",width:580,height:240}),imgHeight:"140px",link:"/serverless-postgres"}),(0,i.jsx)(B,{icon:(0,i.jsx)(D.PE$,{}),title:"Zero-downtime schema migrations",description:"Make changes to your production database with zero-downtime, reversible schema migrations and data backfilling.",img:(0,i.jsx)(p.default,{src:"/images/hero/migrations-hero.svg",alt:"Postgres",width:580,height:240}),imgHeight:"162px",link:"/schema-migrations"}),(0,i.jsx)(B,{icon:(0,i.jsx)(M.asy,{}),title:"File storage without the buckets",description:"Attach files and images of any size directly to your database records.",img:(0,i.jsx)(p.default,{src:"/images/hero/files-hero.svg",alt:"Postgres",width:580,height:240}),imgHeight:"178px",link:"/store-images"}),(0,i.jsx)(B,{icon:(0,i.jsx)(L.U6g,{}),title:"Branch for dev, staging and prod",description:"A copy of your database with each pull request for development and testing.",img:(0,i.jsx)(p.default,{src:"/images/hero/branch-hero.svg",alt:"Postgres",width:580,height:240}),imgHeight:"171px",link:"/branching"}),(0,i.jsx)(B,{icon:(0,i.jsx)(F.YF5,{}),title:"Out of the box full-text search",description:"Zero-config, typo tolerant and relevancy based full-text search.",img:(0,i.jsx)(p.default,{src:"/images/hero/full-text-search-hero.svg",alt:"Postgres",width:580,height:240}),imgHeight:"168px",link:"/full-text-search"}),(0,i.jsx)(B,{icon:(0,i.jsx)(_.Z2L,{}),title:"GPT on your data",description:"Store embeddings with relational data for chat, similarity search, personalization, and more.",img:(0,i.jsx)(p.default,{src:"/images/hero/ai-hero.svg",alt:"Postgres",width:580,height:240}),imgHeight:"168px",link:"/chatgpt"})]});var G=s(79800),Z=s(75797);let q=e=>{let{buttonIsHovered:t,isVisible:s,...r}=e,{rive:a,RiveComponent:o}=(0,G.useRive)({src:"/animations/xumbo.riv",stateMachines:"xumbo",autoplay:!0}),l=(0,G.useStateMachineInput)(a,"xumbo","isButtonHovered",!1),c=(0,G.useStateMachineInput)(a,"xumbo","isButtonHovered",!1);(0,d.useEffect)(()=>{t&&l?l.value=!0:!t&&l&&(l.value=!1)},[t,l]);let x={invisible:{y:180,opacity:0,transition:{ease:"easeInOut",duration:.8}},visible:{y:0,opacity:1,transition:{ease:"easeInOut",duration:.8,delay:.8}}};return(0,i.jsxs)(n.xu,{position:"absolute",bottom:{base:"-".concat(156,"px"),lg:"-".concat(135,"px")},left:{base:"50%",lg:0},transform:{base:"translateX(-50%)",lg:"translateX(0)"},width:180,height:180,...r,children:[(0,i.jsx)(g.uH,{width:180,height:180,initial:x.invisible,variants:x,animate:s?"visible":"invisible",children:(0,i.jsx)(o,{})}),(0,i.jsx)(n.xu,{position:"absolute",w:"100%",h:"100%",onMouseEnter:()=>{c&&(c.value=!0)},onMouseLeave:()=>{c&&(c.value=!1)},onClick:()=>{c&&(c.value=!0,setTimeout(()=>{c.value=!1},1e3))},top:0,left:0})]})},J=()=>{let e=(0,d.useRef)(null),[t,s]=(0,d.useState)(!1),a=(0,Z.Y)(e,{once:!0}),{rive:c,RiveComponent:h}=(0,G.useRive)({src:"/animations/hero-bg.riv",stateMachines:"xumboPlanet",autoplay:!0}),m=(0,G.useStateMachineInput)(c,"xumboPlanet","onHover",!1);return(0,d.useEffect)(()=>{t&&m?m.value=!0:!t&&m&&(m.value=!1)},[t,m]),(0,i.jsxs)(r.k,{className:"hero",position:"relative",direction:"column",height:"full",minH:400,justifyContent:"center",pb:{base:24,lg:0},...u.l,children:[(0,i.jsx)(n.xu,{className:"hero-bg",position:"absolute",left:0,bottom:{base:298.9,sm:"50%"},transform:"translateY(50%)",overflow:"hidden",w:"full",children:(0,i.jsx)(n.xu,{w:"100%",h:"auto",margin:"0 auto",position:"relative",opacity:.4,children:(0,i.jsx)(W.U,{position:"relative",width:{base:960,sm:1200},height:{base:341.6,sm:427},left:"50%",marginLeft:{base:-480,sm:-600},children:(0,i.jsx)(h,{})})})}),(0,i.jsxs)(W.U,{margin:"0 auto",alignItems:"center",maxW:800,position:"relative",delay:.8,children:[(0,i.jsx)(q,{buttonIsHovered:t,isVisible:a}),(0,i.jsxs)(o.X,{ref:e,as:"h1",size:{base:"3xl",md:"4xl"},textAlign:"center",color:"titleAccent",position:"relative",width:"max-content",margin:"0 auto",mb:4,children:["Postgres,",(0,i.jsx)("br",{}),(0,i.jsx)(k.D,{children:"powered up"})]}),(0,i.jsx)(l.x,{mb:8,textShadow:"sm",fontSize:{base:"lg",md:"xl"},textAlign:"center",children:"Xata is a fully-managed PostgreSQL database platform. Designed for businesses to build faster, ship reliably and scale infinitely."}),(0,i.jsxs)(r.k,{gap:4,justifyContent:"center",children:[(0,i.jsx)(x.z,{as:g.rU,variant:"gradient",href:"https://app.xata.io/signin?mode=signup",size:"md",minW:"150px",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:"Start free"}),(0,i.jsx)(x.z,{as:g.rU,href:"/contact/",size:"md",minW:"150px",children:"Request a demo"})]})]})]})};var V=s(12016),Q=s(91699);let $=e=>{let{children:t,icon:s,...a}=e;return(0,i.jsx)(n.xu,{...a,children:(0,i.jsx)(r.k,{position:"relative",overflow:"hidden",bg:"stroke",p:"1px",borderRadius:"md",width:32,height:12,children:(0,i.jsxs)(r.k,{gap:2,zIndex:2,direction:"row",bg:"contrastEmpty",w:"full",h:"full",borderRadius:"md",alignItems:"center",justifyContent:"center",children:[s,(0,i.jsx)(l.x,{color:"appIconBgText",fontWeight:"medium",fontSize:"sm",children:t})]})})})};function Y(){let e=(0,V._)(["\n\n  0% {\n    transform: translateX(0);\n  }\n\n  100% {\n      transform: translateX(-100%);\n    }\n"]);return Y=function(){return e},e}let ee=(0,Q.F4)(Y()),et=()=>{let e=[{text:"Astro",icon:(0,i.jsx)(h._5,{boxSize:6})},{text:"Next.js",icon:(0,i.jsx)(h.Ne,{boxSize:6})},{text:"Nuxt.js",icon:(0,i.jsx)(h.SU,{boxSize:6})},{text:"Remix",icon:(0,i.jsx)(h.zS,{boxSize:6})},{text:"Svelte",icon:(0,i.jsx)(h.W1,{boxSize:6})},{text:"Solid Start",icon:(0,i.jsx)(h.iq,{boxSize:6})},{text:"TypeScript",icon:(0,i.jsx)(h.KP,{boxSize:6})},{text:"Python",icon:(0,i.jsx)(h.gx,{boxSize:6})},{text:"Go",icon:(0,i.jsx)(h.CT,{boxSize:6})},{text:"Airbyte",icon:(0,i.jsx)(h.HA,{boxSize:6})}],t=e.concat(e,e),s=[{text:"Auth.js",icon:(0,i.jsx)(h.U3,{boxSize:6})},{text:"Cloudflare",icon:(0,i.jsx)(h.IG,{boxSize:6})},{text:"Drizzle",icon:(0,i.jsx)(h.$K,{boxSize:6})},{text:"GitHub",icon:(0,i.jsx)(h.fy,{boxSize:6})},{text:"Kysely",icon:(0,i.jsx)(h.vi,{boxSize:6})},{text:"LangChain",icon:(0,i.jsx)(h.y8,{boxSize:6})},{text:"Netlify",icon:(0,i.jsx)(h.jn,{boxSize:6})},{text:"Oauth",icon:(0,i.jsx)(h.mz,{boxSize:6})},{text:"Vercel",icon:(0,i.jsx)(h.Kn,{boxSize:6})},{text:"Zapier",icon:(0,i.jsx)(h.VF,{boxSize:6})}].concat(e,e);return(0,i.jsxs)(r.k,{justifyContent:"center",gap:4,alignItems:"center",direction:"column",...u.l,children:[(0,i.jsx)(l.x,{color:"textSubtle",fontWeight:"medium",fontSize:"md",mb:4,children:"Works with your favorite frameworks and tools"}),(0,i.jsx)(r.k,{direction:"column",overflow:"hidden",position:"relative",w:"full",_before:{position:"absolute",top:"0",left:"0",width:"250px",height:"100%",content:'""',bg:"linear-gradient(to left, transparent, var(--chakra-colors-bg))",zIndex:"2"},_after:{position:"absolute",top:"0",right:"0",width:"250px",height:"100%",content:'""',bg:"linear-gradient(to right, transparent, var(--chakra-colors-bg))",zIndex:"2"},children:(0,i.jsxs)(r.k,{gap:4,direction:"column",children:[(0,i.jsx)(r.k,{flexWrap:"nowrap",gap:4,animation:"".concat(ee," 25s infinite linear"),sx:{_hover:{animationPlayState:"paused"}},children:t.map((e,t)=>(0,i.jsx)($,{icon:e.icon,children:e.text},t))}),(0,i.jsx)(r.k,{flexWrap:"nowrap",gap:4,animation:"".concat(ee," 30s infinite linear"),sx:{_hover:{animationPlayState:"paused"}},children:s.map((e,t)=>(0,i.jsx)($,{icon:e.icon,children:e.text},t))})]})})]})};var es=s(57108),ei=s.n(es);let er=e=>e>=1e3?(e/1e3).toFixed(1)+"k":e,ea=e=>{let{imageSrc:t,title:s,text:a,list:n,link:c,githubLink:d,githubStars:u,hasButtons:j=!1,...f}=e;return(0,i.jsx)(g.Li,{pattern:"bottomRight",height:"full",...f,children:(0,i.jsxs)(r.k,{direction:"column",p:10,gap:4,children:[(0,i.jsx)(p.default,{src:t,width:380,height:204,alt:"Pgstream hero illustration"}),(0,i.jsx)(o.X,{as:"h2",fontSize:"xl",children:(0,i.jsx)(m.A,{href:c,children:s})}),(0,i.jsx)(l.x,{textShadow:"sm",children:a}),(0,i.jsx)(S.aV,{spacing:3,pb:4,children:n.map((e,t)=>(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),e]},t))}),j&&(0,i.jsxs)(r.k,{gap:4,children:[(0,i.jsx)(x.z,{as:g.rU,href:"/pgroll/",variant:"gradient",w:"max-content",size:"sm",children:"Learn more"}),ei()(u)&&(0,i.jsx)(l.x,{color:"text",fontSize:"sm",fontWeight:"medium",children:(0,i.jsx)(x.z,{as:g.rU,href:d,size:"sm",leftIcon:(0,i.jsx)(h.fy,{boxSize:5}),children:er(u)})})]})]})})},en=e=>{let{pgrollStars:t,pgzxStars:s,pgstreamStars:a}=e;return(0,i.jsxs)(r.k,{pos:"relative",...u.l,flexDir:"column",alignItems:"center",children:[(0,i.jsx)(v.N,{title:"Built on open source",description:"At Xata, we embrace open source, collaborating with the community to drive innovative ideas. Join us in fostering the next big breakthrough."}),(0,i.jsxs)(c.M,{...u.l,columns:{base:1,md:3},alignItems:"start",pos:"relative",maxW:1200,w:"full",mx:"auto",gap:5,children:[(0,i.jsx)(ea,{imageSrc:"/images/home/open-source/pgroll.svg",title:"pgroll",text:"PostgreSQL schema migrations at scale are dead simple with pgroll. Enjoy safe and reversible schema updates without interrupting your production application.",list:["Zero-downtime migrations","Instant rollbacks","Real-time backfilling","Multiple schema versions"],link:"/pgroll",githubStars:t,githubLink:"https://github.com/xataio/pgroll"}),(0,i.jsx)(ea,{imageSrc:"/images/home/open-source/pgzx.svg",title:"pgzx",text:"An open source framework to easily build PostgreSQL extensions in Zig, a systems programming language for maintainable and fast code.",list:["Access all Postgres APIs","Memory allocators","Logging and error handling","Development environment"],link:"/pgzx",githubStars:s,githubLink:"https://github.com/xataio/pgzx"}),(0,i.jsx)(ea,{imageSrc:"/images/home/open-source/pgstream.svg",title:"pgstream",text:"An open source change data capture (CDC) command-line tool and library for Postgres.",list:["Replication of DDL changes","Webhook ouput","Elasticsearch & OpenSearch output","Modular deployment configuration"],link:"/pgstream",githubStars:a,githubLink:"https://github.com/xataio/pgstream"})]})]})},eo=e=>{let{title:t,link:s,icon:r}=e;return(0,i.jsxs)(m.f,{p:4,textAlign:{base:"center",xl:"left"},justifySelf:"center",alignItems:"center",flexDir:"column",display:"flex",gap:2,_hover:{transform:"scale(1.05)"},transition:"all 0.2s ease-in-out",children:[r&&(0,i.jsxs)(m.A,{href:s,children:[(0,i.jsx)(g.yO,{icon:r,size:"lg"})," "]}),(0,i.jsx)(m.A,{href:s,fontWeight:"semibold",children:t})]})},el=()=>(0,i.jsxs)(n.xu,{as:"svg",xmlns:"http://www.w3.org/2000/svg",width:"full",height:"auto",fill:"none",viewBox:"0 0 330 330",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:0,maxW:"400px",color:"text",children:[(0,i.jsx)("circle",{cx:"165",cy:"165",r:"164.5",stroke:"currentColor",strokeOpacity:"0.03"}),(0,i.jsx)("circle",{cx:"165",cy:"165",r:"144.5",stroke:"currentColor",strokeOpacity:"0.05"}),(0,i.jsx)("circle",{cx:"165",cy:"165",r:"124.5",stroke:"currentColor",strokeOpacity:"0.07"}),(0,i.jsx)("circle",{cx:"165",cy:"165",r:"104.5",stroke:"currentColor",strokeOpacity:"0.09"}),(0,i.jsx)("circle",{cx:"165",cy:"165",r:"84.5",stroke:"currentColor",strokeOpacity:"0.10"}),(0,i.jsx)("circle",{cx:"165",cy:"165",r:"64.5",stroke:"currentColor",strokeOpacity:"0.12"})]}),ec=e=>{let{...t}=e;return(0,i.jsxs)(r.k,{pos:"relative",gap:12,alignItems:"center",flexDir:"column",...u.l,...t,children:[(0,i.jsx)(v.N,{title:"Try it out for yourself",description:"Get started with a sample app in your preferred framework."}),(0,i.jsxs)(c.M,{gap:12,columns:{base:1,lg:2},alignItems:"center",justifyContent:"center",w:"full",position:"relative",children:[(0,i.jsxs)(r.k,{flexDir:"column",w:"full",position:"relative",textAlign:{base:"center",lg:"start"},maxW:"600px",margin:"0 auto",children:[(0,i.jsx)(o.X,{as:"h2",fontSize:"2xl",mb:4,children:"A blog with your favorite framework"}),(0,i.jsx)(l.x,{textShadow:"sm",pb:8,children:"Create an application and walk through adding Xata database and search functionality. You'll build the following basic blog application features:"}),(0,i.jsxs)(S.aV,{spacing:3,children:[(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"List all blog posts"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"Retrieve and view a single blog post"]}),(0,i.jsxs)(S.HC,{children:[(0,i.jsx)(S.DE,{as:C.KXr,color:"textPrimary",boxSize:5}),"Full-text fuzzy search of blog posts"]})]})]}),(0,i.jsxs)(r.k,{position:"relative",alignItems:"center",justifyContent:"center",children:[(0,i.jsx)(el,{}),(0,i.jsx)(n.xu,{position:"relative",children:(0,i.jsxs)(c.M,{gap:4,columns:3,alignItems:"center",justifyContent:"center",w:"full",children:[(0,i.jsx)(eo,{icon:(0,i.jsx)(h._5,{}),title:"Astro",link:"/docs/getting-started/astro"}),(0,i.jsx)(eo,{icon:(0,i.jsx)(h.Ne,{}),title:"Next.js",link:"/docs/getting-started/nextjs"}),(0,i.jsx)(eo,{icon:(0,i.jsx)(h.SU,{}),title:"Nuxt",link:"/docs/getting-started/nuxt"}),(0,i.jsx)(eo,{icon:(0,i.jsx)(h.zS,{}),title:"Remix",link:"/docs/getting-started/remix"}),(0,i.jsx)(eo,{icon:(0,i.jsx)(h.W1,{}),title:"SvelteKit",link:"/docs/getting-started/sveltekit"}),(0,i.jsx)(eo,{icon:(0,i.jsx)(h.iq,{filter:"brightness(150%)"}),title:"SolidStart",link:"/docs/getting-started/solidstart"})]})})]})]})]})};var ex=s(95605),eh=s(50347),ed=s(27271);let eu=(e,t)=>{let[s,i]=(0,ed.Z)(e,t),[r,a]=(0,d.useState)(!0),[n,o]=(0,d.useState)(!0),[l,c]=(0,d.useState)(0),x=(0,d.useCallback)(()=>{i&&i.scrollPrev()},[i]),h=(0,d.useCallback)(()=>{i&&i.scrollNext()},[i]),u=(0,d.useCallback)(e=>{a(e.canScrollPrev()),o(e.canScrollNext()),c(e.selectedScrollSnap())},[]);return(0,d.useEffect)(()=>{i&&(i.on("reInit",u),i.on("select",u))},[i]),{emblaRef:s,selectedScrollSnap:l,canScrollNext:n,canScrollPrev:r,scrollPrev:x,scrollNext:h}},em=e=>{let{icon:t,...s}=e;return(0,i.jsx)(x.z,{zIndex:"1",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",borderRadius:"full",w:16,h:16,_disabled:{opacity:.3,cursor:"not-allowed"},...s,children:(0,i.jsx)(T.J,{as:t,boxSize:8})})};var eg=s(63032),ep=s(40640),ej=s(45543),ef=s(84038);let eb=e=>{let{title:t,description:s,image:a,href:o,author:c,authorDescription:x,authorAvatarSrc:h,isActive:d}=e;return(0,i.jsx)(n.xu,{position:"relative",bg:"contrastLowest",borderRadius:"md",overflow:"hidden",height:"100%",border:"1px solid",borderColor:"stroke",opacity:d?1:.4,children:(0,i.jsxs)(n.xu,{children:[(0,i.jsx)(n.xu,{w:"100%",pos:"relative",children:(0,i.jsx)(p.default,{width:800,height:520,src:a.src,alt:a.alt})}),(0,i.jsxs)(r.k,{direction:"column",py:4,alignItems:"center",gap:4,textAlign:"left",justifyContent:"space-between",height:"full",px:4,children:[(0,i.jsxs)(r.k,{direction:"column",textAlign:"center",maxW:"500px",gap:2,children:[(0,i.jsx)(m.A,{as:ej.default,href:o,children:(0,i.jsx)(ef.C,{children:t})}),(0,i.jsx)(l.x,{color:"textSubtle",fontSize:"xs",children:s})]}),(0,i.jsxs)(r.k,{direction:"row",justifyContent:"space-between",width:"auto",gap:4,children:[(0,i.jsxs)(r.k,{direction:"row",gap:4,justifyContent:"center",alignItems:"center",children:[(0,i.jsx)(eg.q,{name:c,src:h,size:"sm"}),(0,i.jsxs)(n.xu,{children:[(0,i.jsx)(l.x,{fontWeight:"semibold",fontSize:"xs",children:c}),(0,i.jsx)(l.x,{color:"textSubtle",fontSize:"xs",children:x})]})]}),(0,i.jsx)(T.J,{as:ep.Gjm,boxSize:10,color:"contrastLow"})]})]})]})})},ey={delay:4e3,stopOnMouseEnter:!0,stopOnInteraction:!1,rootNode:e=>e.parentElement},ew=e=>{let{slides:t,onCurrentSlideChange:s}=e,{emblaRef:r,canScrollPrev:a,canScrollNext:o,scrollPrev:l,scrollNext:c,selectedScrollSnap:x}=eu({loop:!0},[(0,eh.Z)(ey)]);return(0,d.useEffect)(()=>{s(x)},[x,s]),(0,i.jsx)(g.Zb,{children:(0,i.jsxs)(n.xu,{width:"full",overflow:"hidden",position:"relative",children:[(0,i.jsx)(n.xu,{ref:r,overflow:"hidden",py:{base:4,lg:8},children:(0,i.jsx)(n.xu,{display:"flex",ml:{base:-4,lg:-8},style:{backfaceVisibility:"hidden",touchAction:"pan-y"},children:t.map((e,t)=>(0,i.jsx)(n.xu,{flex:{base:"0 0 80%",sm:"0 0 60%",md:"0 0 40%",lg:"0 0 30%"},minWidth:"0",pl:{base:4,lg:8},position:"relative",children:(0,i.jsx)(eb,{...e,isActive:t===x})},t))})}),(0,i.jsx)(em,{onClick:()=>l(),isDisabled:!a,icon:ex.Z7p,position:"absolute",top:"50%",left:{base:0,lg:4},transform:"translateY(-50%)"}),(0,i.jsx)(em,{onClick:()=>c(),isDisabled:!o,icon:D.WN1,position:"absolute",top:"50%",right:{base:0,lg:4},transform:"translateY(-50%)"})]})})},ev=()=>{let e=[{title:"Ecommerce",description:"There were a lot of things that Xata solved for us. Our app is divided into three parts. The shop profile with customer information, time series data for sales metrics, and the images for the shop itself. All three use cases use only one database, Xata.",image:{src:"/images/use-cases/ecommerce.jpg",alt:"Ecommerce"},href:"/blog/community-spotlight-automate-shopify-store-creation",author:"Katriel Lucas",authorDescription:"Full Stack Developer",authorAvatarSrc:"/images/use-cases/ecommerce-katriel-lucas.jpg"},{title:"Booking & inventory",description:"Xata was a game-changer for me. I’m not great at DevOps and database infrastructure management, which I find rather tedious. Xata takes care of this with an excellent developer experience.",image:{src:"/images/use-cases/booking.jpg",alt:"Booking & inventory"},href:"/blog/community-spotlight-simplified-architecture-hotel",author:"Emanuel Arcos",authorDescription:"Entrepreneur",authorAvatarSrc:"/images/use-cases/booking-emanuel-arcos.jpg"},{title:"Generative AI",description:"All in all, I have to say, I was really surprised at how easy it was to adopt Xata and just jump in and start using it. I haven’t had to look at my database in 3 months, it’s stable, no maintenance required and it just works.",image:{src:"/images/use-cases/generative-ai.jpg",alt:"Ecommerce"},href:"/blog/community-spotlight-chat-search-experiences",author:"Agust\xedn Gomez",authorDescription:"Software Engineer",authorAvatarSrc:"/images/use-cases/generative-ai-agustin-gomez.jpg"},{title:"Content management",description:"We were blown away by the workspace environment, the documentation and the incredible response time on Discord. It's rare that you find a product that just works.",image:{src:"/images/use-cases/cms.jpg",alt:"Content management"},href:"/blog/community-spotlight-rankone",author:"Peter Spegel",authorDescription:"Developer @ RankOne",authorAvatarSrc:"/images/use-cases/cms-peter-spegel.jpg"},{title:"SaaS applications",description:"I’m the primary developer working on this application, so I can’t deal with a very complex system. I was looking for a simple solution to a scalable database and that’s where Xata exceeded my expectations.",image:{src:"/images/use-cases/saas.jpg",alt:"Ecommerce"},href:"/blog/ecommerce-platform-batchoop",author:"Charles Bellorini",authorDescription:"CEO & Co-Founder of Batchoop",authorAvatarSrc:"/images/use-cases/saas-charles-bellorini.jpg"}],[t,s]=(0,d.useState)(0);return(0,i.jsxs)(r.k,{pos:"relative",...u.l,flexDir:"column",alignItems:"center",children:[(0,i.jsx)(v.N,{title:(0,i.jsxs)(i.Fragment,{children:["Postgres++ for",(0,i.jsx)("br",{}),(0,i.jsx)(k.D,{children:e[t].title})]}),description:"Join the tens of thousands of developers and businesses using Xata today.",descriptionProps:{mb:12}}),(0,i.jsx)(ew,{slides:e,onCurrentSlideChange:s})]})},ek=e=>{let{pgrollStars:t,pgzxStars:s,pgstreamStars:n}=e;return(0,i.jsxs)(r.k,{flexDir:"column",pos:"relative",zIndex:5,w:"full",children:[(0,i.jsxs)(y.$,{position:"relative",gap:{base:8,md:16},pt:16,children:[(0,i.jsx)(J,{}),(0,i.jsx)(U,{}),(0,i.jsx)(et,{})]}),(0,i.jsx)(w.d,{}),(0,i.jsx)(y.$,{variant:"noPattern",textAlign:"center",children:(0,i.jsx)(ev,{})}),(0,i.jsx)(w.d,{}),(0,i.jsx)(K,{}),(0,i.jsx)(w.d,{}),(0,i.jsx)(en,{pgrollStars:t,pgzxStars:s,pgstreamStars:n}),(0,i.jsx)(w.d,{}),(0,i.jsx)(y.$,{children:(0,i.jsx)(b,{})}),(0,i.jsx)(w.d,{}),(0,i.jsx)(y.$,{textAlign:"center",pb:{base:32,lg:44},children:(0,i.jsx)(ec,{})}),(0,i.jsx)(y.$,{variant:"noPattern",children:(0,i.jsx)(a.J,{})})]})}},28045:function(e,t,s){"use strict";s.d(t,{N:function(){return o}});var i=s(25721),r=s(79494),a=s(76617),n=s(43148);let o=e=>{let{title:t,description:s,heading:o="h2",children:l,descriptionProps:c,...x}=e;return(0,i.jsxs)(r.xu,{textAlign:"center",fontSize:"sm",maxW:"820px",margin:"0 auto",...x,children:["h2"===o&&(0,i.jsx)(a.X,{as:"h2",size:{base:"xl",md:"2xl"},color:"titleAccent",mb:s?4:16,children:t}),"h3"===o&&(0,i.jsx)(a.X,{as:"h3",size:"xl",color:"titleAccent",mt:24,mb:s?4:16,children:t}),s&&(0,i.jsx)(n.x,{color:"textSubtle",fontSize:"lg",mb:l?8:16,...c,children:s}),l]})}}},function(e){e.O(0,[4948,4343,6714,4521,6514,1067,2976,9455,1920,6317,2800,2715,8444,8343,7104,2643,123,906,239,6,6327,1159,5554,5181,1744],function(){return e(e.s=79301)}),_N_E=e.O()}]);