PageSourceSearch

https://pullpo.io/_nuxt/CZb56L1a.js

js pullpo.io collected 2026-10-04 03:34:42 UTC 17,573 bytes, 1 lines download raw bytes

1import{e as O,r as N,g as T,o as a,c as l,b as n,w as g,a as e,f as r,d,F as h,m as y,i as q,v as D,t as i,p as c,n as u,_ as $}from"./OlwiJrpn.js";import{L as A}from"./C_DAmm4P.js";import{_ as E}from"./DJBetLw9.js";import{_ as R}from"./C76LT2_m.js";import{r as p}from"./Ccc8MHy4.js";import{h as U,k as I,O as B}from"./D_jVp0Wj.js";import"./DlAUqK2U.js";import"./CZZwVole.js";import"./D388sAuY.js";import"./D9PgCTvS.js";import"./CKj1ZKlA.js";import"./D-sgq6IW.js";import"./Csj2eqNg.js";import"./BJc1_rY8.js";import"./S5m3eFt1.js";import"./BRPMmljz.js";const W={class:"py-24"},K={class:"mx-auto max-w-7xl px-6 lg:px-8"},z={class:"mt-8 flex justify-center relative"},G={class:"inline-flex items-center gap-1.5"},H={class:"mt-8 flex justify-center relative"},J={class:"mt-5 flex justify-center items-center gap-x-2"},Q=["value"],X={class:"isolate mx-auto mt-10 grid grid-cols-1 gap-4 lg:mx-0 lg:max-w-none lg:grid-cols-3"},Y={class:"ring-1 ring-white/10 rounded-3xl p-8 xl:p-10 col-span-2"},Z={class:"flex flex-col md:flex-row mb-7 md:items-center md:justify-between"},ee={class:"pr-7"},te={class:"flex items-bottom justify-between"},se={class:"text-lg font-semibold leading-8 text-white"},ie={key:0,class:"md:hidden rounded-full bg-primary/50 px-2.5 py-1 mb-5 text-center text-xs font-semibold leading-5 text-white"},oe={class:"mt-2 text-sm leading-6 text-gray-300"},ae=["href","aria-describedby"],le={class:"flex flex-col"},ne={key:0,class:"hidden md:block rounded-full bg-primary/50 px-2.5 py-1 mb-5 text-center text-xs font-semibold leading-5 text-white"},re={class:"flex items-baseline gap-x-1"},de={class:"text-4xl font-bold tracking-tight text-white"},ue={key:0,class:"text-sm font-semibold leading-6 text-gray-300"},ce={class:"text-gray-300 text-sm"},me=["href","aria-describedby"],pe={class:"grid grid-cols-1 lg:grid-cols-2 gap-4"},xe={class:"flex items-center justify-between gap-x-4"},ge=["id"],fe={key:0,class:"rounded-full bg-primary px-2.5 py-1 text-xs font-semibold leading-5 text-white"},he={class:"mt-2 text-sm leading-6 text-gray-300"},be={class:"mt-6 flex items-baseline gap-x-1"},ye={class:"text-4xl font-bold tracking-tight text-white"},we={key:0,class:"text-sm font-semibold leading-6 text-gray-300"},ve={class:"text-gray-300 text-sm"},_e=["href","aria-describedby"],ke={role:"list",class:"mt-8 space-y-3 text-sm leading-6 text-gray-300 xl:mt-10"},Pe={class:"flex items-center justify-between gap-x-4"},Se=["id"],Ce={key:0,class:"rounded-full bg-primary px-2.5 py-1 text-xs font-semibold leading-5 text-white"},Ne={class:"mt-2 text-sm leading-6 text-gray-300"},Te={class:"mt-6 flex items-baseline gap-x-1"},Ve={class:"text-4xl font-bold tracking-tight text-white"},je={key:0,class:"text-sm font-semibold leading-6 text-gray-300"},Me={class:"text-gray-300 text-sm"},qe=["href","aria-describedby"],De={role:"list",class:"mt-8 space-y-3 text-sm leading-6 text-gray-300 xl:mt-10"},Ue={class:"flex items-center justify-between gap-x-4"},Ie=["id"],Be={key:0,class:"rounded-full bg-primary px-2.5 py-1 text-xs font-semibold leading-5 text-white"},Fe={class:"mt-2 text-sm leading-6 text-gray-300"},Le={class:"mt-6 flex items-baseline gap-x-1"},Oe={class:"text-4xl font-bold tracking-tight text-white"},$e={key:0,class:"text-sm font-semibold leading-6 text-gray-300"},Ae=["href","aria-describedby"],Ee={role:"list",class:"mt-8 space-y-3 text-sm leading-6 text-gray-300 xl:mt-10"},Re={key:1,class:"mx-auto mt-10 max-w-6xl"},We={class:"rounded-3xl bg-white/5 p-8 ring-1 ring-primary/40 xl:p-10"},Ke={class:"flex flex-col gap-8 lg:flex-row lg:justify-between"},ze={class:"max-w-3xl"},Ge={role:"list",class:"mt-8 space-y-3 text-sm leading-6 text-gray-300"},He={class:"flex gap-x-3"},Je={class:"flex gap-x-3"},Qe={class:"flex gap-x-3"},Xe={class:"flex gap-x-3"},Ye={class:"flex gap-x-3"},Ze={class:"flex gap-x-3"},F=5,k=1e3,ht=O({__name:"pricing",setup(et){const V=[{value:"saas",label:"SaaS",isNew:!1},{value:"buy_code",label:"Self-hosted",isNew:!0}],j=[{value:"monthly",label:"Monthly",priceSuffix:"/seat/month"},{value:"annually",label:"Annually",priceSuffix:"/seat/month"}],s=[{name:"Tooling + Insights",id:"0",href:"#",price:{monthly:30,annually:27},description:"Get the best of both worlds: identify bottlenecks and improve your team productivity.",features:[],mostPopular:!1,button:"Start 14-day free trial",link:"/app"},{name:"Tooling 🛠️",id:"1",href:"#",price:{monthly:10,annually:8},description:"Unblock the most common engineering bottlenecks.",features:["A channel per pull request","Real time Slack notifications","Automatic channel ar
1chiver","Team squad channel","Custom reminders","Pullpo CLI","1 month of Insights data","Support via Slack or email"],mostPopular:!1,button:"Start 14-day free trial",link:"/app"},{name:"Insights ✨",id:"2",href:"#",price:{monthly:22,annually:20.4},description:"Understand your team performance and improve your processes.",features:["Up to 3 years of data retention","DORA metrics","Detailed PR data exploration","Unlimited squad metrics","Working agreements","In the moment feedback","Engineering surveys","Support via Slack or email"],mostPopular:!1,button:"Start 14-day free trial",link:"/app"},{name:"Enterprise",id:"3",href:"#",price:{monthly:"Custom",annually:"Custom"},description:"Dedicated support and infrastructure for your company.",features:["Minimum of 50 seats","Everything in Tooling + Insights","User management and permissions","Custom onboarding","Workshops and training","Priority support in Slack or email","On premise installation service","Custom integrations","Custom features and workflows","Custom range of data retention","Dedicated technical support"],mostPopular:!1,button:"Contact us",link:"mailto:[email protected]"}];function M(f){const t=Math.trunc((f+1e-9)*10)/10;return Number.isInteger(t)?String(Math.trunc(t)):t.toFixed(1)}const m=N(j[1]),P=N(V[0]),b=N(5),w=T(()=>Number(b.value)||0),x=T(()=>w.value>=k),L=T(()=>`${k}+`);function S(f){if(x.value)return"Custom";const t=m.value.value,v=w.value>=F?Number(s[f].price[t]):0;return`€${M(v)}`}function C(f){if(x.value)return"Custom";const t=m.value.value,o=(w.value>=F?Number(s[f].price[t]):0)*w.value;return`€${M(o)}/month${t==="annually"?" paid annually":""}`}return(f,t)=>{const v=$;return a(),l("div",null,[n(v,{name:"web"},{default:g(()=>[e("div",W,[e("div",K,[t[18]||(t[18]=e("div",{class:"mx-auto max-w-4xl text-center"},[e("h2",{class:"text-base font-semibold leading-7 text-primary"},"Pricing"),e("p",{class:"mt-2 text-4xl font-bold tracking-tight text-white sm:text-5xl"}," Pricing plans for teams of all sizes ")],-1)),t[19]||(t[19]=e("p",{class:"mx-auto mt-5 max-w-2xl text-center text-lg leading-8 text-gray-300"}," We adapt to your team needs, pay only for the features that you use. ",-1)),e("div",z,[n(r(U),{modelValue:P.value,"onUpdate:modelValue":t[0]||(t[0]=o=>P.value=o),class:"grid grid-cols-2 gap-x-1 rounded-full bg-white/5 p-1 text-center text-xs font-semibold leading-5 text-white"},{default:g(()=>[n(r(I),{class:"sr-only"},{default:g(()=>t[4]||(t[4]=[d("Pricing mode")])),_:1}),(a(),l(h,null,y(V,o=>n(r(B),{key:o.value,as:"template",value:o},{default:g(({checked:_})=>[e("div",{class:u([_?"bg-primary":"","cursor-pointer rounded-full px-3 py-2"])},[e("span",G,[e("span",null,i(o.label),1),o.isNew?(a(),l("span",{key:0,class:u([_?"border-white/30 bg-white/20 text-white":"border-primary/40 bg-primary/20 text-primary","rounded-full border px-1.5 py-0.5 text-[10px] font-semibold uppercase leading-none"])}," New ",2)):c("",!0)])],2)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),P.value.value==="saas"?(a(),l(h,{key:0},[e("div",H,[n(r(U),{modelValue:m.value,"onUpdate:modelValue":t[1]||(t[1]=o=>m.value=o),class:"grid grid-cols-2 gap-x-1 rounded-full bg-white/5 p-1 text-center text-xs font-semibold leading-5 text-white"},{default:g(()=>[n(r(I),{class:"sr-only"},{default:g(()=>t[5]||(t[5]=[d("Payment frequency")])),_:1}),(a(),l(h,null,y(j,o=>n(r(B),{key:o.value,as:"template",value:o},{default:g(({checked:_})=>[e("div",{class:u([_?"bg-primary":"","cursor-pointer rounded-full px-2.5 py-1"])},[e("span",null,i(o.label),1)],2)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),e("div",J,[q(e("input",{id:"seats-€{seats}","onUpdate:modelValue":t[2]||(t[2]=o=>b.value=o),type:"range",min:"1",max:k,class:"w-72 mb-2 lg:w-[600px] h-1 mt-2 bg-black-normal accent-primary caret-primary rounded-lg appearance-none"},null,512),[[D,b.value,void 0,{number:!0}]]),x.value?(a(),l("input",{key:1,value:L.value,class:"text-white text-lg font-semi bg-black-dark focus:outline-none border-0 ring-2 ring-black-normal rounded-lg text-center",type:"text",readonly:""},null,8,Q)):q((a(),l("input",{key:0,"onUpdate:modelValue":t[3]||(t[3]=o=>b.value=o),class:"text-white text-lg font-semi bg-black-dark accent-primary focus:outline-none border-0 ring-2 ring-black-normal focus:ring-2 focus:ring-primary caret-primary rounded-lg [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",type:"number",min:"1",max:k},null,512)),[[D,b.value,void 0,{number:!0}]]),t[6]||(t[6]=e("span",{class:"text-white text-lg font-semi"},"seats",-1))]),e("div",X,[e("div",Y,[e("div",Z,[e("div",ee,[e("div",te,[e("h3",se,i(s[0].name),1),s[1].mostPopular?(a(),l("p",ie," ✨ Best value/price ")):c("",!0)]),e("p",oe,i(s[0].description),1),e("a",{href:s[0].link,"aria-describedby":s[0].id,class:u([s[0].mostPopular?"bg-primary text-white shadow-sm hover:bg-primary focus-visible:outline-primary":"bg-white/10 text-white hover:bg-white/20 focu
1s-visible:outline-white","hidden md:block mt-6  rounded-md py-2 px-3 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"])},i(s[1].button),11,ae)]),e("div",le,[s[1].mostPopular?(a(),l("p",ne," ✨ Best value/price ")):c("",!0),e("p",re,[e("span",de,i(S(0)),1),x.value?c("",!0):(a(),l("span",ue,i(m.value.priceSuffix),1))]),e("span",ce,"Total: "+i(C(0)),1),e("a",{href:s[0].link,"aria-describedby":s[0].id,class:u([s[0].mostPopular?"bg-primary text-white shadow-sm hover:bg-primary focus-visible:outline-primary":"bg-white/10 text-white hover:bg-white/20 focus-visible:outline-white"," md:hidden mt-6  rounded-md py-2 px-3 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"])},i(s[1].button),11,me)])]),e("div",pe,[e("div",{class:u([s[1].mostPopular?"bg-white/5 ring-2 ring-primary":"ring-1 ring-white/10","rounded-3xl p-8 xl:p-10"])},[e("div",xe,[e("h3",{id:s[1].id,class:"text-lg font-semibold leading-8 text-white"},i(s[1].name),9,ge),s[1].mostPopular?(a(),l("p",fe," Most popular ")):c("",!0)]),e("p",he,i(s[1].description),1),e("p",be,[e("span",ye,i(S(1)),1),x.value?c("",!0):(a(),l("span",we,i(m.value.priceSuffix),1))]),e("span",ve,"Total: "+i(C(1)),1),e("a",{href:s[1].link,"aria-describedby":s[1].id,class:u([s[1].mostPopular?"bg-primary text-white shadow-sm hover:bg-primary focus-visible:outline-primary":"bg-white/10 text-white hover:bg-white/20 focus-visible:outline-white","mt-6 block rounded-md py-2 px-3 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"])},i(s[1].button),11,_e),e("ul",ke,[(a(!0),l(h,null,y(s[1].features,o=>(a(),l("li",{key:o,class:"flex gap-x-3"},[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),d(" "+i(o),1)]))),128))])],2),e("div",{class:u([s[2].mostPopular?"bg-white/5 ring-2 ring-primary":"ring-1 ring-white/10","rounded-3xl p-8 xl:p-10"])},[e("div",Pe,[e("h3",{id:s[2].id,class:"text-lg font-semibold leading-8 text-white"},i(s[2].name),9,Se),s[2].mostPopular?(a(),l("p",Ce," Most popular ")):c("",!0)]),e("p",Ne,i(s[2].description),1),e("p",Te,[e("span",Ve,i(S(2)),1),x.value?c("",!0):(a(),l("span",je,i(m.value.priceSuffix),1))]),e("span",Me,"Total: "+i(C(2)),1),e("a",{href:s[2].link,"aria-describedby":s[2].id,class:u([s[2].mostPopular?"bg-primary text-white shadow-sm hover:bg-primary focus-visible:outline-primary":"bg-white/10 text-white hover:bg-white/20 focus-visible:outline-white","mt-6 block rounded-md py-2 px-3 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"])},i(s[2].button),11,qe),e("ul",De,[(a(!0),l(h,null,y(s[2].features,o=>(a(),l("li",{key:o,class:"flex gap-x-3"},[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),d(" "+i(o),1)]))),128))])],2)])]),e("div",{class:u([s[3].mostPopular?"bg-white/5 ring-2 ring-primary":"ring-1 ring-white/10","rounded-3xl p-8 xl:p-10"])},[e("div",Ue,[e("h3",{id:s[3].id,class:"text-lg font-semibold leading-8 text-white"},i(s[3].name),9,Ie),s[3].mostPopular?(a(),l("p",Be," Most popular ")):c("",!0)]),e("p",Fe,i(s[3].description),1),e("p",Le,[e("span",Oe,i(x.value?"Custom":s[3].price[m.value.value]),1),x.value?c("",!0):(a(),l("span",$e,i(m.value.priceSuffix),1))]),e("a",{href:s[3].link,"aria-describedby":s[3].id,class:u([s[3].mostPopular?"bg-primary text-white shadow-sm hover:bg-primary focus-visible:outline-primary":"bg-white/10 text-white hover:bg-white/20 focus-visible:outline-white","mt-6 block rounded-md py-2 px-3 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"])},i(s[3].button),11,Ae),e("ul",Ee,[(a(!0),l(h,null,y(s[3].features,o=>(a(),l("li",{key:o,class:"flex gap-x-3"},[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),d(" "+i(o),1)]))),128))])],2)])],64)):(a(),l("div",Re,[e("div",We,[e("div",Ke,[e("div",ze,[t[13]||(t[13]=e("h3",{class:"text-2xl font-semibold tracking-tight text-white"},"Self-hosted with source access",-1)),t[14]||(t[14]=e("p",{class:"mt-3 text-base leading-7 text-gray-300"}
1," Run Pullpo in your own infrastructure with full source-code access under a commercial license, deployment support, and room for company-specific workflows. ",-1)),e("ul",Ge,[e("li",He,[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),t[7]||(t[7]=d(" Deploy in your own cloud or data center. "))]),e("li",Je,[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),t[8]||(t[8]=d(" Full source-code access under a commercial license for internal use. "))]),e("li",Qe,[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),t[9]||(t[9]=d(" Initial deployment, onboarding, and architecture guidance included. "))]),e("li",Xe,[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),t[10]||(t[10]=d(" Custom integrations, reporting pipelines, and internal workflow extensions available. "))]),e("li",Ye,[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),t[11]||(t[11]=d(" Ongoing support, upgrades, and custom development available under separate terms. "))]),e("li",Ze,[n(r(p),{class:"h-6 w-5 flex-none text-white","aria-hidden":"true"}),t[12]||(t[12]=d(" No redistribution, resale, sublicensing, or public release of modified versions. "))])]),t[15]||(t[15]=e("p",{class:"mt-6 text-xs leading-5 text-gray-400"}," Legal note: final licensing terms are set in your order form and agreement. ",-1))]),t[16]||(t[16]=e("div",{class:"w-full max-w-sm rounded-2xl bg-black-dark-light/35 p-6 ring-1 ring-white/10"},[e("p",{class:"text-xs font-semibold uppercase tracking-wide text-primary"},"Custom engagement"),e("p",{class:"mt-4 text-4xl font-bold tracking-tight text-white"},"Custom pricing"),e("p",{class:"mt-2 text-sm font-medium text-gray-300"},"From €30k starting project fee"),e("p",{class:"mt-4 text-sm leading-6 text-gray-300"}," Final pricing depends on deployment model, support expectations, security requirements, and custom integrations. "),e("p",{class:"mt-3 text-sm leading-6 text-gray-400"}," Annual maintenance and custom development are scoped separately. "),e("a",{href:"https://cal.com/marco-pullpo-io/demo-request",target:"_blank",rel:"noopener noreferrer",class:"mt-6 inline-flex w-full items-center justify-center rounded-md bg-primary px-3 py-2 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-primary/80 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary"}," Talk to us ")],-1))])]),t[17]||(t[17]=e("div",{class:"mt-6 rounded-3xl p-8 ring-1 ring-white/10 xl:p-10"},[e("h3",{class:"text-2xl font-semibold tracking-tight text-white"},"Why self-hosted?"),e("div",{class:"mt-6 grid grid-cols-1 gap-4 lg:grid-cols-3"},[e("div",{class:"rounded-2xl bg-white/5 p-5 ring-1 ring-white/10"},[e("h4",{class:"text-base font-semibold text-white"},"Built around your stack"),e("p",{class:"mt-2 text-sm leading-6 text-gray-300"}," Connect Pullpo to your internal reporting, data pipelines, and engineering workflows without waiting for generic SaaS priorities. ")]),e("div",{class:"rounded-2xl bg-white/5 p-5 ring-1 ring-white/10"},[e("h4",{class:"text-base font-semibold text-white"},"Control over data and deployment"),e("p",{class:"mt-2 text-sm leading-6 text-gray-300"}," Keep the platform inside your own infrastructure and align deployment, security, and compliance with your internal standards. ")]),e("div",{class:"rounded-2xl bg-white/5 p-5 ring-1 ring-white/10"},[e("h4",{class:"text-base font-semibold text-white"},"Start from a real product"),e("p",{class:"mt-2 text-sm leading-6 text-gray-300"}," Move faster with an existing DevEx platform, then extend it with your team instead of building the entire foundation from scratch. ")])])],-1))]))]),n(A,{class:"mt-28"}),n(E,{title:!0,class:"mt-24"}),n(R)])]),_:1})])}}});export{ht as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.