PageSourceSearch

https://solidinvoice.co/assets/js/Pricing-K39NEpbd.js

js solidinvoice.co collected 2026-10-03 19:15:31 UTC 18,590 bytes, 1 lines download raw bytes

1import{j as e}from"./ui-vendor-DcgYPCP1.js";import{a as t,L as s}from"./react-vendor-3QtB4ma3.js";import{a,B as r,T as i,N as n,F as l}from"./Footer-BXqOj-Oc.js";import{c as o,t as c}from"./index-BqspYZkK.js";import{C as d}from"./check-BNTY9A3h.js";import{A as m,a as x,b as p,c as h}from"./accordion-DS-koDDE.js";import{A as g}from"./arrow-right-Bxp50P1I.js";const u=o("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]),y=[{id:"solo",name:"Solo",tagline:"For freelancers ready to get paid online.",monthlyPrice:9,annualPrice:90,ctaLabel:`Start ${a}-day free trial`,ctaHref:"https://solidinvoice.app/register",ctaEvent:"start_trial",highlights:["Online payments (Stripe, PayPal)","Recurring invoices","Multi-currency support"]},{id:"pro",name:"Pro",tagline:"For freelancers and growing businesses getting paid online.",monthlyPrice:19,annualPrice:190,ctaLabel:`Start ${a}-day free trial`,ctaHref:"https://solidinvoice.app/register",ctaEvent:"start_trial",highlights:["Online payments (Stripe, PayPal)","Recurring invoices and multi-currency","Automated payment reminders","Custom branding (no SolidInvoice footer)","REST API + MCP Server access","Priority support"],isPopular:!0},{id:"business",name:"Business",tagline:"For teams of four or more.",monthlyPrice:39,annualPrice:390,ctaLabel:`Start ${a}-day free trial`,ctaHref:"https://solidinvoice.app/register",ctaEvent:"start_trial",highlights:["Invoice and quote templates","Custom domain","Dedicated support"]}],b={solo:{activeClients:"10 active clients",invoicesPerMonth:"Unlimited invoices",teamSeats:"1 seat"},pro:{activeClients:"Unlimited clients",invoicesPerMonth:"Unlimited invoices",teamSeats:"3 seats"},business:{activeClients:"Unlimited clients",invoicesPerMonth:"Unlimited invoices",teamSeats:"10 team seats"}},f=[{question:"How does the free trial work?",answer:`Pick a plan and get full access to everything in it for ${a} days. A card is required to start, but you won't be charged until the trial ends.`},{question:"When am I charged?",answer:"At the end of your trial, for the plan and billing period you chose. Billing and checkout are handled securely by Lemon Squeezy."},{question:"Can I cancel during the trial?",answer:"Yes, from your account settings in a couple of clicks. Cancel before the trial ends and you won't be charged at all."},{question:"Which plan should I pick?",answer:"Solo fits freelancers who need online payments, recurring invoices, and multi-currency support. Pro fits growing businesses that also want automated payment reminders, custom branding, API access, and priority support. Business fits teams of four or more, adding invoice and quote templates, 10 seats, and a custom domain."},{question:"Can I edit the invoice templates?",answer:"Not at this stage. Business plans pick from a set of ready-made templates, and one setting applies your choice to invoices, quotes, and the emails that carry them. The templates themselves are fixed."},{question:"Can I switch plans?",answer:"Yes. Switch between Solo, Pro, and Business any time. Upgrades are prorated, downgrades take effect at the next billing cycle."},{question:"Can I cancel my subscription later?",answer:"Yes. Cancel from your account settings whenever you like. You keep access until the end of your billing period. No contracts, no cancellation fees."},{question:"Which payment methods do you accept?",answer:"All major credit and debit cards, processed securely by Lemon Squeezy, our billing provider."},{question:"Is my data portable if I cancel?",answer:"Always. Export invoices, clients, and payments as CSV or PDF any time, before or after you cancel. Your data is yours."}];const j=({billing:t})=>e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"grid grid-cols-1 gap-y-8 md:grid-cols-3 lg:grid-cols-3 lg:items-stretch lg:gap-x-0 lg:gap-y-0",children:y.map(s=>{const a=b[s.id],i=((e,t)=>"annual"===t?(e.annualPrice/12).toFixed(0):e.monthlyPrice.toString())(s,t),n="annual"===t?"/mo, billed annually":"/month",l=function(e){const t=12*e.monthlyPrice;return t<=e.annualPrice?null:"Save $"+(t-e.annualPrice)}(s),o=s.isPopular,m=o?"border-green-700 bg-green-50 text-gray-900 lg:-my-6 lg:py-12 lg:border-l-2 lg:z-10":"border-gray-200 bg-white text-gray-900 lg:border-y-2 lg:border-gray-900";return e.jsxs("div",{id:`plan-${s.id}`,className:`relative flex flex-col border-2 p-6 sm:p-8 lg:border-l-0 lg:first:border-l-2 ${m} scroll-mt-24`,children:[o&&e.jsx("div",{className:"absolute -top-3 left-1/2 -translate-x-1/2 lg:-top-4",children:e.jsxs("span",{className:"inline-flex items-center gap-2 bg-green-700 px-4 py-1.5 text-xs font-bold uppercase tracking-[0.18em] text-white",children:[e.jsx("span",{"aria-hidden":"true",children:"★"}),"Recommended"]})}),e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] "+(o?"text-green-700":"text-gray-500"),children:s.name}),e.jsx("p",{className:"mt-3 min-h-[2.5rem] text-sm leading-relaxed text-gray-600",children:s.tagline}),e.jsxs("p",{className:"mt-6 flex items-end gap-1","aria-label":"annual"===t?`${i} dollars per month, billed annually as $${s.annualPrice}`:`${i} dollars per month`,children:[e.jsx("span",{"aria-hidden":"true",className:"pb-2 text-2xl font-medium text-gray-500 sm:pb-3 sm:text-3xl",children:"$"}),e.jsx("span",{"aria-hidden":"true",className:"text-6xl font-black leading-none tracking-tighter text-gray-900 sm:text-7xl",style:{fontVariantNumeric:"tabular-nums"},children:i}),e.jsx("span",{"aria-hidden":"true",className:"pb-2 text-sm font-medium text-gray-500 sm:pb-3",style:{fontVariantNumeric:"tabular-nums"},children:n})]}),e.jsx("p",{className:"mt-3 min-h-[1.25rem] text-xs text-gray-600",style:{fontVariantNumeric:"tabular-nums"},children:"annual"===t&&l?e.jsxs(e.Fragment,{children:["$",s.annualPrice,"/year."," ",e.jsxs("span",{className:"font-semibold text-green-700",children:[l,"/yr."]})]}):`Or $${s.annualPrice}/year.`}),e.jsx(r,{href:s.ctaHref,size:"lg",className:"mt-6 h-auto w-full px-5 py-3 text-sm font-semibold focus-visible:ring-2 focus-visible:ring-offset-2 "+(o?"bg-green-700 text-white hover:bg-green-800 focus-visible:ring-green-600 focus-visible:ring-offset-green-50":"border-2 border-gray-900 bg-white text-gray-900 hover:bg-gray-900 hover:text-white focus-visible:ring-gray-700"),onClick:()=>c(s.ctaEvent),children:s.ctaLabel}),e.jsxs("ul",{className:"mt-6 space-y-2 border-t pt-5 text-xs font-medium uppercase tracking-[0.14em] text-gray-500 "+(o?"border-green-200":"border-gray-200"),style:{fontVariantNumeric:"tabular-nums"},children:[e.jsx("li",{children:a.activeClients}),e.jsx("li",{children:a.invoicesPerMonth}),e.jsx("li",{children:a.teamSeats})]}),e.jsx("ul",{className:"mt-5 space-y-2.5 text-sm text-gray-700",children:s.highlights.map(t=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(d,{className:"mt-0.5 h-4 w-4 shrink-0 text-green-700","aria-hidden":"true",strokeWidth:2.5}),e.jsx("span",{children:t})]},t))})]},s.id)})}),e.jsx("p",{className:"mt-10 text-center text-xs font-medium uppercase tracking-[0.18em] text-gray-500",children:i})]}),v=e=>y.filter(t=>!1!==e.tiers[t.id]).length,N=[{feature:"Quotes and estimates",tiers:{solo:!0,pro:!0,business:!0}},{feature:"Online payments (Stripe, PayPal)",tiers:{solo:!0,pro:!0,business:!0}},{feature:"Recurring invoices",tiers:{solo:!0,pro:!0,business:!0}}
1,{feature:"Automated payment reminders",tiers:{solo:!1,pro:!0,business:!0}},{feature:"Multi-currency support",tiers:{solo:!0,pro:!0,business:!0}},{feature:"Custom branding (no SolidInvoice footer)",tiers:{solo:!1,pro:!0,business:!0}},{feature:"Invoice and quote templates",tiers:{solo:!1,pro:!1,business:!0}},{feature:"REST API access",tiers:{solo:!1,pro:!0,business:!0}},{feature:"MCP Server access",tiers:{solo:!1,pro:!0,business:!0}},{feature:"Priority support",tiers:{solo:!1,pro:!0,business:"Dedicated"}},{feature:"Custom domain",tiers:{solo:!1,pro:!1,business:!0}}].sort((e,t)=>v(t)-v(e)),w=[{label:"Active clients",key:"activeClients"},{label:"Invoices per month",key:"invoicesPerMonth"},{label:"Team seats",key:"teamSeats"}],k=()=>e.jsxs("div",{className:"mt-16",children:[e.jsxs("div",{className:"text-center",children:[e.jsxs("p",{className:"inline-flex items-center gap-3 text-xs font-semibold uppercase tracking-[0.18em] text-gray-500",children:[e.jsx("span",{"aria-hidden":"true",className:"h-px w-8 bg-gray-400"}),"§ Compare every feature",e.jsx("span",{"aria-hidden":"true",className:"h-px w-8 bg-gray-400"})]}),e.jsxs("h2",{className:"mt-5 text-balance text-3xl leading-[1.1] tracking-tight text-gray-900 sm:text-4xl",children:["The full ",e.jsx("span",{className:"text-green-700",children:"matrix."})]}),e.jsx("p",{className:"mt-4 text-sm text-gray-500 lg:hidden",children:"Swipe to compare tiers side by side."})]}),e.jsx("div",{className:"relative mt-10 overflow-x-auto",role:"region","aria-label":"Feature comparison across plans",tabIndex:0,children:e.jsxs("table",{className:"w-full min-w-[640px] border-y-2 border-gray-900 text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b-2 border-gray-900 bg-white",children:[e.jsx("th",{className:"sticky left-0 z-10 bg-white px-4 py-5 text-left text-xs font-semibold uppercase tracking-[0.18em] text-gray-500",children:"Feature"}),y.map(t=>e.jsxs("th",{scope:"col",className:"px-4 py-5 text-center text-xs font-semibold uppercase tracking-[0.18em] "+(t.isPopular?"text-green-700":"text-gray-700"),children:[e.jsx("span",{className:"block",children:t.name}),t.isPopular&&e.jsxs("span",{className:"mt-1 block text-[10px] font-bold tracking-[0.18em] text-green-700",children:[e.jsx("span",{"aria-hidden":"true",children:"★"})," Recommended"]})]},t.id))]})}),e.jsxs("tbody",{className:"divide-y divide-gray-200",children:[e.jsx("tr",{children:e.jsx("th",{scope:"colgroup",colSpan:y.length+1,className:"bg-gray-50 px-4 py-2 text-left text-xs font-semibold uppercase tracking-[0.18em] text-gray-500",children:"Limits"})}),w.map(t=>e.jsxs("tr",{children:[e.jsx("th",{scope:"row",className:"sticky left-0 z-10 bg-white px-4 py-3 text-left font-medium text-gray-900",children:t.label}),y.map(s=>e.jsx("td",{className:"px-4 py-3 text-center text-xs font-semibold uppercase tracking-[0.14em] text-gray-700 "+(s.isPopular?"bg-green-50/40":""),style:{fontVariantNumeric:"tabular-nums"},children:b[s.id][t.key]},s.id))]},t.key)),e.jsx("tr",{children:e.jsx("th",{scope:"colgroup",colSpan:y.length+1,className:"bg-gray-50 px-4 py-2 text-left text-xs font-semibold uppercase tracking-[0.18em] text-gray-500",children:"Features"})}),N.map(t=>e.jsxs("tr",{children:[e.jsxs("th",{scope:"row",className:"sticky left-0 z-10 bg-white px-4 py-3 text-left font-medium text-gray-900",children:[t.feature,t.note&&e.jsx("span",{className:"mt-0.5 block text-xs font-normal text-gray-500",children:t.note})]}),y.map(s=>{return e.jsx("td",{className:"px-4 py-3 text-center "+(s.isPopular?"bg-green-50/40":""),children:(a=t.tiers[s.id],!0===a?e.jsxs(e.Fragment,{children:[e.jsx(d,{className:"mx-auto h-5 w-5 text-green-700","aria-hidden":"true",strokeWidth:2.5}),e.jsx("span",{className:"sr-only",children:"Included"})]}):!1===a?e.jsxs(e.Fragment,{children:[e.jsx(u,{className:"mx-auto h-4 w-4 text-gray-300","aria-hidden":"true",strokeWidth:2}),e.jsx("span",{className:"sr-only",children:"Not included"})]}):e.jsx("span",{className:"text-xs font-semibold uppercase tracking-[0.14em] text-gray-700",children:a}))},s.id);var a})]},t.feature))]})]})})]}),P=[{label:"QuickBooks",href:"/quickbooks-alternative"},{label:"FreshBooks",href:"/freshbooks-alternative"},{label:"Wave",href:"/wave-alternative"},{label:"Invoice Ninja",href:"/invoice-ninja-alternative"}],S=[{match:"Freelancing solo, want online payments.",plan:"Solo",href:"#plan-solo"},{match:"Freelancing or growing, want online payments + automation.",plan:"Pro",href:"#plan-pro",isRecommended:!0},{match:"Team of four or more, custom domain.",plan:"Business",href:"#plan-business"}],q=()=>{const[r,i]=t.useState("annual");return e.jsxs("div",{className:"min-h-screen bg-white",children:[e.jsx(n,{}),e.jsx("section",{className:"border-b border-gray-100 pt-16 pb-12 sm:pt-20 sm:pb-16",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[e.jsxs("h1",{className:"text-balance text-5xl font-black leading-[1.02] tracking-tight text-gray-900 sm:text-6xl",children:["Pricing that grows"," ",e.jsx("span",{className:"text-green-700",children:"with you."})]}),e.jsxs("p",{className:"mx-auto mt-6 max-w-2xl text-lg leading-relaxed text-gray-600 sm:text-xl",children:["Pick a plan and try it free for ",a," days. Cancel anytime during your trial and you won't be charged."]}),e.jsxs("div",{className:"mt-10 inline-flex border-2 border-gray-900 p-1",role:"radiogroup","aria-label":"Billing period",children:[e.jsx("button",{type:"button",role:"radio","aria-checked":"monthly"===r,onClick:()=>i("monthly"),className:"inline-flex min-h-[44px] items-center justify-center px-5 py-3 text-xs font-semibold uppercase tracking-[0.18em] transition "+("monthly"===r?"bg-gray-900 text-white":"bg-white text-gray-700 hover:text-gray-900"),children:"Monthly"}),e.jsxs("button",{type:"button",role:"radio","aria-checked":"annual"===r,onClick:()=>i("annual"),className:"inline-flex min-h-[44px] items-center justify-center px-5 py-3 text-xs font-semibold uppercase tracking-[0.18em] transition "+("annual"===r?"bg-gray-900 text-white":"bg-white text-gray-700 hover:text-gray-900"),children:["Annual",e.jsx("span",{className:"ml-2 text-xs font-semibold "+("annual"===r?"text-green-400":"text-green-700"),children:"Save up to $78/yr"})]})]})]})}
1),e.jsx("section",{"aria-labelledby":"quick-pick-headline",className:"border-b border-gray-100 bg-gray-50/60 py-10 sm:py-12",children:e.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-4",children:[e.jsx("h2",{id:"quick-pick-headline",className:"text-xs font-semibold uppercase tracking-[0.18em] text-gray-500",children:"Which plan is right for you?"}),e.jsx("a",{href:"#faq-which-plan",className:"hidden min-h-[44px] items-center text-xs font-semibold uppercase tracking-[0.14em] text-gray-700 hover:text-green-700 focus-visible:text-green-700 focus-visible:outline-none focus-visible:underline sm:inline-flex",children:"Read the FAQ →"})]}),e.jsx("ul",{className:"mt-5 grid grid-cols-1 gap-px overflow-hidden border-y-2 border-gray-900 bg-gray-200 md:grid-cols-2",children:S.map(t=>e.jsx("li",{className:t.isRecommended?"bg-green-50":"bg-white",children:e.jsxs("a",{href:t.href,className:"group flex min-h-[44px] items-center justify-between gap-4 px-5 py-4 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset "+(t.isRecommended?"focus-visible:ring-green-600":"focus-visible:ring-gray-700"),"aria-label":t.isRecommended?`Jump to ${t.plan} plan, recommended`:`Jump to ${t.plan} plan`,children:[e.jsx("span",{className:"text-sm leading-snug text-gray-700",children:t.match}),e.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs font-bold uppercase tracking-[0.18em] "+(t.isRecommended?"text-green-700 group-hover:text-green-800":"text-gray-900 group-hover:text-green-700"),children:[t.isRecommended&&e.jsx("span",{"aria-hidden":"true",children:"★"}),t.plan,e.jsx(g,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5","aria-hidden":"true",strokeWidth:2.5})]})]})},t.plan))})]})}),e.jsx("section",{className:"py-16 sm:py-20",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx(j,{billing:r})})}),e.jsx("section",{"aria-labelledby":"switching-from-headline",className:"border-t border-gray-100 py-10 sm:py-12",children:e.jsx("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between",children:[e.jsx("h2",{id:"switching-from-headline",className:"text-sm font-medium text-gray-700",children:"Switching from another tool? See a side-by-side comparison."}),e.jsx("ul",{className:"flex flex-wrap items-center gap-x-4 gap-y-1",children:P.map(t=>e.jsx("li",{children:e.jsxs(s,{to:t.href,className:"group inline-flex min-h-[44px] items-center gap-1 px-1 py-2 text-sm font-semibold text-gray-900 underline-offset-4 hover:text-green-700 hover:underline focus-visible:underline focus-visible:outline-none",children:[t.label,e.jsx(g,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5","aria-hidden":"true",strokeWidth:2.5})]})},t.href))})]})})}),e.jsx("section",{className:"border-t border-gray-100 py-16 sm:py-20",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx(k,{})})}),e.jsx("section",{id:"faq","aria-labelledby":"pricing-faq-headline",className:"border-t border-gray-100 bg-white py-20 sm:py-24 lg:py-28",children:e.jsxs("div",{className:"mx-auto max-w-3xl px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center",children:[e.jsxs("h2",{id:"pricing-faq-headline",className:"text-balance text-4xl leading-[1.08] tracking-tight text-gray-900 sm:text-5xl",children:["Before you"," ",e.jsx("span",{className:"text-green-700",children:"sign up."})]}),e.jsx("p",{className:"mx-auto mt-6 max-w-xl text-base leading-relaxed text-gray-600 sm:text-lg",children:"The questions people ask before they pick a plan."})]}),e.jsx(m,{type:"single",collapsible:!0,className:"mt-14",children:f.map((t,s)=>e.jsxs(x,{value:`item-${s}`,id:"Which plan should I pick?"===t.question?"faq-which-plan":void 0,className:"border-b border-gray-200",children:[e.jsx(p,{className:"group flex w-full items-center justify-between gap-4 py-5 text-left font-medium transition-colors hover:no-underline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-green-600 [&>svg]:text-gray-400 [&[data-state=open]>svg]:text-green-700",children:e.jsx("span",{className:"flex-1 text-base font-semibold tracking-tight text-gray-900 transition-colors group-hover:text-green-700 sm:text-lg",children:t.question})}),e.jsx(h,{className:"pb-5 pr-6 text-base leading-relaxed text-gray-600",children:t.answer})]},t.question))}),e.jsxs("p",{className:"mt-12 text-center text-sm text-gray-600",children:["Still have questions?"," ",e.jsx("a",{href:"mailto:[email protected]",className:"font-semibold text-green-700 underline-offset-4 hover:text-green-800 hover:underline focus-visible:rounded-sm focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-green-600",children:"Email support"}),"."]})]})}),e.jsx(l,{})]})};export{q 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.