PageSourceSearch

https://laravel.com/build/assets/page-D_k_J2pO.js

js laravel.com collected 2026-09-24 08:24:35 UTC 56,018 bytes, 3 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CVVxsl_W.js","assets/inertia-Dfj01zwH.js"])))=>i.map(i=>d[i]);
2import{r as m,j as e,b as z,_ as S,u as A}from"./inertia-Dfj01zwH.js";import{L as F,c as j,P as L}from"./cn-C_8-Aw06.js";import{aj as b,ai as g,u as I,D as T}from"./default-layout-CmMk04BW.js";import{H as h}from"./heading-kplccqoV.js";import{S as u,F as M}from"./faq-section-ChW3s48y.js";import{H as C}from"./horizontal-divider-CC9jdSUw.js";import"./index-BVvBGSus.js";import"./default-favicon-BfU9MQjQ.js";import"./form-consent-BEoM_t2W.js";const y=m.lazy(()=>S(()=>import("./index-CVVxsl_W.js"),__vite__mapDeps([0,1])));function P(){return e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"20",viewBox:"0 0 18 20",fill:"none",children:[e.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.3182 0.182393C8.73942 -0.0607976 9.2584 -0.0607976 9.67962 0.182393L17.1609 4.50164C17.5821 4.74483 17.8416 5.19429 17.8416 5.68067V14.3193C17.8416 14.8057 17.5821 15.2552 17.1609 15.4984L9.67962 19.8176C9.25839 20.0608 8.73942 20.0608 8.3182 19.8176L0.836959 15.4984C0.415744 15.2552 0.156258 14.8057 0.15625 14.3193V5.68067C0.156264 5.19429 0.415746 4.74483 0.836959 4.50164L8.3182 0.182393Z",fill:"#FF0000"}),e.jsx("path",{d:"M2.7108 12.2323L8.9625 15.8252L15.2141 12.2323L15.8547 12.6039V13.8832L8.9625 17.8809V16.5831L2.07031 12.6039L2.7108 12.2323Z",fill:"white"}),e.jsx("path",{d:"M2.85589 8.96742L8.9625 12.5094L15.069 8.96742L15.8547 9.41896V10.6865L8.9625 14.6475V13.3981L2.07031 9.41896L2.85589 8.96742Z",fill:"white"}),e.jsx("path",{d:"M15.8547 6.05206V7.33138L8.9625 11.329V10.0312L2.07031 6.05206L8.9625 2.05439L15.8547 6.05206Z",fill:"white"})]})}function R(){return e.jsx("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M6.00284 10.3679L4.97869 9.35369L8.04617 6.28622H0.59375V4.80469H8.04617L4.97869 1.74219L6.00284 0.723011L10.8253 5.54545L6.00284 10.3679Z",fill:"#151715"})})}function E(){const[a,t]=m.useState(!1),l=m.useRef(null);return m.useEffect(()=>{if(!a)return;const s=n=>{n.key==="Escape"&&t(!1)};return document.addEventListener("keydown",s),document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",s),document.body.style.overflow=""}},[a]),e.jsxs("div",{className:"relative isolate w-full overflow-hidden",children:[a&&typeof document<"u"&&z.createPortal(e.jsxs("div",{className:"fixed inset-0 z-[999] flex flex-col items-center justify-center backdrop-blur-sm",style:{background:"radial-gradient(55.8% 55.49% at 50% 55.49%, rgba(16, 185, 129, 0.1) 0%, rgba(0, 0, 0, 0) 100%), rgba(0, 0, 0, 0.95)"},onClick:s=>{s.target===s.currentTarget&&t(!1)},children:[e.jsx("div",{className:"flex w-full flex-1 motion-preset-blur-up items-center justify-center motion-duration-3000",children:e.jsx("div",{className:"relative aspect-video w-full overflow-hidden rounded-none border border-neutral-700 bg-black shadow-xl md:w-[min(calc(100dvw-128px),calc(16/9*calc(100vh-128px)))] md:rounded-xl",children:e.jsx("iframe",{ref:l,src:"https://www.youtube.com/embed/AGYKgFc0DUQ?si=Kxysw5rDlfNY9XZr&autoplay=1&rel=0&showinfo=0",allow:"autoplay; encrypted-media",allowFullScreen:!0,className:"absolute inset-0 h-full w-full",style:{background:"#000"}})})}),e.jsxs("button",{onClick:()=>t(!1),className:"mt-4 mb-8 inline-flex motion-preset-blur-up items-center gap-2 rounded-md border border-transparent bg-white px-8 py-3 font-sans text-neutral-800 shadow-lg",children:[e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",className:"size-4 shrink-0 fill-none stroke-current stroke-[2.25] [stroke-linecap:round] [stroke-linejoin:round]",children:e.jsx("path",{d:"M4.75 4.75L19.25 19.25M19.25 4.75L4.75 19.25"})}),"Close"]})]}),document.body),e.jsx("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-30 h-12 bg-gradient-to-b from-white to-transparent"}),e.jsx("div",{className:"pointer-events-none absolute right-0 -bottom-3 left-0 z-30 h-24 bg-gradient-to-b from-transparent to-white to-50% md:h-48 xl:h-64"}),e.jsx("div",{className:"forge-hero-left forge-hero-left-mask absolute -z-20 hidden h-screen w-1/2 overflow-hidden delay-[400ms] duration-1000 md:block starting:opacity-0",children:e.jsx(m.Suspense,{fallback:null,children:e.jsx(y,{jsonFilePath:"/animations/forge/forge-hero-left.json",fps:30,ariaLabel:"Animated forge hero background (left)",className:"h-full w-full",placeholder:e.jsx(e.Fragment,{})})})}),e.jsx("div",{className:"forge-hero-corner-mask-left absolute -z-10 h-64 w-1/2 overflow-hidden"}),e.jsx("div",{className:"forge-hero-right forge-hero-right-mask absolute -z-20 hidden h-screen w-1/2 overflow-hidden delay-[400ms] duration-1000 md:block starting:opacity-0",children:e.jsx(m.Suspense,{fallback:null,children:e.jsx(y,{jsonFilePath:"/animations/forge/forge-hero-right.json",fps:30,ariaLabel:"Animated forge hero background (right)",className:"h-full w-full",placeholder:e.jsx(e.Fragment,{})})})}),e.jsx("div",{className:"forge-hero-corner-mask-right absolute -z-10 h-96 w-full overflow-hidden"}),e.jsxs("div",{className:"relative z-20 mx-auto pt-14 text-center lg:pt-24",children:[e.jsxs("div",{className:"relative pb-20 lg:pb-[120px]",children:[e.jsx("img",{src:"/images/forge/homepage/mobile-hero-cta-bg.png",alt:"Laravel Forge hero background",className:"absolute inset-x-0 bottom-0 block w-full translate-y-0 object-contain opacity-100 transition delay-1500 duration-2000 ease-[
2cubic-bezier(0.22,0.61,0.36,1)] will-change-transform md:hidden starting:translate-y-8 starting:opacity-0 starting:blur-xs"}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"mb-6 flex justify-center duration-500 ease-[cubic-bezier(0.22,0.61,0.36,1)] will-change-transform starting:translate-y-8 starting:opacity-0 starting:blur-xs",children:e.jsx(F,{href:"#laravel-vps",className:"group inline-flex h-[34px] items-stretch rounded-full bg-gradient-to-b from-[#009B8040] to-[#000f0047] p-px shadow-vps-button",children:e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full bg-white px-3.25 group-hover:bg-olive-light-2",children:[e.jsx(P,{}),e.jsx("span",{className:"text-13 font-medium text-olive-light-12",children:"Introducing Laravel VPS"}),e.jsx(R,{})]})})}),e.jsxs("div",{className:"px-5",children:[e.jsx(h,{level:1,className:"pricing-gradient-text duration-1000 ease-[cubic-bezier(0.22,0.61,0.36,1)] will-change-transform starting:translate-y-8 starting:opacity-0 starting:blur-xs",children:"The web is your frontier"}),e.jsx("p",{className:"mx-auto mt-4 max-w-3xl text-xl text-[#5A706C] delay-[200ms] duration-1000 ease-[cubic-bezier(0.22,0.61,0.36,1)] will-change-transform sm:inline-block lg:mt-6 starting:translate-y-8 starting:opacity-0 starting:blur-xs",children:"Forge gives root access to servers without the cognitive overhead. One-click instant provisioning, zero-downtime deployments, and automated SSL."})]}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-x-3 delay-[400ms] duration-1000 ease-[cubic-bezier(0.22,0.61,0.36,1)] will-change-transform lg:mt-12 starting:translate-y-8 starting:opacity-0 starting:blur-xs",children:[e.jsx(b,{size:"md",href:"https://forge.laravel.com/sign-up",variant:"primary",children:"Deploy server"}),e.jsx(b,{size:"md",href:"https://laravel.com/forge/docs/",variant:"secondary",children:"Read docs"})]})]})]}),e.jsxs(g,{className:"relative mx-auto w-full max-md:px-0!",children:[e.jsx("div",{className:"flex w-full max-w-screen items-start justify-center overflow-hidden",children:e.jsx("div",{className:"flex w-full min-w-[640px] items-start justify-center overflow-hidden rounded-xl border border-black/[0.06] shadow-[0_1.746px_3.492px_0_rgba(0,0,0,0.06),0_3.492px_5.238px_0_rgba(0,0,0,0.10)] delay-[400ms] duration-1000 will-change-transform starting:translate-y-16 starting:opacity-0 starting:blur-xs",children:e.jsx("div",{className:"relative flex aspect-[1920/1038] w-full items-start justify-center rounded-xl bg-white",children:e.jsxs("video",{autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"metadata",className:"pointer-events-none absolute inset-0 -mt-px h-full w-full object-cover object-top","aria-hidden":"true",children:[e.jsx("source",{media:"(max-width: 640px)",src:"/images/forge/homepage/forge-preview-mobile.mp4",type:"video/mp4"}),e.jsx("source",{src:"/images/forge/homepage/forge-preview.mp4",type:"video/mp4"}),"Your browser does not support the video tag."]})})})}),e.jsx("div",{className:"items-top absolute inset-0 top-32 isolate z-20 flex items-start justify-center sm:top-40 xl:top-56 2xl:top-72",children:e.jsx("span",{className:"delay-[600ms] duration-1000 ease-[cubic-bezier(0.22,0.61,0.36,1)] will-change-transform starting:translate-y-16 starting:opacity-0 starting:blur-xs",children:e.jsxs("button",{className:"flex items-center gap-3 rounded-full border border-[#151718] bg-[#151718] p-2 pr-6 text-left text-white shadow-xxl transition-colors duration-100 hover:bg-[#2a3431]",onClick:s=>{s.preventDefault(),t(!0)},children:[e.jsx("div",{className:"flex size-11 items-center justify-center rounded-full border-2 border-white bg-default",children:e.jsx("svg",{className:"size-10 shrink-0 rounded-full bg-white fill-[#151718]",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M20 3C10.6112 3 3 10.6112 3 20C3 29.3888 10.6112 37 20 37C29.3888 37 37 29.3888 37 20C37 10.6112 29.3888 3 20 3ZM0 20C0 8.95431 8.95431 0 20 0C31.0457 0 40 8.95431 40 20C40 31.0457 31.0457 40 20 40C8.95431 40 0 31.0457 0 20ZM16 25.
26079V14.3921C16 13.5887 16.8995 13.1133 17.5633 13.5659L25.7882 19.1738C26.3704 19.5707 26.3704 20.4293 25.7882 20.8262L17.5633 26.4341C16.8995 26.8867 16 26.4113 16 25.6079Z"})})}),e.jsx("div",{className:"leading-snug",children:e.jsx("p",{className:"font-medium",children:"Forge in 4 min"})})]})})})]})]})]})}const D=[[{src:"/images/forge/homepage/openai.svg",alt:"OpenAI logo"},{src:"/images/forge/homepage/guardian.svg",alt:"The Guardian logo"},{src:"/images/forge/homepage/wp-engine.svg",alt:"WP Engine logo"}],[{src:"/images/forge/homepage/tailwind.svg",alt:"Tailwind logo"},{src:"/images/forge/homepage/autodesk.svg",alt:"Autodesk logo"},{src:"/images/forge/homepage/webex.svg",alt:"Webex logo"}],[{src:"/images/forge/homepage/namecheap.svg",alt:"Namecheap logo"},{src:"/images/forge/homepage/siemens.svg",alt:"Siemens logo"},{src:"/images/forge/homepage/bitwarden.svg",alt:"Bitwarden logo"}],[{src:"/images/forge/homepage/intel.svg",alt:"Intel logo"},{src:"/images/forge/homepage/nfl.svg",alt:"NFL logo"},{src:"/images/forge/homepage/fandom.svg",alt:"Fandom logo"}],[{src:"/images/forge/homepage/duolingo.svg",alt:"Duolingo logo"},{src:"/images/forge/homepage/red-hat.svg",alt:"Red Hat logo"},{src:"/images/forge/homepage/mercedes-benz.svg",alt:"Mercedes-Benz logo"}],[{src:"/images/forge/homepage/stanford.svg",alt:"Stanford logo"},{src:"/images/forge/homepage/frame.svg",alt:"F1 logo"},{src:"/images/forge/homepage/sendbird.svg",alt:"Sendbird logo"}]];function O({logos:a,index:t}){const l=[...a,...a],[s,n]=m.useState(0),r=m.useRef(null),c=m.useRef(null);m.useEffect(()=>(c.current=setTimeout(()=>{r.current=setInterval(()=>{n(i=>i>=l.length-1?0:i+1)},4e3)},t*75),()=>{c.current&&clearTimeout(c.current),r.current&&clearInterval(r.current)}),[l.length,t]);const d=i=>s===0?i===l.length-1:i===s-1,p=i=>i===s,v=i=>!d(i)&&(s<l.length-1?i===s+1:i===0),o=i=>!d(i)&&!p(i)&&!v(i);return e.jsx("div",{className:"relative min-h-30",children:e.jsxs("div",{className:"absolute inset-0 isolate overflow-hidden",children:[e.jsx("div",{className:"absolute inset-x-0 top-0 z-10 h-10 w-full bg-gradient-to-b from-white from-30% to-transparent"}),e.jsx("div",{className:"absolute inset-x-0 bottom-0 z-10 h-10 w-full bg-gradient-to-t from-white from-30% to-transparent"}),l.map((i,x)=>e.jsx("div",{className:["absolute inset-0 flex items-center justify-center p-5 will-change-transform",d(x)?"-translate-y-full":"",p(x)?"translate-y-0":"",v(x)||o(x)?"translate-y-full":"",!v(x)&&!o(x)?"transition duration-1000 ease-in-out":""].filter(Boolean).join(" "),children:e.jsx("div",{className:"**:max-h-20 **:max-w-full max-h-20 max-w-full",children:e.jsx("img",{src:i.src,alt:i.alt,loading:"lazy"})})},x))]})})}function B(){return e.jsx("div",{className:"border-olive-light-alpha-3 border-t",children:e.jsx(g,{children:e.jsxs("div",{className:"divide-olive-light-alpha-3 border-olive-light-alpha-3 grid grid-cols-2 divide-x divide-y divide-dashed border-l lg:grid-cols-7 lg:divide-y-0 lg:border-x",children:[e.jsx("div",{className:"text-olive-light-11 col-span-2 flex items-center justify-center self-stretch px-5 py-10 text-sm font-medium lg:col-span-1",children:e.jsxs("span",{children:["Trusted by"," ",e.jsx("span",{className:"text-olive-light-12",children:"1000+ companies"})]})}),D.map((a,t)=>e.jsx(O,{logos:a,index:t},t))]})})})}const H=[{heading:"Launch your app your way",subheading:"Spin up a Laravel VPS with instant provisioning or connect to your favorite cloud provider in minutes.",image:"/images/forge/homepage/launch_your_app_your_way.svg"},{heading:"A full server stack, ready in minutes",subheading:"Forge installs Nginx, PHP, MySQL, Postgres, Redis, and all the essentials on your cloud of choice.",image:"/images/forge/homepage/a_full_server_stack.svg"},{heading:"Create any type of server",subheading:"From app to database servers, provision everything with ease. Single or networked, Forge can do it all.",image:"/images/forge/homepage/create_any_type_of_server.svg"},{heading:"Laravel-built, ready for anything",subheading:"Forge deploys and supports vanilla PHP, Nuxt, Next.js, Wordpress, and Statamic apps.",image:"/images/forge/homepage/laravel_built.svg"}];function V(){return e.jsxs(e.Fragment,{children:[e.jsx(u,{number:1,title:"The deployment platform",subheading:"James Brooks · [CORE-2627] Ship the next generation of Forge",className:"font-ibm-plex-mono-title"}),e.jsxs("section",{id:"deployment-platform",children:[e.jsx(g,{children:e.jsxs("div",{className:"border-olive-light-alpha-3 pb-15 lg:px-30 border-x px-6 pt-20 lg:pb-16 lg:pt-24",children:[e.jsx(h,{level:2,children:"Simplify your deployments, build great apps"}),e.jsx("p",{className:"text-olive-light-11 mt-2.5 max-w-[600px] text-pretty text-xl",children:"Simplify deployment and server management with tools that scale, without the DevOps complexity."})]})}),e.jsx(g,{children:e.jsx("div",{className:"divide-olive-light-alpha-3 border-olive-light-alpha-3 grid grid-rows-2 divide-y border-x border-t md:grid-cols-2 md:divide-y-0",children:H.map((a,t)=>e.jsx("div",{className:[t%2===1?"md:border-l":"",t>=2?"md:border-t":"","border-olive-light-alpha-3 lg:px-30 lg:pt-15 overflow-hidden p-6 pb-0"].filter(
2Boolean).join(" "),children:e.jsxs("div",{children:[e.jsx(h,{level:3,children:a.heading}),e.jsx("p",{className:"text-olive-light-11 mt-1.5 max-w-sm text-pretty text-base",children:a.subheading}),e.jsxs("div",{className:"relative mt-12 max-h-[248px] w-[418px] overflow-hidden",children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 bg-gradient-to-b from-transparent via-transparent to-white to-90%"}),e.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 bg-gradient-to-r from-transparent via-transparent via-75% to-white to-95%"}),e.jsx("div",{className:"object-top-left group h-full w-full object-cover",children:e.jsx("img",{src:a.image,alt:a.heading,className:"object-top-left h-full object-cover",loading:"lazy"})})]})]})},a.heading))})}),e.jsx(g,{children:e.jsx("div",{className:"h-15 border-olive-light-alpha-3 border-x border-t"})})]})]})}const G=[{heading:"Simple, fast, secure",subheading:"Spin up servers, deploy with zero downtime, and ship without SSL headaches.",image:"/images/forge/homepage/why-forge/lock.svg"},{heading:"Own your infrastructure",subheading:"Choose your cloud, or use Laravel VPS. Forge handles it all, while you keep root access to every server.",image:"/images/forge/homepage/why-forge/server.svg"},{heading:"Crafted for productivity",subheading:"Clean UI with the fewest clicks and toggles. Move faster from code to production.",image:"/images/forge/homepage/why-forge/bolt.svg"}];function U(){return e.jsxs(e.Fragment,{children:[e.jsx(u,{number:2,title:"Why Forge",subheading:"Ryan Chandler · [CORE-2004] Integrate Cloudflare for on-forge.com domains"}),e.jsxs("section",{id:"why-forge",children:[e.jsx(g,{children:e.jsxs("div",{className:"border-olive-light-alpha-3 lg:px-30 border-x px-6 pb-16 pt-24",children:[e.jsx(h,{level:2,children:"An unbeatable standard for control without complexity"}),e.jsx("p",{className:"text-olive-light-11 mt-2.5 max-w-[940px] text-pretty text-xl",children:"Forge is the next-generation server management platform built for developers who want speed, control, and ease of use. Designed by the Laravel team, it supports any modern web app stack."})]})}),e.jsx(g,{children:e.jsx("div",{className:"border-olive-light-alpha-3 border-x border-t lg:px-20",children:e.jsx("div",{className:"divide-olive-light-alpha-3 border-olive-light-alpha-3 grid divide-y lg:grid-cols-3 lg:divide-y-0 lg:border-x",children:G.map((a,t)=>e.jsx("div",{className:[t>0?"lg:border-l":"","border-olive-light-alpha-3 overflow-hidden p-6 lg:p-10"].filter(Boolean).join(" "),children:e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsxs("div",{className:"flex items-center gap-2 lg:flex-col lg:items-start lg:gap-0",children:[e.jsx("img",{src:a.image,alt:a.heading,className:"h-5 w-4 rounded-lg lg:w-6 lg:-translate-y-1",loading:"lazy"}),e.jsx(h,{level:3,className:"mt-0 lg:mt-3",children:a.heading})]}),e.jsx("p",{className:"text-olive-light-11 mt-1.5",children:a.subheading})]})},a.heading))})})}),e.jsx(g,{children:e.jsx("div",{className:"h-15 border-olive-light-alpha-3 border-x border-t"})})]})]})}const f=[{svg:"/images/forge/homepage/testimonials/transistor.svg",svgActive:"/images/forge/homepage/testimonials/transistor_active.svg",quote:"Forge makes it easy to manage the production and staging versions of our site.",author:"Justin Jackson",role:"Co-founder",company:"Transistor.fm",image:"/images/forge/homepage/testimonials/Justin_Jackson.svg",servers:"2 servers",applications:"10 applications"},{svg:"/images/forge/homepage/testimonials/astalty.svg",svgActive:"/images/forge/homepage/testimonials/astalty_active.svg",quote:"Forge allows our engineering team to deploy over 700 times a month, and its simplicity allows even me (who hates managing infrastructure) to deploy servers in just a few minutes.",author:"James Mooring",role:"Co-founder",company:"Astalty",image:"/images/forge/homepage/testimonials/James_Mooring.svg",servers:"9 servers",applications:"13 applications"},{svg:"/images/forge/homepage/testimonials/mumsnet.svg",svgActive:"/images/forge/homepage/testimonials/mumsnet_active.svg",quote:"Forge takes the pain out of server management. It means faster deployments, fewer headaches, and complete confidence in how 
2we ship code.",author:"Matt Davis",role:"CTO",company:"Mumsnet",image:"/images/forge/homepage/testimonials/Matt_Davis.svg",servers:"19 servers",applications:"36 applications"},{svg:"/images/forge/homepage/testimonials/likker.svg",svgActive:"/images/forge/homepage/testimonials/likker_active.svg",quote:"In the last years, Forge has been my silent DevOps partner, saving me endless hours, removing server headaches, and paying for itself every year. It's the first tool I'm sure to use on every new project.",author:"Marcelo Guerra",role:"CTO",company:"Likker",image:"/images/forge/homepage/testimonials/Marcelo_Guerra.svg",servers:"2 servers",applications:"4 applications"}],$=8e3;function J(){const[a,t]=m.useState(0),[l,s]=m.useState(!1),n=m.useRef(null),r=m.useRef([]),c=m.useCallback(()=>{n.current&&(clearInterval(n.current),n.current=null)},[]),d=m.useCallback(()=>{c(),n.current=setInterval(()=>{t(o=>(o+1)%f.length)},$)},[c]),p=m.useCallback(o=>{const i=r.current[o];i&&i.scrollIntoView({behavior:"smooth",inline:"nearest",block:"nearest"})},[]),v=m.useCallback(o=>{t(o),p(o),l&&d()},[l,d,p]);return m.useEffect(()=>(l?d():c(),c),[l,d,c]),m.useEffect(()=>{const o=()=>{s(window.innerWidth>=1024)};return o(),window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[]),e.jsxs(e.Fragment,{children:[e.jsx(u,{number:3,title:"Battle-tested by the best",subheading:"Oliver Nybroe · [CORE-1667] Set PHPStan to max level"}),e.jsxs("section",{id:"battle-tested",children:[e.jsx(g,{children:e.jsx("div",{className:"border-x border-olive-light-alpha-3",children:e.jsx("div",{className:"hide-scrollbar flex divide-x divide-olive-light-alpha-3 overflow-x-scroll focus:outline-hidden lg:grid lg:grid-cols-4",children:f.map((o,i)=>e.jsxs("div",{ref:x=>{r.current[i]=x},className:["group relative flex min-w-1/2 items-center justify-center border-b border-olive-light-alpha-3 px-8 py-7 transition-all duration-300 hover:bg-olive-light-1 lg:min-w-0 lg:px-10 lg:py-9",a===i?"bg-olive-light-alpha-1":"",i<f.length-1?"border-r":""].filter(Boolean).join(" "),onClick:()=>v(i),children:[e.jsx("img",{className:"max-h-8 lg:h-auto",src:a===i?o.svgActive:o.svg,alt:`${o.company} logo`,loading:"lazy"}),a===i&&e.jsx("div",{className:"absolute -bottom-px left-0 h-px w-full overflow-hidden",children:e.jsx("div",{className:"h-full w-full origin-left bg-forge-dark-9",style:l?{animation:"progressBar 8s linear infinite"}:void 0})})]},o.company))})})}),e.jsx(g,{children:e.jsxs("div",{className:"grid min-h-[430px] grid-cols-2 border-x border-olive-light-alpha-3 lg:grid-cols-4",children:[e.jsx("div",{className:"relative col-span-1 flex items-center justify-center border-olive-light-alpha-3 lg:border-r",children:e.jsx("div",{className:"relative mt-6 aspect-square w-full min-w-54 lg:mt-0 lg:aspect-auto lg:h-110 lg:w-full lg:max-w-84",children:f.map((o,i)=>e.jsx("img",{src:o.image,alt:o.author,className:j("absolute inset-0 h-full w-full mask-radial-from-0 mask-radial-farthest-side mask-radial-at-[60%_40%] object-contain transition-[opacity,translate]",a===i?"translate-y-0 opacity-100 duration-500 ease-out":"translate-y-4 opacity-0 duration-200 ease-in"),loading:"lazy"},o.author))})}),e.jsxs("div",{className:"col-span-2 flex flex-col lg:col-span-3",children:[e.jsx("blockquote",{className:"grid min-h-58 flex-1 p-6 lg:min-h-132 lg:px-16 lg:py-40",children:f.map((o,i)=>e.jsxs("div",{className:j("col-start-1 row-start-1 transition-[opacity,translate]",a===i?"translate-y-0 opacity-100 delay-100 duration-500 ease-out":"translate-y-4 opacity-0 duration-200 ease-in"),children:[e.jsx("p",{className:"max-w-3xl font-merriweather text-2xl tracking-[-0.4px] text-olive-light-12 lg:text-28",children:o.quote}),e.jsxs("cite",{className:"mt-8 block font-sans text-sm font-medium text-olive-light-11 not-italic",children:[e.jsx("span",{children:o.author}),e.jsxs("span",{className:"font-normal",children:[", ",o.role]})]})]},o.author))}),e.jsx("div",{className:"grid border-t border-olive-light-alpha-3 bg-[#FCFDFC] p-6 py-3 lg:px-16",children:f.map((o,i)=>e.jsxs("div",{className:j("col-start-1 row-start-1 font-ibm-plex-mono text-xs text-olive-light-9 transition-[opacity,translate]",a===i?"translate-y-0 opacity-100 delay-150 duration-500 ease-out":"translate-y-4 opacity-0 duration-200 ease-in"),children:[e.jsx("span",{className:"text-olive-light-12",children:o.company})," runs ",e.jsx("span",{className:"text-olive-light-12",children:o.servers})," and ",e.jsx("span",{className:"text-olive-light-12",children:o.applications})," on Forge."]},o.company+"-footer"))})]})]})}),e.jsx(g,{children:e.jsx("div",{className:"h-15 border-x border-t border-olive-light-alpha-3"})})]})]})}const K=[{heading:"Instant provisioning",subheading:"Spin up new machines in under 10 seconds with instant servers, ready to run out of the box.",image:"/images/forge/homepage/instant_provisioning.svg"},{heading:"Web terminal",subheading:"Real-time shared terminal sessions let your team collaborate directly and securely on Forge.",image:"/images/forge/homepage/terminal_1.svg"}],W=[{heading:"No external setup",subheading:"Provision and manage servers without leaving Forge."}
2,{heading:"Centralized billing",subheading:"Keep your infrastructure and payments in one place."},{heading:"Stay ahead of issues",subheading:"Track CPU, memory, and usage on your dashboard as it happens."}];function q(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{id:"laravel-vps",className:"scroll-mt-16",children:e.jsx(u,{variant:"secondary",number:4,title:"Laravel VPS",subheading:"Kieran Brown · [CORE-0022] Integrate Terminal service with Forge"})}),e.jsxs("section",{className:"bg-[#151715] text-neutral-200",children:[e.jsx(g,{children:e.jsxs("div",{className:"border-olive-dark-4 pb-15 lg:px-30 border-x px-6 pt-20 lg:pb-16 lg:pt-24",children:[e.jsx(h,{level:2,children:"A virtual private server to save time and money"}),e.jsx("p",{className:"text-olive-dark-11 mt-4 max-w-[600px] text-pretty text-xl",children:"Laravel VPS keeps costs down and lets you provision in seconds, not minutes. Set up with a single click, collaborate in real time."})]})}),e.jsx(g,{children:e.jsxs("div",{className:"border-olive-dark-4 border-x border-t",children:[e.jsx("div",{className:"divide-olive-light-alpha-3 border-olive-dark-4 grid divide-y border-b md:grid-cols-2 md:divide-y-0",children:K.map((a,t)=>e.jsx("div",{className:[t>0?"md:border-l":"","max-h-110 border-olive-dark-4 lg:px-30 lg:pt-15 overflow-hidden p-6 pb-0"].filter(Boolean).join(" "),children:e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsx(h,{level:3,children:a.heading}),e.jsx("p",{className:"text-olive-dark-11 mt-1.5 max-w-sm text-pretty text-base",children:a.subheading}),e.jsxs("div",{className:"relative mt-12 max-h-[248px] w-[418px]",children:[e.jsx("div",{className:"bg-gradient-image-dark pointer-events-none absolute inset-0 z-10 translate-y-1"}),e.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 translate-x-1 bg-gradient-to-r from-transparent via-transparent via-65% to-[#151715]"}),t===1?e.jsxs(e.Fragment,{children:[e.jsx("img",{src:a.image,alt:a.heading,className:"object-top-left aspect-[418/231] w-[418px] min-w-[418px] translate-y-1 rounded-t-lg object-cover",loading:"lazy"}),e.jsx("div",{className:"bg-gradient-image-dark pointer-events-none absolute inset-0 z-10 h-12 translate-y-48"}),e.jsx("img",{src:"/images/forge/homepage/terminal_2.svg",alt:a.heading,className:"-translate-y-34 absolute z-20 w-full max-w-xs -translate-x-4 roun
2ded-t-lg lg:-translate-x-12",loading:"lazy"})]}):e.jsx("div",{className:"object-top-left group h-full w-full object-cover",children:e.jsx("img",{src:a.image,alt:a.heading,className:"object-top-left h-full object-cover",loading:"lazy"})})]})]})},a.heading))}),e.jsx("div",{className:"divide-olive-light-alpha-3 border-olive-dark-4 grid divide-y lg:mx-16 lg:grid-cols-3 lg:divide-y-0 lg:border-x",children:W.map((a,t)=>e.jsx("div",{className:[t>0?"lg:border-l":"","border-olive-dark-4 lg:p-15 overflow-hidden p-6"].filter(Boolean).join(" "),children:e.jsxs("div",{className:"h-full",children:[e.jsx(h,{level:3,children:a.heading}),e.jsx("p",{className:"text-olive-dark-11 mt-1.5 max-w-sm text-pretty text-base",children:a.subheading})]})},a.heading))})]})}),e.jsx(g,{children:e.jsx("div",{className:"h-15 border-olive-dark-4 border-x border-t"})})]})]})}const Z=[{heading:"Scriptable deployments, zero downtime",subheading:"Automate your deployments with scripts and ship updates instantly.",image:"/images/forge/homepage/scriptable_deployments.svg"},{heading:"Free SSL certificates",subheading:"Secure your sites from the get-go with free, automated SSL.",image:"/images/forge/homepage/free_ssl_certificates.svg"},{heading:"Databases, managed",subheading:"Provision, back up, and monitor database clusters without leaving Forge.",image:"/images/forge/homepage/databases_and_backups_1.svg",image2:"/images/forge/homepage/databases_and_backups_2.svg"},{heading:"Test faster with hosted domains",subheading:"Skip domain setup and launch your app instantly on a on-forge.com domain.",image:"/images/forge/homepage/hosted_domains.svg"}],Y=[{heading:"Queues as they should be",subheading:"Start and manage supervised queue workers directly. No more manual Supervisor configuration."},{heading:"Task & job scheduling",subheading:"Schedule recurring tasks with predefined intervals or custom cron expressions."},{heading:"⌘K anything",subheading:"Do everything without reaching for the mouse with Forge's feature-rich command palette."}];function Q(){return e.jsxs(e.Fragment,{children:[e.jsx(u,{number:5,title:"Features that matter",subheading:"Irina Nita · [CORE-1528] Implement notification center actions"}),e.jsxs("section",{id:"features-that-matter",children:[e.jsx(g,{children:e.jsxs("div",{className:"border-olive-light-alpha-3 pb-15 lg:px-30 border-x px-6 pt-20 lg:pb-16 lg:pt-24",children:[e.jsx(h,{level:2,children:"Made for teams who just ship"}),e.jsx("p",{className:"text-olive-light-11 mt-4 max-w-[600px] text-pretty text-xl",children:"Deploy, test, and scale your applications without the setup hassle. Build faster and with delight."})]})}),e.jsx(g,{children:e.jsx("div",{className:"divide-olive-light-alpha-3 border-olive-light-alpha-3 grid grid-rows-2 divide-y border-x border-t md:grid-cols-2 md:divide-y-0",children:Z.map((a,t)=>e.jsx("div",{className:[t%2===1?"md:border-l":"",t>=2?"md:border-t":"","max-h-110 border-olive-light-alpha-3 lg:px-30 lg:pt-15 overflow-hidden px-6 py-10 pb-0"].filter(Boolean).join(" "),children:e.jsxs("div",{className:"overflow-hidden",children:[e.jsx(h,{level:3,children:a.heading}),e.jsx("p",{className:"text-olive-light-11 mt-1.5 max-w-sm text-pretty text-base",children:a.subheading}),e.jsxs("div",{className:"relative mt-12 h-full max-h-[248px] w-[418px]",children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 bg-gradient-to-b from-transparent via-transparent to-white to-90%"}),e.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 bg-gradient-to-r from-transparent via-transparent via-75% to-white to-95%"}),t===2?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"pt-10",children:e.jsx("img",{src:a.image,alt:a.heading,className:"w-[418px] min-w-[418px] rounded-t-lg",loading:"lazy"})}),e.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 -translate-y-16 translate-x-12 bg-gradient-to-r from-transparent via-transparent via-75% to-white"}),e.jsx("img",{src:a.image2,alt:a.heading,className:"absolute left-0 top-0 hidden w-full -translate-y-6 translate-x-56 rounded-t-lg xl:block",loading:"lazy"})]}):e.jsx("img",{src:a.image,alt:a.heading,className:"object-top-left h-full object-cover",loading:"lazy"})]})]})},a.heading))})}),e.jsx(g,{children:e.jsx("div",{className:"divide-olive-light-alpha-3 border-olive-light-alpha-3 lg:px-15 grid divide-y border-x border-t lg:grid-cols-3 lg:divide-y-0",children:Y.map((a,t)=>e.jsx("div",{className:[t>0?"lg:border-l":"","border-olive-light-alpha-3 lg:p-15 p-6"].filter(
2Boolean).join(" "),children:e.jsxs("div",{children:[e.jsx(h,{level:3,children:a.heading}),e.jsx("p",{className:"text-olive-light-11 mt-1.5",children:a.subheading})]})},a.heading))})}),e.jsx(g,{children:e.jsx("div",{className:"h-15 border-olive-light-alpha-3 border-x border-t"})})]})]})}function X(a){const t='<span class="text-olive-light-12">',l="</span>",s=[];let n=a,r=0;for(;n.length>0;){const c=n.indexOf(t);if(c===-1){s.push(n);break}c>0&&s.push(n.slice(0,c));const d=n.slice(c+t.length),p=d.indexOf(l);if(p===-1){s.push(d);break}s.push(e.jsx("span",{className:"text-olive-light-12",children:d.slice(0,p)},r++)),n=d.slice(p+l.length)}return s}function w({name:a,role:t,title:l,company:s,content:n,avatar:r,link:c}){const d=t??(l&&s?`${l} @${s}`:null),p=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex items-start gap-3",children:e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("img",{src:r??"/placeholder.svg",alt:a,className:"size-8 rounded-full object-cover shadow-inner",loading:"lazy"}),e.jsx("div",{className:"text-olive-light-12 mt-2.5 text-sm font-medium",children:a}),d&&e.jsx("div",{className:"text-olive-light-11 mt-0.5 text-[12px]/4",children:d})]})}),e.jsx("p",{className:"text-olive-light-11 mt-2 text-sm",children:X(n)})]}),v="-ml-px h-full break-inside-avoid border border-weak-border px-5 py-4 md:-mt-px md:h-auto bg-[#fcfdfc]";return c?e.jsx(F,{href:c,target:"_blank",rel:"noopener noreferrer",className:`${v} hover:bg-olive-light-2/90 block transition-all duration-200`,children:p}):e.jsx("div",{className:v,children:p})}const N=[{name:"Simon Hamp",role:"Co-founder of Native PHP",content:'<span class="text-olive-light-12">We wouldn’t have been able to build NativePHP or Bifrost without Forge</span>. It allowed us to forget about hosting so we could focus on making awesome products.',avatar:"/images/forge/homepage/testimonials/Simon_Hamp.jpg",link:"https://twitter.com/simonhamp"},{name:"Nolan Nordlund",role:"Founder of Project Rebel",content:'<span class="text-olive-light-12">Forge has made deploying apps so simple and easy.</span> Once I have a project installed, I just need a tiny GitHub Action to get code from my machine to the live website in about 30 seconds. Magical.',avatar:"/images/forge/homepage/testimonials/Nolan_Nordlund.jpg",link:"https://x.com/nolannordlund/status/1970207040145645748"},{name:"Alex MacArthur",role:"Sr. Software Engineer at Ramsey",content:'<span class="text-olive-light-12">Forge is one of those services you couldn’t pay me to leave.</span> The fact that I can offload the cognitive overhead of server management with such a great user experience for just a few bucks a month is still bonkers to me.',avatar:"/images/forge/homepage/testimonials/Alex_MacArthur.jpg",link:"https://x.com/amacarthur/status/1970145599497621704"},{name:"Sam Berry",role:"Managing Partner at 25Digital",content:'As a developer, I’ve never been fully confident managing servers and security. <span class="text-olive-light-12">Laravel Forge takes away that uncertainty, it handles the hard parts and gives me the confidence to deploy safely</span>, so I can focus on writing code and delivering projects.',avatar:"/images/forge/homepage/testimonials/Sam_Berry.jpg",link:"https://x.com/SamBerryUK/status/1970141466623082669"},{name:"Camilo Martinez",role:"Owner of Somnio Technology Solutions",content:'I moved away from managing load balancers/servers, setting PHP isolation, Nginx configuration, and Docker images to start using Forge. <span class="text-olive-light-12">Best decision ever, my deployment time went from 5-10 minutes to under 1 minute.</span>',avatar:"/images/forge/homepage/testimonials/Camilo_Martinez.jpg",link:"https://x.com/cemart7/status/1970157829911712202"},{name:"Dan Johnson",role:"Head of Engineering at TRYBE",content:'Using Forge is a no brainer - <span class="text-olive-light-12">it lets me spend more time building a product and less time managing servers.</span>',avatar:"/images/forge/homepage/testimonials/Dan_Johnson.jpg",link:"https://www.linkedin.com/feed/update/urn:li:activity:7375908595256922112?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7375908595256922112%2C7375932420778524673%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287375932420778524673%2Curn%3Ali%3Aactivity%3A7375908595256922112%29"},{name:"Herman Schutte",role:"Founder of SiteSpeakAI",content:'Been using Forge to manage 60+ server instances for the past 10 years. <span class="text-olive-light-12">Can’t imagine using anything else to provision, deploy, and manage all my apps’ infrastru
2cture</span>. As a solo founder, it’s a must-have!',avatar:"/images/forge/homepage/testimonials/Herman_Schutte.jpg",link:"https://x.com/hermanschutte/status/1970140004308615267"},{name:"Mike Elghali",role:"CTO at CEGELEM",content:'I’ve been using Forge since 2016 across 2 French startups with zero issues. <span class="text-olive-light-12">It allowed me to focus entirely on technical development without worrying about server administration and networking. Huge time saver and peace of mind, exactly what you need when building products that matter.</span>',avatar:"/images/forge/homepage/testimonials/Mike_Elghali.jpg",link:"https://x.com/mike_elghali/status/1970140225834803393"},{name:"Wendell Adriel",role:"Engineering Manager at TrackStreet",content:'<span class="text-olive-light-12">Migrated two websites in less than 30 minutes using Forge and Laravel VPS</span>. Most of the time was spent just waiting for DNS propagation and SSL certificates. Just a few clicks here and there, some configs, and everything was just working!',avatar:"/images/forge/homepage/testimonials/Wendell_Adriel.jpg",link:"https://x.com/wendell_adriel/status/1970157310698774740"},{name:"John Champ",role:"Founder of Pixelcave",content:'<span class="text-olive-light-12">With Forge, I don’t worry about managing my servers. I just focus on growing my online business.</span>',avatar:"/images/forge/homepage/testimonials/John_Champ.jpg",link:"https://x.com/pixelcave_john/status/1970139283429236976"},{name:"Bert De Swaef",role:"Founder at Vulpo Digital Studio",content:'<span class="text-olive-light-12">Forge just makes our lives easier.</span> With Forge we can focus on building and shipping, with confidence.',avatar:"/images/forge/homepage/testimonials/Bert_De_Swaef.jpg",link:"https://x.com/BurtDS/status/1970155882404282530"},{name:"Michael LaRoy",role:"Founder of Cascadia Digital",content:'Forge is the perfect tool for deploying my Statamic sites. Deploying to client servers is so easy, <span class="text-olive-light-12">I can’t imagine doing my job without it now.</span>',avatar:"/images/forge/homepage/testimonials/Michael_Laroy.jpg",link:"https://x.com/laroymike/status/1970155542145613950"},{name:"Irsyad A. Panjaitan",role:"Founder of Intent UI",content:'<span class="text-olive-light-12">Forge saves me time so I can focus on deploying, not managing servers.</span>',avatar:"/images/forge/homepage/testimonials/Irsyad_Panjaitan.jpg",link:"https://x.com/irsyadadl/status/1970149706283327614"},{name:"Paulo Castellano",role:"Founder of Pipeback",content:'I’ve been a Forge user since 2014, and it completely transformed how I work with servers. <span class="text-olive-light-12">What used to take hours of manual configuration now happens in minutes.</span>',avatar:"/images/forge/homepage/testimonials/Paulo_Castellano.jpg",link:"https://x.com/paulocastellano/status/1970141077316485323"},{name:"John Koster",role:"Senior Software Developer at Razor Tracking",content:"It just works.",avatar:"/images/forge/homepage/testimonials/John_Koster.jpg",link:"https://x.com/johnmkoster/status/1970151682727412057"},{name:"Chris Renga",role:"CTO of ePass",content:'I’ve been bringing Forge into agencies and startups for years. <span class="text-olive-light-12">It streamlines workflows, adds consistency across projects, and saves a huge amount of time.</span> The API makes it simple to embed Forge into internal tools and processes for even greater eff
2iciency.',avatar:"/images/forge/homepage/testimonials/Chris_Renga.jpg",link:"https://x.com/Chris_Renga/status/1970159708599423075"},{name:"Kevin Kirchner",role:"CEO of True Frontier",content:'For more of a frontend developer, <span class="text-olive-light-12">Forge took such a load off my shoulders. Everything is super easy to setup, maintain, and debug. </span> I’ve been a customer for a long time and will be as long as I’m still shipping Laravel code!',avatar:"/images/forge/homepage/testimonials/Kevin_Kirchner.jpg",link:"https://x.com/kevinkirchner/status/1970162492493148396"},{name:"Pete Heslop",role:"Managing Director at Steadfast Collective",content:'Forge is our go-to for deployment and server management. It’s simple to use, <span class="text-olive-light-12">while not forgoing the detail and power features we often rely on.</span>',avatar:"/images/forge/homepage/testimonials/Pete_Heslop.jpg",link:"https://www.linkedin.com/feed/update/urn:li:activity:7375908595256922112?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7375908595256922112%2C7376575081516306433%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287376575081516306433%2Curn%3Ali%3Aactivity%3A7375908595256922112%29"},{name:"Mustaf Mudane",role:"",content:'<span class="text-olive-light-12">Never worried about headaches of devops setup</span>, all I have to do is provide the repo and my domains, everything is taken care of by forge. Even better all your ssh and datbase are click away from your workstation.',avatar:"/images/forge/homepage/testimonials/Mustaf_Mudane.jpg",link:"https://x.com/mudanemustaf/status/1970163106828685383"},{name:"Jesse Leite",role:"Software Developer at SavvyCal",content:'I’ve been a happy Forge user since the beginning! <span class="text-olive-light-12">It’s really the ultimate deployment/devops solution</span> for anything Laravel 🤌',avatar:"/images/forge/homepage/testimonials/Jesse_Leite.jpg",link:"https://www.linkedin.com/feed/update/urn:li:activity:7375908595256922112?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7375908595256922112%2C7375985680704921600%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287375985680704921600%2Curn%3Ali%3Aactivity%3A7375908595256922112%29"},{name:"Trey Villafane",role:"",content:'Makes being a one-man-band much, much easier. <span class="text-olive-light-12">Truly a tool built for builders.</span>',avatar:"/images/forge/homepage/testimonials/Trey_Villafane.jpg",link:"https://x.com/TreyVillafane/status/1970159616538624010"},{name:"David Adigwu",role:"Software Engineer at Glyde Technology Limited",content:'<span class="text-olive-light-12">Deployments are the last thing I need to stress about</span> Forge takes care of that while I build fintech solutions',avatar:"/images/forge/homepage/testimonials/David_Adigwu.jpg",link:"https://x.com/DavidAdigwu/status/1970138289052037144"},{name:"Eli",role:"CEO of Ectoplasmic Solutions",content:'<span class="text-olive-light-12">If it wasn’t for Forge, I wouldn’t be able to handle my client list with ease.</span> From clients who want me to host their sites, to others who use DO but want me to make their server (via API), I can manage them all from one dashboard!',avatar:"/images/forge/homepage/testimonials/Eli.jpg",link:"https://x.com/theecgaming1/status/1970141287337889849"},{name:"Kristi Tanellari",role:"E-Commerce Developer at Muscleflow Apparel",content:'<span class="text-olive-light-12">Forge was my saving grace</span> when I didn’t know how to deal with setting up digital ocean droplets',avatar:"/images/forge/homepage/testimonials/Kristi_Tanellari.jpg",link:"https://x.com/KristiTanellari/status/1970151777170489509"},{name:"Muhammad Talha",role:"",content:'<span class="text-olive-light-12">Forge has streamlined my deployments, saving hours every week</span> and scaling Laravel apps with ease. Using it since March 2019',avatar:"/images/forge/homepage/testimonials/Muhammad_Talha.jpg",link:"https://x.com/talha8018/status/1970140576831115656"},{name:"Alexandre To",role:"",content:'Final thoughts <span class="text-olive-light-12">Laravel Forge is a must-have: simple, reliable, and powerful</span>, it makes Laravel/PHP deployment fast, seamless, and stress-free.',avatar:"/images/forge/homepage/testimonials/Alexandre_To.jpg",link:"https://x.com/AlexandreTo_/status/1970137508001222733"}];function k(a,t){const l=Array.from({length:t},()=>[]),s=Math.floor(a.length/t),n=a.length%t;for(let r=0;r<s*t;r++)l[r%t].push(a[r]);for(let r=0;r<n;r++){const c=t-n+r;l[c].push(a[s*t+r])}return l}function ee(a,t){const l=Array.from({length:t},()=>[]);return a.forEach((s,n)=>{l[n%t].push(s)}),l}function ae({testimonials:a}){const t=m.useRef(null),l=ee(a,2);return m.useEffect(()=>{const s=t.current;if(!s||window.innerWidth>=768)return;const n=setTimeout(()=>{const r=(s.scrollWidth-s.clientWidth)/2;s.scrollLeft=r},100);return()=>clearTimeout(n)},[]),e.jsx("div",{className:"md:hidden",children:e.jsx("div",{ref:t,className:"hide-scrollbar max-w-[calc(100%+3rem)] overflow-x-auto pb-4 -mx-6",children:e.jsx("div",{className:"flex w-max flex-col",children:l.map((s,n)=>e.jsx("div",{className:n===0?"flex min-h-[202px] w-max":"-mt-px ml-12 flex min-h-[202px] w-max",children:s.map(r=>e.jsx("div",{className:"w-72 flex-shrink-0",children:e.jsx(w,{name:r.name,role:r.role,content:r.content,avatar:r.avatar,link:r.link})},r.name))},n))})})})}const te=["md:mt-20","md:mt-0","md:mt-20"],se=["lg:mt-40","lg:mt-20","lg:mt-0","lg:mt-20","lg:mt-40"];function ie({testimonials:a,showAll:t}){const l=k(a,3),s=k(a,5),n=t?"mx-auto pt-px pl-px":"mask-b-from-50% mx-auto pt-px pl-px max-h-[750px] overflow-hidden";return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`${n} hidden md:grid lg:hidden`,children:e.jsx("div",{className:"grid grid-cols-3",children:l.map((r,c)=>e.jsx("div",{className:`${te[c]??""} flex flex-col`,children:r.map(d=>e.jsx(w,{name:d.name,role:d.role,content:d.content,avatar:d.avatar,link:d.link},d.name))},c))})}),e.jsx("div",{className:`${n} hidden lg:grid`,children:e.jsx("div",{className:"grid grid-cols-5",children:s.map((r,c)=>e.jsx("div",{className:`${se[c]??""} flex flex-col`,children:r.map(d=>e.jsx(w,{name:d.name,role:d.role,content:d.content,avatar:d.avatar,link:d.link},d.name))},c))})})]})}function re(){const[a,t]=m.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx(u,{number:6,title:"Built by developers for developers",subheading:"Ash Rich · [CORE-2736] Add support for deployment rollbacks"}),e.jsx("section",{className:"relative",id:"testimonials",children:e.jsxs(g,{children:[e.jsxs("div",{className:"py-30",children:[e.jsx(h,{level:2,className:"text-center",children:"10+ years of developer love"}),e.jsxs("p",{className:"text-olive-light-11 mx-auto mt-4 max-w-2xl text-pretty text-center text-xl",children:["Crafted with passion for over a decade,",e.jsx("br",{className:"hidden md:inline"}),"loved by web artisans shaping the modern web."]})]}),e.jsx("div",{children:e.jsxs("div",{className:"max-w-8xl pb-15 lg:pb-30 relative mx-auto",children:[e.jsx(ae,{testimonials:N}),e.jsx(ie,{testimonials:N,showAll:a}),e.jsx("div",{className:`z-30 hidden text-center md:block ${a?"sticky pb-8 bottom-0 bg-gradient-to-t from-white":""}`,children:e.jsx(b,{variant:"primary",size:"md",className:"w-32",onClick:()=>t(l=>!l),children:a?"Show less":"Show more"})})]})})]})})]})}const _=[{value:"970k",label:"Servers"},{value:"3M",label:"Sites"},{value:"56.9M",label:"Deployments"},{value:"99.9%",label:"Uptime"}];function le(){return e.jsxs(e.Fragment,{children:[e.jsx(u,{variant:"secondary",number:7,title:"Robust, safe, and blazing fast",subheading:"Mohamed Said · [CORE-0110] Make Laravel VPS instant",className:"border-r-none!"}),e.jsxs("section",{className:"relative overflow-hidden bg-[#151715] text-neutral-200",id:"robust-safe-blazing-fast",children:[e.jsxs("div",{className:"relative z-10",children:[e.jsx(g,{children:e.jsxs("div",{className:"border-olive-dark-4 pb-15 lg:px-30 lg:py-25 border-x px-6 pt-20 lg:border-r-0",children:[e.jsx(h,{level:2,children:"Powering the web, at scale"}),e.jsx("p",{className:"text-olive-dark-11 mt-2.5 max-w-xl text-pretty text-xl",children:"From solo projects to enterprise infrastru
2cture, Forge keeps applications running smoothly worldwide."})]})}),e.jsx(g,{children:e.jsx("div",{className:"border-olive-dark-4 border-x border-t lg:hidden",children:e.jsx("div",{className:"divide-olive-dark-4 border-olive-dark-4 grid divide-y lg:grid-cols-4 lg:divide-x lg:divide-y-0 lg:border-x",children:_.map(a=>e.jsx("div",{className:"overflow-hidden p-6",children:e.jsx("div",{children:e.jsxs("div",{className:"relative whitespace-nowrap text-3xl font-medium",children:[e.jsx("span",{className:"bg-forge-green absolute inset-y-0 -left-6 flex h-full w-px items-center text-right"}),a.value,e.jsx("span",{className:"text-olive-dark-11 text-base font-normal",children:a.label})]})})},a.label))})})}),e.jsx(g,{children:e.jsx("div",{className:"border-olive-dark-4 hidden border-x lg:block lg:border-r-0",children:e.jsx("div",{className:"lg:mx-15 mx-auto grid max-w-2xl grid-cols-2 lg:pl-9",children:_.map(a=>e.jsx("div",{className:"p-8 lg:p-6",children:e.jsxs("div",{className:"flex items-start gap-6",children:[e.jsx("div",{className:"bg-forge-green mt-0.5 h-8 w-px flex-shrink-0"}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("div",{className:"text-olive-dark-12 text-lg font-medium lg:text-3xl",children:a.value}),e.jsx("div",{className:"text-olive-dark-11 mt-1 inline-block text-base lg:block",children:a.label})]})]})},a.label))})})}),e.jsx(g,{children:e.jsx("div",{className:"h-25 border-olive-dark-4 border-x border-t lg:border-r-0 lg:border-t-0"})})]}),e.jsx("div",{className:"relative hidden h-full lg:block",children:e.jsx("img",{src:"/images/forge/homepage/robust-safe/globe.svg",alt:"Globe icon",className:"xl:-right-18 absolute -bottom-20 -right-1/3 z-0 aspect-[704/720] w-[640px] min-w-[640px]",loading:"lazy"})})]})]})}const oe=[{heading:"Heartbeats",subheading:"Forge monitors scheduled jobs, alerting you if they're delayed.",image1:"/images/forge/homepage/heartbeats_1.svg",image2:"/images/forge/homepage/heartbeats_2.svg",image2Translate:"bottom-20 lg:-translate-x-8 -translate-x-4 w-auto"},{heading:"Health checks",subheading:"Move to production with confidence. Health checks ping apps post-deployment to verify they're live.",image1:"/images/forge/homepage/healthcheks_1.svg",image2:"/images/forge/homepage/healthcheks_2.svg",image2Translate:"bottom-8 lg:-translate-x-8 -translate-x-4 w-auto"},{heading:"Server monitoring",subheading:"Monitor CPU, disk, and load at a glance with enhanced charts. Get instant alerts when things change.",image1:"/images/forge/homepage/server_monitoring_2.svg",image2:"/images/forge/homepage/server_monitoring_1.svg",image1Translate:"w-auto translate-y-12",image2Translate:"translate-x-30 lg:-translate-y-68 -translate-y-58 h-96 w-auto lg:translate-x-64"},{heading:"Log access",subheading:"Take the guesswork out of your server maintenance with detailed records of system activities and events.",image:"/images/forge/homepage/log_access.svg"}];function ne(){return e.jsxs(e.Fragment,{children:[e.jsx(u,{number:8,title:"Monitoring",subheading:"Bruno Gaspar · [CORE-0000] Enable zero downtime deployments by default"}),e.jsxs("section",{id:"monitoring",children:[e.jsx(g,{children:e.jsxs("div",{className:"border-olive-light-alpha-3 pb-15 lg:px-30 border-x px-6 pt-20 lg:pb-16 lg:pt-24",children:[e.jsx(h,{level:2,children:"Confidence in every deployment"}),e.jsx("p",{className:"text-olive-light-11 mt-2.5 max-w-5xl text-pretty text-xl",children:"View server and app metrics, logs, and notifications in one click. Catch issues early with CPU, memory, and bandwidth charts, and integrate seamlessly with Laravel Nightwatch for first-class monitoring."})]})}),e.jsx(g,{children:e.jsx("div",{className:"divide-olive-light-alpha-3 border-olive-light-alpha-3 grid grid-rows-2 border-x md:grid-cols-2 md:divide-x",children:oe.map((a,t)=>e.jsx("div",{className:["max-h-110 lg:pt-15 lg:pl-30 border-olive-light-alpha-3 overflow-hidden border-t px-6 py-10 pb-0",t===1?"md:border-r-0":""].filter(Boolean).join(" "),children:e.jsxs("div",{children:[e.jsx(h,{level:3,children:a.heading}),e.jsx("p",{className:"text-olive-light-11 mt-1.5 max-w-sm text-pretty text-base",children:a.subheading}),e.jsxs("div",{className:"relative mt-12",children:[t===0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"pointer-events-none absolute -inset-x-20 -bottom-10 -top-5 z-30 bg-gradient-to-b from-transparent via-trans
2parent to-white lg:via-white/50"}),e.jsx("img",{src:a.image1,alt:a.heading,className:`${a.image1Translate??""} w-[418px] min-w-[418px] -translate-y-1 rounded-t-lg`,loading:"lazy"}),e.jsx("img",{src:a.image2,alt:a.heading,className:`${a.image2Translate} absolute z-40 w-[488px] min-w-[488px] rounded-t-lg`,loading:"lazy"})]}),t===1&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"pointer-events-none absolute -inset-x-20 -bottom-10 -top-5 z-30 bg-gradient-to-b from-transparent via-transparent to-white lg:via-white/50"}),e.jsx("img",{src:a.image1,alt:a.heading,className:`${a.image1Translate??""} w-[418px] min-w-[418px] -translate-y-1 rounded-t-lg`,loading:"lazy"}),e.jsx("img",{src:a.image2,alt:a.heading,className:`${a.image2Translate} absolute z-40 w-[488px] min-w-[488px] rounded-t-lg`,loading:"lazy"})]}),t===2&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"pointer-events-none absolute -inset-x-20 -bottom-10 -top-5 z-30 bg-gradient-to-b from-transparent from-30% to-white to-80%"}),e.jsx("div",{className:"to-98% pointer-events-none absolute -inset-x-8 -bottom-10 -top-8 z-10 bg-gradient-to-r from-transparent from-60% to-white"}),e.jsx("img",{src:a.image1,alt:a.heading,className:`${a.image1Translate??""} w-[418px] min-w-[418px] rounded-t-lg`,loading:"lazy"}),e.jsx("img",{src:a.image2,alt:a.heading,className:`${a.image2Translate} absolute w-[420px] min-w-[420px] rounded-t-lg`,loading:"lazy"})]}),t===3&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"pointer-events-none absolute -inset-x-20 -bottom-10 -top-5 z-30 bg-gradient-to-b from-transparent from-50% to-white to-60%"}),e.jsx("div",{className:"pointer-events-none absolute -inset-x-8 -bottom-10 -top-5 z-10 bg-gradient-to-r from-transparent via-transparent to-white lg:via-white/50"}),e.jsx("div",{className:"pointer-events-none absolute -inset-x-8 -bottom-10 -top-5 z-10 bg-gradient-to-r from-transparent from-70% via-trans
2parent to-white lg:via-white/50"}),e.jsx("div",{className:"min-w-[479px]",children:e.jsx("img",{src:a.image,alt:a.heading,className:"object-top-left h-full object-cover",loading:"lazy"})})]})]})]})},a.heading))})}),e.jsx(g,{children:e.jsx("div",{className:"h-15 border-olive-light-alpha-3 border-x border-t"})})]})]})}const de=m.lazy(()=>S(()=>import("./index-CVVxsl_W.js"),__vite__mapDeps([0,1])));function ge(){const a=I("(min-width: 1280px)");return e.jsx(C,{className:"relative h-full overflow-hidden",children:e.jsx(g,{children:e.jsxs("div",{className:"relative border-x border-olive-light-alpha-3",children:[e.jsx("img",{id:"cta-mobile-img",src:"/images/forge/homepage/mobile-hero-cta-bg.png",alt:"Laravel Forge CTA background",className:"absolute inset-x-0 bottom-0 block w-full overflow-hidden object-contain xl:hidden"}),a&&e.jsx("div",{className:"absolute inset-0 flex h-full w-full items-center",children:e.jsx("div",{className:"h-[600px] w-full",children:e.jsx(m.Suspense,{fallback:null,children:e.jsx(de,{jsonFilePath:"/animations/forge/Forge-cta.json",fps:30,ariaLabel:"Animated CTA background for Laravel Forge",className:"h-full w-full",placeholder:e.jsx(e.Fragment,{})})})})}),e.jsxs("div",{className:"relative z-20 w-full px-6 py-15 lg:px-30 lg:py-30",children:[e.jsxs("div",{children:[e.jsx(h,{level:2,className:"max-w-[360px]",children:"Take server management to the next level"}),e.jsx("p",{className:"mt-1 text-xl text-olive-light-11",children:"Your apps, your servers, none of the DevOps complexity."})]}),e.jsxs("div",{className:"mt-8 flex items-center gap-3",children:[e.jsx(b,{size:"md",href:"https://forge.laravel.com/register",variant:"primary",children:"Deploy server"}),e.jsx(b,{size:"md",href:"https://laravel.com/forge/docs/",variant:"secondary",children:"Read the docs"})]})]})]})})})}function ce(){const{faqs:a}=A().props;return e.jsxs(e.Fragment,{children:[e.jsx(L,{title:"Forge - Simple server management for PHP and beyond",description:"Instant VPS, zero-downtime deployments, automated SSL, and a modern UI. Forge gives you full control without DevOps complexity.",ogImage:"/images/forge/og/Home-min.png",canonical:"forge"}),e.jsx(E,{}),e.jsx(B,{}),e.jsx(V,{}),e.jsx(U,{}),e.jsx(J,{}),e.jsx(q,{}),e.jsx(Q,{}),e.jsx(re,{}),e.jsx(le,{}),e.jsx(ne,{}),e.jsx(ge,{}),e.jsx(M,{faqs:a}),e.jsx(C,{})]})}ce.layout=a=>e.jsx(T,{variant:"forge",children:a});export{ce as default};
3//# sourceMappingURL=page-D_k_J2pO.js.map

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.