PageSourceSearch

https://scanmint-dusky.vercel.app/_next/static/chunks/app/pricing/…?dpl=dpl_GqmVJEK3kvos9WHREvYVknzHkshi

js scanmint-dusky.vercel.app collected 2026-10-03 07:40:21 UTC 15,463 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9979],{2129:function(e,t,s){Promise.resolve().then(s.bind(s,7350))},7350:function(e,t,s){"use strict";s.d(t,{PricingPageClient:function(){return f}});var n=s(7437),a=s(7648),r=s(2265),i=s(5846),l=s(3548);s(9128);var o=s(970),c=s(257);let d=[{id:"pack-25",label:"25 Credits",credits:25,basePriceUsd:12.5},{id:"pack-100",label:"100 Credits",credits:100,basePriceUsd:50},{id:"pack-500",label:"500 Credits",credits:500,basePriceUsd:250}],x=e=>(.25*e).toFixed(2),m="1"===c.env.NEXT_PUBLIC_PRO_ANNUAL_ENABLED;function u(e,t){return 503===e?"Payments are temporarily unavailable. Please try again in a moment, or email us and we’ll sort it out.":"We couldn’t start your checkout".concat(t?" (".concat(t,")"):"",". Please try again, or email us if it keeps happening.")}function h(e){let{text:t}=e,[s,a]=(0,r.useState)(!1);return(0,n.jsx)("button",{onClick:async()=>{await navigator.clipboard.writeText(t),a(!0),(0,l.j)("referral_link_copied"),setTimeout(()=>a(!1),2e3)},className:"ml-2 text-xs bg-brand-500/10 hover:bg-brand-500/20 text-brand-600 font-medium px-3 py-1 rounded-full transition-colors",children:s?"Copied!":"Copy link"})}function f(){let[e,t]=(0,r.useState)(""),[s,c]=(0,r.useState)("monthly"),[f,b]=(0,r.useState)(null);async function p(e){b(null),(0,l.j)("begin_checkout",{plan:e});try{let{data:{session:t}}=await o.O.auth.getSession();if(!t){window.location.href="/signup?plan=".concat(encodeURIComponent(e));return}let s=await fetch("/api/checkout",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(t.access_token)},body:JSON.stringify({plan:e})});if(s.ok){let{url:e}=await s.json();window.location.href=e}else{let{error:e}=await s.json().catch(()=>({error:"Unknown error"}));b(u(s.status,e))}}catch(e){b(u(0))}}(0,r.useEffect)(()=>{t((0,i.PB)()),(0,l.j)("view_pricing")},[]);let g="annual"===s?"37.50":x(15),j="annual"===s?"/yr":"/mo";return(0,n.jsxs)("div",{className:"min-h-screen bg-surface",children:[(0,n.jsx)("nav",{className:"bg-white border-b border-site-border sticky top-0 z-40",children:(0,n.jsxs)("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 flex items-center justify-between h-14",children:[(0,n.jsx)(a.default,{href:"/",className:"font-display font-bold text-xl text-ink",children:"Scanmint"}),(0,n.jsx)(a.default,{href:"/app",className:"text-sm text-muted hover:text-ink",children:"← Back to generator"})]})}),(0,n.jsx)("div",{className:"bg-brand-500 text-white",children:(0,n.jsxs)("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-3 flex flex-col sm:flex-row items-center justify-between gap-2",children:[(0,n.jsxs)("p",{className:"text-sm font-medium text-center sm:text-left",children:[(0,n.jsx)("strong",{children:"Launch week — 75% off all plans"})," for your first 30 days."]}),(0,n.jsx)(a.default,{href:"/signup",className:"shrink-0 bg-white text-brand-600 font-semibold text-xs px-4 py-1.5 rounded-full hover:bg-brand-50 transition-colors",children:"Start free"})]})}),(0,n.jsxs)("main",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-16",children:[(0,n.jsxs)("div",{className:"text-center mb-14",children:[(0,n.jsx)("h1",{className:"font-display text-4xl font-bold text-ink tracking-tight mb-3",children:"Simple, honest pricing"}),(0,n.jsxs)("p",{className:"font-body text-lg text-muted max-w-xl mx-auto",children:["Start free. Credits = dynamic QR codes + premium exports. First 30 days: ",(0,n.jsx)("strong",{className:"text-brand-600",children:"75% off"}),"."]})]}),f&&(0,n.jsxs)("div",{role:"alert","data-testid":"checkout-error",className:"max-w-xl mx-auto mb-8 rounded-xl border border-red-200 bg-red-50 px-4 py-3 flex items-start justify-between gap-3",children:[(0,n.jsxs)("p",{className:"text-sm text-red-800",children:[f," ",(0,n.jsx)("a",{href:"mailto:".concat("[email protected]","?subject=Checkout%20issue"),className:"font-semibold underline hover:text-red-900",children:"Email us"}),"."]}),(0,n.jsx)("button",{onClick:()=>b(null),"aria-label":"Dismiss",className:"shrink-0 text-red-400 hover:text-red-700 font-bold leading-none",children:"✕"})]}),m&&(0,n.jsx)("div",{className:"flex justify-center mb-10","data-testid":"billing-cycle-toggle",children:(0,n.jsxs)("div",{className:"inline-flex items-center bg-surface border border-site-border rounded-full p-1 gap-1",children:[(0,n.jsx)("button",{onClick:()=>c("monthly"),className:"px-5 py-2 rounded-full text-sm font-semibold transition-colors ".concat("monthly"===s?"bg-white shadow text-ink":"text-muted hover:text-ink"),children:"Monthly"}),(0,n.jsxs)("button",{onClick:()=>c("annual"),className:"px-5 py-2 rounded-full text-sm font-semibold transition-colors ".concat("annual"===s?"bg-white shadow text-ink":"text-muted hover:text-ink"),children:["Annual ",(0,n.jsx)("span",{className:"text-brand-600 text-xs font-bold ml-1",children:"2 months free"})]})]})}),(0,n.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 mb-10",children:[(0,n.jsxs)("div",{className:"bg-white rounded-2xl border border-site-border shadow-sm p-8 flex flex-col",children:[(0,n.jsx)("h2",{className:"font-display text-xl font-bold text-ink mb-1",children:"Free"}),(0,n.jsxs)("div",{className:"flex items-end gap-1 mb-6",children:[(0,n.jsx)("span",{className:"text-4xl font-extrabold text-ink",children:"$0"}),(0,n.jsx)("span",{className:"text-muted text-sm mb-1",children:"/forever"})]}),(0,n.jsx)("ul",{className:"space-y-3 text-sm text-muted mb-8 flex-1",children:["7 QR types (URL, WiFi, vCard, Email, Phone, SMS, Text)","Custom colors + error correction","PNG + SVG export","No watermark, no expiry — ever"].map((e,t)=>(0,n.jsxs)("li",{className:"flex items-start gap-2",children:[(0,n.jsx)("span",{className:"text-brand-500 mt-0.5 font-bold",children:"✓"}),(0,n.jsx)("span",{children:e})]},t))}),(0,n.jsx)(a.default,{href:"/app",className:"block text-center bg-gray-100 hover:bg-gray-200 text-ink font-semibold py-3 rounded-xl transition-colors",children:"Start generating"})]}),(0,n.jsxs)("div",{className:"bg-white rounded-2xl border-2 border-brand-500 shadow-lg p-8 flex flex-col relative",children:[(0,n.jsx)("div",{className:"absolute -top-3 left-1/2 -translate-x-1/2",children:(0,n.jsx)("span",{className:"bg-brand-500 text-white text-xs font-bold px-4 py-1 rounded-full shadow",children:"Most popular"})}),(0,n.jsx)("h2",{className:"font-display text-xl font-bold text-ink mb-1",children:"annual"===s?"Pro Annual":"Pro Monthly"}),(0,n.jsxs)("div",{className:"flex items-end gap-2 mb-2",children:[(0,n.jsxs)("span",{className:"text-lg text-muted line-through mb-1.5",children:["$","annual"===s?150:15]}),(0,n.jsxs)("span",{className:"text-4xl font-extrabold text-ink",children:["$",g]}),(0,n.jsx)("span",{className:"text-muted text-sm mb-1",children:j})]}),(0,n.jsx)("p",{className:"text-xs text-brand-600 font-semibold mb-6",children:"annual"===s?"75% off your first year, then $".concat(150,"/yr \xb7 cancel anytime").concat("annual"===s?" — 2 months free":""):"75% off your first 30 days, then $".concat(15,"/mo \xb7 cancel anytime")}),(0,n.jsx)("ul",{className:"space-y-3 text-sm text-muted mb-8 flex-1",children:["40 credits/month (40 dynamic QRs)","Scan analytics (time, device, location)","Hi-res PNG (up to 1024px)","Logo in QR code"].map(e=>(0,n.jsxs)("li",{className:"flex items-start gap-2",children:[(0,n.jsx)("span",{className:"text-brand-500 mt-0.5 font-bold",children:"✓"}),e]},e))}),(0,n.jsxs)("button",{onClick:()=>p("annual"===s?"pro-annual":"pro"),className:"w-full bg-ink hover:bg-slate text-white font-bold py-3 rounded-xl transition-colors shadow-sm",children:["Get ","annual"===s?"Pro Annual":"Pro"," — $",g,j]})]})]}),(0,n.jsx)("p",{className:"text-center text-sm text-muted -mt-4 mb-10",children:"Secure checkout via Stripe \xb7 Cancel anytime \xb7 No account needed for free QR codes"}),(0,n.jsxs)("div",{className:"bg-gradient-to-br from-brand-50 to-brand-100/50 border-2 border-brand-500 rounded-2xl p-8 mb-10 flex flex-col md:flex-row md:items-center gap-6",children:[(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,n.jsx)("h2",{className:"font-display text-xl font-bold text-ink",children:"Lifetime"}),(0,n.jsx)("span",{className:"bg-brand-500 text-white text-xs font-bold px-3 py-0.5 rounded-full",children:"Best value"})]}),(0,n.jsxs)("div",{className:"flex items-end gap-2 mb-2",children:[(0,n.jsx)("span",{className:"text-4xl font-extrabold text-ink",children:"$200"}),(0,n.jsx)("span",{className:"text-muted text-sm mb-1",children:"one-time"})]}),(0,n.jsxs)("p",{className:"text-sm text-muted leading-relaxed",children:["Pay once, own it forever. ",(0,n.jsx)("strong",{children:"$50 of free credits (100 cr) every month, for life"})," — plus all Pro features, no subscription."]})]}),(0,n.jsxs)("div",{className:"shrink-0",children:[(0,n.jsx)("button",{onClick:()=>p("lifetime"),className:"block text-center bg-ink hover:bg-slate text-white font-bold px-10 py-3 rounded-xl transition-colors shadow-sm whitespace-nowrap",children:"Get Lifetime — $200"}),(0,n.jsx)("p",{className:"text-xs text-center text-muted mt-2",children:"Pays for itself in 4 months vs Pro"})]})]}),(0,n.jsxs)("div",{className:"mb-14",children:[(0,n.jsx)("h2",{className:"font-display text-xl font-bold text-ink mb-2 text-center",children:"Pay-as-you-go credit packs"}),(0,n.jsx)("p",{className:"font-body text-sm text-muted text-center mb-6",children:"1 credit = 1 dynamic QR code or premium export. Credits never expire. 75% off first 30 days."}),(0,n.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:d.map(e=>(0,n.jsxs)("div",{className:"bg-white rounded-2xl border border-site-border shadow-sm p-6 flex flex-col items-center text-center",children:[(0,n.jsx)("h3",{className:"font-bold text-ink text-lg mb-1",children:e.label}),(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,n.jsxs)("span",{className:"text-2xl font-extrabold text-ink",children:["$",x(e.basePriceUsd)]}),(0,n.jsxs)("span",{className:"text-sm text-muted line-through",children:["$",e.basePriceUsd.toFixed(2)]})]}),(0,n.jsxs)("p",{className:"text-xs text-muted mb-5",children:[e.credits," dynamic QR codes"]}),(0,n.jsxs)("button",{onClick:()=>p(e.id.replace("-","")),className:"w-full bg-ink hover:bg-slate text-white font-semibold py-2.5 rounded-xl transition-colors text-sm",children:["Buy ",e.label]})]},e.id))})]}),(0,n.jsxs)("div",{className:"bg-brand-50 border border-brand-200 rounded-2xl p-8 mb-14",children:[(0,n.jsx)("h2",{className:"font-display text-xl font-bold text-ink mb-2",children:"Referral program"}),(0,n.jsxs)("p",{className:"text-sm text-muted mb-5 leading-relaxed",children:["Share Scanmint. When they convert, ",(0,n.jsx)("strong",{children:"you get $50 of free credits (100 cr) per month for 6 months"}),". Referrals stack."]}),(0,n.jsxs)("div",{className:"bg-white rounded-xl border border-brand-100 p-4",children:[(0,n.jsx)("p",{className:"text-xs font-semibold text-muted uppercase tracking-wide mb-2",children:"Your referral link"}),e?(0,n.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,n.jsx)("code",{className:"text-sm text-ink bg-gray-50 border border-site-border rounded-lg px-3 py-1.5 flex-1 min-w-0 truncate",children:e}),(0,n.jsx)(h,{text:e})]}):(0,n.jsx)("p",{className:"text-sm text-muted",children:"Loading your link…"})]})]}),(0,n.jsxs)("div",{className:"max-w-2xl mx-auto mb-14",children:[(0,n.jsx)("h2",{className:"font-display text-xl font-bold text-ink mb-6 text-center",children:"Common questions"}),(0,n.jsxs)("div",{className:"space-y-5",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"font-semibold text-ink text-sm mb-1",children:"Can I cancel anytime?"}),(0,n.jsx)("p",{className:"text-sm text-muted",children:"Yes — one click from your dashboard, active until the end of your billing period. Your free static QR codes keep working forever either way."})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"font-semibold text-ink text-sm mb-1",children:"What do I pay after the launch discount?"}),(0,n.jsxs)("p",{className:"text-sm text-muted",children:["The 75% discount covers your first 30 days; after that Pro is $",15,"/mo. The price shown at checkout is always the price you pay."]})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"font-semibold text-ink text-sm mb-1",children:"Do you offer refunds?"}),(0,n.jsx)("p",{className:"text-sm text-muted",children:"If Pro isn’t working out within your first 14 days, email [email protected] and we’ll refund you, no questions asked."})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"font-semibold text-ink text-sm mb-1",children:"Do free QR codes really never expire?"}),(0,n.jsx)("p",{className:"text-sm text-muted",children:"Really. Static codes encode your data directly in the image — no server involved, nothing to expire, no watermark, no account."})]})]})]}),(0,n.jsx)("div",{className:"text-center",children:(0,n.jsxs)("p",{className:"text-sm text-muted",children:["Questions? ",(0,n.jsx)(a.default,{href:"/#faq",className:"text-brand-500 hover:underline",children:"Read the FAQ"})," or ",(0,n.jsx)("a",{href:"mailto:[email protected]",className:"text-brand-500 hover:underline",children:"email us"}),"."]})})]})]})}},3548:function(e,t,s){"use strict";function n(e,t){"function"==typeof window.gtag&&window.gtag("event",e,t)}s.d(t,{j:function(){return n}})},9128:function(e,t,s){},5846:function(e,t,s){"use strict";s.d(t,{PB:function(){return c},k4:function(){return o},JN:function(){return l},uM:function(){return i}}),s(9128);let n="scanmint_ref",a="scanmint_ref",r="scanmint_anon_id";function i(){if("undefined"==typeof document)return null;let e=document.cookie.split("; ").find(e=>e.startsWith("".concat(a,"=")));if(e)return decodeURIComponent(e.split("=")[1]);try{return localStorage.getItem(n)}catch(e){return null}}function l(){if("undefined"!=typeof document){document.cookie="".concat(a,"=; max-age=0; path=/; SameSite=Lax");try{localStorage.removeItem(n)}catch(e){}}}function o(){let e=new URLSearchParams(window.location.search).get("ref");return(null==e?void 0:e.trim())?(!function(e){if("undefined"==typeof document)return;let t=encodeURIComponent(e.trim().toUpperCase());document.cookie="".concat(a,"=").concat(t,"; max-age=").concat(7776e3,"; path=/; SameSite=Lax");try{localStorage.setItem(n,e.trim().toUpperCase())}catch(e){}}(e),e.trim().toUpperCase()):null}function c(){let e=function(e){let t=5381;for(let s=0;s<e.length;s++)t=((t<<5)+t^e.charCodeAt(s))>>>0;return t.toString(16).toUpperCase().padStart(8,"0")}(function(){if("undefined"==typeof localStorage)return"anon";try{let e=localStorage.getItem(r);return e||(e=Math.random().toString(36).slice(2)+Date.now().toString(36),localStorage.setItem(r,e)),e}catch(e){return"anon"}}());return"".concat("https://scanmintsite.space","/?ref=").concat(e)}},970:function(e,t,s){"use strict";s.d(t,{O:function(){return n}});let n=(0,s(5063).eI)("https://wqnkjlmnvzdbkdsibebu.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6IndxbmtqbG1udnpkYmtkc2liZWJ1Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzAxNjM2NDQsImV4cCI6MjA4NTczOTY0NH0.RFT-71OcrmroDlWpWy8gbvDxh9rDVGDQB9Iqgef9DRA")},7648:function(e,t,s){"use strict";s.d(t,{default:function(){return a.a}});var n=s(2972),a=s.n(n)}},function(e){e.O(0,[9762,2972,9659,2971,2117,1744],function(){return e(e.s=2129)}),_N_E=e.O()}]);

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.