1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23091,e=>{"use strict";var t=e.i(843476),a=e.i(522016);e.s(["default",0,function({size:e="md",dark:r=!1,tagline:n=!1,trademark:i=!1,href:s="/",onClick:o}){let l=(0,t.jsxs)("span",{className:"inline-flex flex-col",children:[(0,t.jsxs)("span",{className:`${{sm:"text-xl",md:"text-2xl",lg:"text-5xl"}[e]} inline-flex items-baseline font-extrabold lowercase leading-none tracking-tight ${r?"text-white":"text-neutral-900"}`,children:["unwrite",(0,t.jsx)("span",{"aria-hidden":!0,className:"ml-[0.12em] inline-block w-[0.14em] self-stretch rounded-full bg-amber-500",style:{minHeight:"0.95em"}}),i?(0,t.jsx)("sup",{className:`ml-[0.18em] self-start text-[0.4em] font-semibold leading-none tracking-normal ${r?"text-neutral-400":"text-neutral-500"}`,children:"â¢"}):null]}),n?(0,t.jsx)("span",{className:`mt-1 text-sm font-normal ${r?"text-neutral-400":"text-neutral-500"}`,children:"Write with AI. Sound like you."}):null]});return o?(0,t.jsx)("button",{type:"button",onClick:o,"aria-label":"Go to your pieces",className:"no-underline",children:l}):s?(0,t.jsx)(a.default,{href:s,className:"no-underline",children:l}):l}])},192378,e=>{"use strict";var t=e.i(843476),a=e.i(476677);e.s(["default",0,function({className:e,children:r="Cookie choices"}){return(0,t.jsx)("button",{type:"button",onClick:a.openCookieChoices,className:e,children:r})}])},336420,e=>{"use strict";let t=[{slug:"ghostwriters",name:"Ghostwriters",metaTitle:"unwrite for ghostwriters: write in your client's voice, with proof",h1:"Ghostwriting is a voice business. unwrite protects the voice.",sub:"Your clients pay for their voice, not a chatbot's average. Draft in it, strip the tells, and hand over every piece with a verdict attached.",pains:["Raw ChatGPT output sounds like everyone else's, and clients can tell.",'Every fabricated "fact" you miss is your reputation on the line, not the model\'s.',"Revision rounds eat the margin on a fixed retainer.","You can show a client the draft, but not why it's sound."],helps:[{t:"Their voice, saved once",d:"Train a client's voice from a sample, save it as a profile, and draft in it every time. No re-prompting from scratch."},{t:"No tells to explain away",d:"Em dashes, stock phrases, and sing-song parallel rhythm are what the engine is built to scan for and strip before the draft reaches you."},{t:"A verdict you can forward",d:"The Editorial Review and, on Pro and Team, the Second read give you a verdict you can forward with the draft. On a book, the Continuity read reads every word and flags where a term, a callback, or the voice drifts between chapters. Send the client proof, not promises."},{t:"Every change is yours to undo",d:"In the Studio you see each AI edit, and one click puts any of it back. Nothing is rewritten out of sight, so the voice you deliver is the one you signed off on."}]},{slug:"agencies",name:"Content agencies",metaTitle:"unwrite for content agencies: one standard across every writer and client",h1:"One quality bar across every writer and every client.",sub:"A shared voice library, a consistent standard, and quality you can write into the statement of work.",pains:["Output quality swings with whichever writer (or intern) ran the prompt.","Every client needs a different voice, and they drift over time.","A client who spots raw AI in one deliverable starts questioning every deliverable.",'"Trust us, it\'s good" is a weak line in a renew
1al conversation.'],helps:[{t:"One enforced standard",d:"The same editorial engine, bans, and audit apply to every piece, no matter who hit generate."},{t:"Quality you can put in the SOW",d:"An editorial review that flags what to fix on every deliverable is a promise you can actually make to a client and keep."},{t:"Nothing ships unreviewed",d:"You see every AI edit in the Studio, and one click puts any of it back, so no client draft goes out with a rewrite nobody caught."},{t:"A workspace per client",d:"Keep each client's work in its own workspace, with folders inside for their projects, and drag pieces where they belong. Pro and Team get unlimited workspaces."},{t:"Share a client's workspace with the team",d:"On the Teams plan, share a client workspace so the whole team can read the pieces filed in it. Each writer still owns their own piece, and no one drafts over anyone."},{t:"Shared voice library",d:"The Teams plan shares up to six saved voices across your users, so every writer drafts each client in the right register."}]},{slug:"content-teams",name:"Marketing teams",metaTitle:"unwrite for marketing teams: on-brand at volume, accurate enough to defend",h1:"On-brand at volume, accurate enough to survive a review.",sub:"Brand voice that holds across the team, with sourcing you can defend when brand or legal asks where a claim came from.",pains:["Brand voice is a PDF nobody's prose actually matches.","A fabricated stat that ships is a brand and legal problem.","More content means more review load, not less.","Generic AI tells make the brand look like everyone else's feed."],helps:[{t:"Brand voice, enforced",d:'Save the brand\'s voice and draft against it every time, not against a generic "professional" tone.'},{t:"Defensible accuracy",d:"Citations come only from sources it can verify, and the audit flags anything unsupported. When legal asks for the source, there is one."},{t:"Measurable quality",d:'An editorial review that flags what to fix, plus an independent Second read on Pro and Team, makes "good enough to publish" a check, not a feeling.'},{t:"Less review drag",d:"The audit clears the mechanical and tell-level issues first, so your editors spend review time on substance."},{t:"A shared workspace for the team",d:"On the Teams plan, share a workspace so the whole team can read the pieces filed in it, and share the brand's saved voices across every user, up to six, so the register holds across writers. Each writer still owns their own draft."}]},{slug:"grant-writers",name:"Grant writers",metaTitle:"unwrite for grant writers: sourced, checked, and disclosure-ready",h1:"In grant writing, one invented statistic sinks the document.",sub:"Draft fast, but cite only sources it can verify, flag what isn't supported, and keep it disclosure-ready.",pains:["AI citation hallucination rates make raw output unusable without a full re-check.","A fabricated figure in a proposal is an operational disaster, not a typo.","Funders increasingly require AI-use disclosure.","The verification tax cancels out the time AI was supposed to save."],helps:[{t:"Source-grounded by rule",d:"It cites only sources it can verify, whether yours or ones it researches and checks, and when a claim has no support the draft flags the gap instead of inventing a number."},{t:"Your claims traceable",d:"Source check runs claim by claim (up to 200 per piece), matching each citation back to the source it came from, so each reference resolves to real material you can hand a funder."},{t:"Disclosure-ready",d:"A clear, auditable process you can describe honestly to a funder."},{t:"Speed without the re-check spiral",d:"The audit front-loads the verification you'd otherwise do line by line."}]},{slug:"comms",name:"PR and comms teams",metaTitle:"unwrite for PR and comms teams: exec messaging you can put a name on",h1:"The words go out under an executive's name. Make them true.",sub:"Press releases, exec bylines, and internal comms in the leader's voice, with stats and quotes checked against sources before they reach legal.",pains:["A release goes out under the CEO's name; a wrong number is the company's problem, not the model's.","Generic AI flattens a distinctive executive voice into corporate wallpaper.","Legal and comms want to know where every claim came from before they sign off.","You rewrite the same boilerplate and messaging a dozen ways, and it still drifts off-brand."],helps:[{t:"The exec's voice, held",d:"Train the leader's voice from their real writing and draft every byline and statement in it, not a chatbot's average register."},{t:"Your claims checked to a source",d:"The Source check verifies your stats and factual claims against your material (up to 200 per piece) and flags anything it can't support, so unverified claims are caught before they reach legal."},{t:"A verdict for sign-off",d:"The Editorial Review and, on Pro and Team, the Second read produce a verdict you can attach to the approval, and the downloadable audit report traces each claim to its source."},{t:"Every word is yours",d:"You see each AI edit and one click puts it back, so what ships under a name is what a person signed off on."}]},{slug:"founders",name:"Founders",metaTitle:"unwrite for founders: your voice, at the speed you actually have",h1:"You can't afford a ghostwriter yet. You can still sound like you wrote it.",sub:"Launch posts, technical blogs, and thought leadership in your own register, drafted fast and stripped of the AI tells that make founders sound like everyone else.",pains:["You're building; you don't have hours to write, and the generic-AI version sounds like it.","Your voice is technical and specific; a chatbot smooths it into LinkedIn mush.","A wrong technical claim in a launch post is a credibility hit with the exact people you want.","Hiring a writer isn't in the budget, and templates read like templates."],helps:[{t:"Your voice, from a sample",d:"Show it a few things you've written and it drafts in your own register, not a professional-conversational default."},{t:"None of the AI tells",d:"The engine scans for and strips the stock phrases, em dashes, and sing-song rhythm that flag a post as machine-written."},{t:"Checked, not hand-waved",d:"Add your own sources or let it research and verify them; the Source check flags what it can't back, so an unsupported number surfaces before the launch post ships."},{t:"Fast, and yours",d:"A finished draft from a short brief, then plain-language edits that arrive as tracked changes you approve. Minutes, not an afternoon."}]},{slug:"copywriters",name:"Copywriters",metaTitle:"unwrite for copywriters: articles, blogs, and thought leadership in your voice, tells stripped",h1:"The piece carries your name. Make it sound like you, not a chatbot.",sub:"Articles, blog posts, and thought-leadership pieces in your voice and your client's, checked against the sources you supply, and stripped of the tells that read as machine-written.",pains:["Raw AI drafts sound like every other AI article, and readers have learned to tune them out.","A proof point the model invented is your reputation on the byline, not the model's.","Revision rounds on a fixed fee eat the margin you quoted.","One AI tell in the opening and the client starts questioning the whole piece."],helps:[{t:"Their voice, saved once",d:"Draft a client's voice from a sample and reuse it, so the piece reads as their brand, not a generic professional register."},{t:"Built from a real brief",d:"Every piece is built from the audience, their stage, the one point to land, and the objection to answer, the same discovery call you'd run yourself."},{t:"No tells to explain away",d:"Stock phrases, em dashes, and sing-song parallel rhythm are what the engine scans for and strips before the draft reaches you."},{t:"Nothing you can't undo",d:"You see every AI edit and one click puts it back, and the Source check flags what it can't back to a source, before the piece ships."}]},{slug:"bloggers",name:"Bloggers",metaTitle:"unwrite for bloggers: your voice at volume, without the AI tells",h1:"Publish in your own voice, at the pace blogging actually demands.",sub:"Posts and articles in your register, drafted fast from a brief, stripped of the tells, and sourced where a claim needs backing.",pains:["One post that reads as AI costs trust you spent years building with your readers.","Generic AI smooths a distinctive voice into the same blog-shaped mush as everyone else's.","More posts means more editing, not less, and the calendar never lets up.","A wrong fact in a post is a credibility hit with exactly the readers you want to keep."],helps:[{t:"Your voice, from a sample",d:"Show it a few posts you've written and it drafts in your own register, not a professional-conversational default."},{t:"None of the AI tells",d:"The engine scans for and strips the stock phrases, em dashes, and sing-song rhythm that flag a post as machine-written."},{t:"Checked when it counts",d:"For a sourced post, add your own material or let it research and verify, and the Source check flags what it can't back."},{t:"A draft you finish, not fight",d:"A finished first draft from a short brief, with up to three headlines and three subheads to swap, then plain-language edits that arrive as tracked changes you approve."}]},{slug:"newsletter-writers",name:"Newsletter writers",metaTitle:"unwrite for newsletter writers: your voice, issue after issue",h1:"Your subscribers pay for your voice. Ship it every week without burning out.",sub:"Essays and issues in your own register, drafted fast and stripped of the tells, so the person who hits send still sounds like you.",pains:["Your subscribers pay for you, so an issue that reads as generic AI feels like a bait and switch.","A chatbot flattens the specific, personal voice that made people subscribe in the first place.","The weekly cadence is relentless, and the blank page arrives again every seven days.","One flat, off-voice issue and the unsubscribes tell you they noticed."],helps:[{t:"Your voice, held",d:"Train your voice from past issues and draft each new one in it, not a smoothed-out professional average."},{t:"None of the AI tells",d:"The stock phrases, em dashes, and sing-song rhythm that give a machine away are scanned for and stripped before you see the draft."},{t:"A starting draft, not a ghost",d:"A finished first draft from a short brief that you shape into your own, so the cadence stops running you."},{t:"Every line is yours",d:"You see each AI edit and one click puts it back, so what goes out under your name is what you signed off on."}]}],a=[{slug:"jasper",name:"Jasper",metaTitle:"unwrite vs Jasper: brand voice with an editorial review that flags what to fix",category:"Marketing AI platform",price:"$69/mo per seat",oneLiner:"Jasper is a broad marketing content platform with brand-voice tooling. unwrite is the one that reviews each piece against an editorial standard and flags exactly what to fix before it ships.",cells:["yes","partial","no","partial","partial","partial","no","yes","no","partial","no"],differentJob:"Jasper's job is running a marketing content operation: campaigns and workflows at scale. unwrite's job is the piece itself, drafted in your voice, checked against sources, and audited against a fixed editorial standard before it ships. On the Teams plan, unwrite shares workspaces, a voice library, and pooled credits across a team too, so a shared o
1peration no longer means giving up the per-piece audit.",bottomLine:"Jasper runs your content operation. unwrite makes sure each piece would survive an editor, and proves it."},{slug:"copy-ai",name:"Copy.ai",metaTitle:"unwrite vs Copy.ai: go-to-market scale vs editorial proof",category:"GTM AI platform",price:"$29â$3,000/mo",oneLiner:"Copy.ai automates whole go-to-market motions. unwrite is built for the piece you put your name on.",cells:["yes","partial","no","partial","no","no","no","yes","no","partial","no"],differentJob:"Copy.ai's job is go-to-market automation at volume: many variations across channels, fast. unwrite drafts the article, white paper, or book that carries your name, in one real voice, checked against its sources and audited before it ships. Both write at volume; only one is built for the piece you answer for.",bottomLine:"Copy.ai scales your GTM motion. unwrite is the one that flags a draft that isn't ready, and tells you what to fix."},{slug:"chatgpt",name:"ChatGPT",metaTitle:"unwrite vs ChatGPT: a chat window vs an editorial desk",category:"Frontier model",price:"$20/mo",oneLiner:"ChatGPT writes anything. unwrite writes what you can stand behind: sourced, in your voice, and audited before it ships.",cells:["partial","partial","no","no","no","no","no","yes","partial","no","partial"],differentJob:"ChatGPT's job is to be a general assistant: brainstorming, research, summaries, a first pass at anything. Use it to think. unwrite's job is the writing you publish: your voice held to the last line, citations verified against their sources, and an audit that tells you exactly what to fix.",bottomLine:"ChatGPT hands you a draft and a shrug. unwrite hands you a verdict."},{slug:"claude",name:"Claude",metaTitle:"unwrite vs Claude: the engine vs the editorial desk around it",category:"Frontier model",price:"$20/mo",oneLiner:"Claude has excellent prose and voice-from-a-sample. unwrite is the editorial desk built around a frontier model: the audit, the Second read, the no-fabrication rule.",cells:["yes","partial","no","no","no","no","no","yes","partial","no","partial"],differentJob:"Claude's job is to be a frontier model, and unwrite runs on frontier Claude models itself. What you're buying with unwrite is everything the model doesn't do on its own: the editorial engine, the no-fabrication rule, the edits you see and can undo, and the independent Second read. A model writes. unwrite edits, verifies, and proves.",bottomLine:"Claude is an engine we use too. unwrite adds the proof you actually answer for."},{slug:"writer",name:"Writer",metaTitle:"unwrite vs Writer: enterprise governance vs a per-piece editorial review",category:"Enterprise gen-AI platform",price:"Self-serve from ~$29/user (annual); Enterprise custom",oneLiner:"Writer governs content across the enterprise. unwrite adds what it doesn't ship for the individual writer: an editorial review that flags what to fix on every piece.",cells:["yes","partial","no","partial","partial","no","no","yes","no","partial","partial"],differentJob:"Writer's job is enterprise governance: policies, security reviews, IT integration across a company. unwrite's job is the level where the writing actually happens, the piece: drafted in a real voice, checked claim by claim, and reviewed before it ships. For a working team, unwrite adds shared workspaces, a shared voice library, and admin controls, without the enterprise-IT overhead.",bottomLine:"Writer governs the system. unwrite audits the piece."},{slug:"grammarly",name:"Grammarly",metaTitle:"unwrite vs Grammarly: checking writing vs drafting to a standard",category:"Writing assistant",price:"$12â30/mo",oneLiner:"Grammarly checks writing everywhere you type. unwrite drafts to a proprietary editorial engine and audits the result.",cells:["partial","no","no","no","no","partial","no","yes","no","no","no"],differentJob:"Grammarly's job is checking whatever you typed, wherever you typed it. Checking isn't drafting. unwrite starts earlier: it writes the piece in your voice to an editorial standard, then audits the result and hands you the verdict.",bottomLine:"Grammarly checks what you wrote. unwrite drafts to a
1standard and proves it's clean."}];e.s(["COMPETITORS",0,a,"PERSONAS",0,t,"getCompetitor",0,function(e){return a.find(t=>t.slug===e)},"getPersona",0,function(e){return t.find(t=>t.slug===e)}])},34107,e=>{"use strict";var t=e.i(843476),a=e.i(522016),r=e.i(618566),n=e.i(271645),i=e.i(23091),s=e.i(336420);let o="relative text-neutral-600 transition-colors hover:text-neutral-900 after:pointer-events-none after:absolute after:-bottom-1 after:left-0 after:h-[1.5px] after:rounded-full after:bg-amber-600 after:transition-all after:duration-300",l=`${o} after:w-0 hover:after:w-full`,d=`${o} text-neutral-900 after:w-full`;function c(e,t){return"menu"===e.kind?!!e.activePrefix&&t.startsWith(e.activePrefix):t===e.href}let u=[{kind:"menu",label:"Products",items:[{href:"/pricing#pro",label:"unwrite Pro"},{href:"/teams",label:"unwrite Teams"}]},{kind:"link",href:"/methodology",label:"Methodology"},{kind:"menu",label:"Use Cases",items:s.PERSONAS.map(e=>({href:`/for/${e.slug}`,label:e.name})),activePrefix:"/for/"},{kind:"link",href:"/pricing",label:"Pricing"},{kind:"link",href:"/faq",label:"FAQs"}];function h({href:e,label:r,className:n,onNavigate:i,current:s}){let o=s?"page":void 0;return e.startsWith("/#")?(0,t.jsx)("a",{href:e,className:n,onClick:i,"aria-current":o,children:r}):(0,t.jsx)(a.default,{href:e,className:n,onClick:i,"aria-current":o,children:r})}function p({label:e,items:a,active:r}){let[i,s]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!i)return;let e=e=>{"Escape"===e.key&&s(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[i]),(0,t.jsxs)("div",{className:"relative",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),onFocus:()=>s(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||s(!1)},children:[(0,t.jsxs)("button",{type:"button","aria-haspopup":"true","aria-expanded":i,"aria-current":r?"page":void 0,onClick:()=>s(!0),className:`inline-flex items-center gap-1 ${r?d:l}`,children:[e,(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none","aria-hidden":!0,className:`transition-transform ${i?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M2 3.5L5 6.5L8 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),i?(0,t.jsx)("div",{className:"absolute left-0 top-full z-50 pt-2",children:(0,t.jsx)("div",{className:"min-w-[13rem] rounded-xl border border-[#e7ded0] bg-[#faf9f7] p-1.5 shadow-[0_1px_2px_rgba(0,0,0,0.04),0_18px_44px_-24px_rgba(70,50,20,0.28)]",children:(0,t.jsx)("ul",{className:"flex flex-col",children:a.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(h,{...e,onNavigate:()=>s(!1),className:"block rounded-lg px-3 py-2 text-sm text-neutral-700 transition-colors hover:bg-[#f1e9da] hover:text-amber-700"})},e.href))})})}):null]})}function m({label:e,items:a,onNavigate:r}){let[i,s]=(0,n.useState)(!1);return(0,t.jsxs)("div",{className:"border-b border-[#efe7db] last:border-0",children:[(0,t.jsxs)("button",{type:"button","aria-expanded":i,onClick:()=>s(e=>!e),className:"flex w-full items-center justify-between py-3 text-sm font-medium text-neutral-800",children:[e,(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none","aria-hidden":!0,className:`transition-transform ${i?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M2 3.5L5 6.5L8 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),i?(0,t.jsx)("ul",{className:"pb-2",children:a.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(h,{...e,onNavigate:r,className:"block py-2 pl-3 text-sm text-neutral-600 hover:text-amber-700"})},e.href))}):null]})}e.s(["default",0,function(){let[e,s]=(0,n.useState)(!1),o=(0,r.usePathname)();return(0,t.jsxs)("header",{className:"sticky top-0 z-40 border-b border-[#e7ded0]/80 bg-[#faf9f7]/85 backdrop-blur",children:[(0,t.jsxs)("nav",{className:"mx-auto flex h-16 max-w-6xl items-center justify-between px-6",children:[(0,t.jsx)(i.default,{size:"sm",trademark:!0}),(0,t.jsx)("div",{className:"hidden items-center gap-7 text-sm sm:flex",children:u.map(e=>{let a=c(e,o);return"menu"===e.kind?(0,t.jsx)(p,{label:e.label,items:e.items,active:a},e.label):(0,t.jsx)(h,{...e,current:a,className:a?d:l},e.href)})}),(0,t.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,t.jsx)(a.default,{href:"/signin?callbackUrl=/enter",className:`hidden font-medium sm:inline-block ${l}`,children:"Sign in"}),(0,t.jsx)(a.default,{href:"/write?new=1",className:"rounded-lg bg-amber-500 px-4 py-2 text-sm font-medium text-neutral-900 transition hover:bg-amber-400",children:"Try it free"}),(0,t.jsx)("button",{type:"button","aria-label":e?"Close menu":"Open menu","aria-expanded":e,onClick:()=>s(e=>!e),className:"flex h-9 w-9 items-center justify-center rounded-lg border border-[#e7ded0] text-neutral-700 sm:hidden",children:(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,
1children:e?(0,t.jsx)("path",{d:"M3 3l10 10M13 3L3 13",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"}):(0,t.jsx)("path",{d:"M2 4.5h12M2 8h12M2 11.5h12",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})})})]})]}),e?(0,t.jsx)("div",{className:"border-t border-[#e7ded0]/80 bg-[#faf9f7] px-6 py-3 sm:hidden",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[u.map(e=>{let a=c(e,o);return"menu"===e.kind?(0,t.jsx)(m,{label:e.label,items:e.items,onNavigate:()=>s(!1)},e.label):(0,t.jsx)(h,{...e,current:a,onNavigate:()=>s(!1),className:`border-b border-[#efe7db] py-3 text-sm font-medium last:border-0 ${a?"text-amber-700":"text-neutral-800"}`},e.href)}),(0,t.jsx)(a.default,{href:"/signin?callbackUrl=/enter",onClick:()=>s(!1),className:"py-3 text-sm font-medium text-neutral-800",children:"Sign in"})]})}):null]})}])},359054,e=>{"use strict";var t=e.i(843476),a=e.i(271645);let r=[{label:"Blog post",kind:"blog",headline:"Lessons from running a one-person business",subtitle:"The productivity machine assumes your problem is discipline. It isn't.",byline:"By Dana Cole, Founder",body:"The bottleneck was never discipline. It was the dream client who paid on time, never argued scope, and quietly ate two days of every week. On paper she was perfect. In practice she was the reason I turned down three better-fit projects that year. Saying no to her was the raise I had chased all along, and the first quiet Monday felt like getting a piece of my week back.",chips:["voice matched","no AI tells","no invented stats"]},{label:"Landing page",kind:"landing",headline:"Stop guessing where your hours go",subtitle:"See every minute in one glance, then bill it without opening a spreadsheet.",body:"Time tracking that runs itself. Start a timer, or let it fill your day from what you actually worked on, then turn a week into an invoice in two clicks. No manual entry, no reconstructing Friday from memory, no more guessing which client ate your afternoon. See where the hours really go, bill every one of them, and close your books before dinner.",cta:"Start free, no card",chips:["benefit-led","one clear CTA","no AI tells"]},{label:"Email",kind:"email",headline:"Your plan just got simpler",subtitle:"Three tiers, down to one",body:"We cut three plans to one, because you told us the middle tier was where everyone actually lived. Same work, fewer decisions, and your price drops on the next invoice with nothing to do on your end. I know plan changes usually come with a catch, so I would rather walk you through it than send you to a help doc.",signoff:"If a quick call would help, grab whatever time works for you.",link:"Book a meeting with me",chips:["subject + preheader","clear next step","sources verified"]},{label:"Book/ebook outline",kind:"ebook",headline:"The Solo Operator's Field Guide",chapters:[{t:"1. The discipline myth",s:"Why 'work harder' is the wrong diagnosis for a stalled business."},{t:"2. Pricing for one",s:"Rates that fund a life, not just a full calendar."},{t:"3. The client audit",s:"Finding the accounts that quietly cost more than they pay."},{t:"4. Systems over hustle",s:"Three workflows that buy back a day a week."},{t:"5. The one-week reset",s:"A short plan to claw back your calendar starting Monday."}],chips:["chaptered","on type","no AI tells"]},{label:"Report",kind:"report",headline:"State of Solo Business, 2026",subtitle:"Findings and recommendations for independent operators",meta:"7 pages · 2,500 words · exec summary written last",body:"Independent operators grew for a fourth straight year, but median take-home stalled. The gap traces to underpricing and unbilled scope, not demand. Operators who raised rates once in the period kept more than those who simply added clients. Section 3 quantifies the leak, Section 4 models the fix, and the recommendations that follow are ordered by the return each one earns per hour of effort.",chips:["exec summary","every claim sourced","no AI tells"]}];e.s(["default",0,function(){let[e,n]=(0,a.useState)(0),[i,s]=(0,a.useState)(""),[o,l]=(0,a.useState)(""),[d,c]=(0,a.useState)("headline"),u=(0,a.useRef)(!1);(0,a.useEffect)(()=>
1{if(u.current=window.matchMedia("(prefers-reduced-motion: reduce)").matches,u.current)return;let e=setInterval(()=>{s(""),l(""),c("headline"),n(e=>(e+1)%r.length)},13500);return()=>clearInterval(e)},[]),(0,a.useEffect)(()=>{let t,a=r[e];if(u.current){s(a.headline),l(a.body??""),c("done");return}let n=!1,i=(e,a,r)=>new Promise(i=>{let s=0;t=setInterval(()=>{if(n)return clearInterval(t);s+=1,a(e.slice(0,s)),s>=e.length&&(clearInterval(t),i())},r)});return(async()=>{if((await i(a.headline,s,30),!n)&&(c("body"),await new Promise(e=>setTimeout(e,380)),!n)){if(!a.body||(await i(a.body,l,13),!n))c("done")}})(),()=>{n=!0,t&&clearInterval(t)}},[e]);let h=r[e],p="done"===d,m="headline"!==d,f=()=>(0,t.jsx)("span",{className:"hd-cursor","aria-hidden":!0}),y=e=>`transition-opacity duration-500 ${e?"opacity-100":"opacity-0"}`;return(0,t.jsxs)("div",{className:"self-center",children:[(0,t.jsxs)("div",{className:"flex h-[432px] w-full max-w-md flex-col overflow-hidden rounded-2xl border border-[#ece3d4] bg-white shadow-[0_1px_2px_rgba(0,0,0,0.03),0_18px_44px_-22px_rgba(70,50,20,0.22)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[#efe7db] px-4 py-2.5",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,t.jsxs)("span",{className:"inline-flex items-baseline text-sm font-extrabold lowercase leading-none tracking-tight text-neutral-900",children:["unwrite",(0,t.jsx)("span",{"aria-hidden":!0,className:"ml-[0.1em] inline-block w-[0.12em] self-stretch rounded-full bg-amber-500",style:{minHeight:"0.9em"}})]}),(0,t.jsx)("span",{className:"text-[9px] font-medium uppercase tracking-widest text-neutral-400",children:"studio"})]}),(0,t.jsxs)("span",{className:`flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${p?"border-[#2F5D50]/25 bg-[#2F5D50]/[0.08] text-[#2F5D50]":"border-neutral-300 bg-neutral-100 text-neutral-500"}`,children:[(0,t.jsx)("span",{className:`h-1.5 w-1.5 rounded-full ${p?"bg-[#2F5D50]":"bg-neutral-500"}`}),p?"clean read":"draftingâ¦"]})]}),(0,t.jsx)("div",{className:`h-[3px] w-full transition-colors duration-500 ${p?"bg-[#2F5D50]":"bg-[#ece3d4]"}`}),(0,t.jsxs)("div",{className:"draft-serif animate-fade-in min-h-0 flex-1 overflow-hidden px-6 py-4",children:[(0,t.jsx)("p",{className:"font-sans text-[10px] font-medium uppercase tracking-widest text-neutral-600",children:h.label}),"email"===h.kind?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"mt-2 font-sans text-[9px] font-semibold uppercase tracking-widest text-neutral-400",children:"Subject"}),(0,t.jsxs)("p",{className:"text-[15px] font-semibold text-neutral-900",children:[i,"headline"===d?(0,t.jsx)(f,{}):null]})]}):(0,t.jsxs)("p",{className:"mt-2 text-[19px] font-bold leading-tight tracking-tight text-neutral-900",children:[i,"headline"===d?(0,t.jsx)(f,{}):null]}),h.subtitle?(0,t.jsxs)("p",{className:`mt-1.5 text-[13px] italic leading-snug text-neutral-500 ${y(m)}`,children:["email"===h.kind?(0,t.jsx)("span",{className:"font-sans not-italic text-neutral-400",children:"Preheader: "}):null,h.subtitle]}):null,h.byline?(0,t.jsx)("p",{className:`mt-1 font-sans text-[11px] text-neutral-400 ${y(m)}`,children:h.byline}):null,h.meta?(0,t.jsx)("p",{className:`mt-1.5 font-sans text-[10px] uppercase tracking-wide text-neutral-400 ${y(m)}`,children:h.meta}):null,h.body?(0,t.jsxs)("p",{className:"mt-3 text-[13px] leading-7 text-neutral-600",children:[o,"body"===d?(0,t.jsx)(f,{}):null]}):null,h.chapters?(0,t.jsx)("div",{className:`mt-3 space-y-1.5 ${y(p)}`,children:h.chapters.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[13px] font-semibold text-neutral-800",children:e.t}),(0,t.jsx)("p",{className:"font-sans text-[11px] leading-snug text-neutral-500",children:e.s})]},e.t))}):null,"email"===h.kind&&h.signoff?(0,t.jsx)("p",{className:`mt-2.5 text-[13px] leading-7 text-neutral-700 ${y(p)}`,children:h.signoff}):null,"email"===h.kind&&h.link?(0,t.jsx)("p",{className:`mt-1.5 ${y(p)}`,children:(0,t.jsxs)("span",{className:"font-sans text-[12px] font-medium text-amber-700 underline underline-offset-2",children:[h.link," â"]})}):null,h.cta?(0,t.jsx)("div",{className:`mt-3 ${y(p)}`,children:(0,t.jsx)("span",{className:"inline-block rounded-md bg-amber-500 px-3 py-1.5 font-sans text-[11px] font-semibold text-neutral-900",children:h.cta})}):null]},e),(0,t.jsx)("div",{className:`flex flex-wrap justify-center gap-1.5 border-t border-[#efe7db] px-6 py-3 font-sans ${y(p)}`,children:h.chips.map(e=>(0,t.jsxs)("span",{className:"rounded-full border border-[#2F5D50]/25 bg-[#2F5D50]/[0.08] px-2 py-0.5 text-[10px] font-medium text-[#2F5D50]",children:["â ",e]},e))})]}),(0,t.jsx)("div",{className:"mt-3 flex justify-center gap-1.5","aria-hidden":!0,
1children:r.map((a,r)=>(0,t.jsx)("span",{className:`h-1.5 rounded-full transition-all ${r===e?"w-5 bg-amber-600":"w-1.5 bg-[#d9cfbf]"}`},r))})]})}])},840630,e=>{"use strict";let t={pricePerCredit:5,pricePerCreditByCurrency:{usd:5,eur:5},minCredits:3,maxCredits:100},a={usd:{symbol:"$",label:"USD",aria:"Prices in US dollars"},eur:{symbol:"â¬",label:"EUR",aria:"Prices in euros"}};e.s(["CURRENCY_META",0,a,"PRICING_NOTES",0,["A credit is what a finished piece costs. Short-form (a blog post or a press release) costs 1 credit. Long-form content costs more because it is drafted section by section: a narrative article costs 2 credits, a white paper or report costs 3, and a book/ebook costs 5. Those are the base costs. A piece run well past its usual length, or one where unwrite researches extra sources for you, costs more, and setup shows you what it adds before you generate.","Revisions, Second reads, and Continuity reads are included up to a per-piece cap: 3 revisions on Free; 10 revisions, 5 Second reads, and (on books) 2 Continuity reads per piece on paid plans. A piece long enough to be read in parts includes 2 Second reads rather than 5, because a read of one costs several times a short one. Past any of those caps, an extra Second read or Continuity read is 1 credit each.","Try a real piece free, with no timer and no card required. Judge the writing before you pay.","Every tier is written by our flagship model. There is no second-rate output on a cheaper plan."],"TIERS",0,[{id:"free",name:"Free",price:0,prices:{usd:{month:0,year:0},eur:{month:0,year:0}},blurb:"Judge the writing on one real piece. No card required to start.",priceAnnual:0,creditLimit:1,creditPeriod:"once",pooled:!1,seats:1,revisionsPerPiece:3,secondReadsPerPiece:0,secondReadsPerLongPiece:0,continuityChecksPerPiece:0,retrievalsPerPiece:0,fixesPerPiece:50,draftsPerPiece:80,credits:"1 credit to try, free",features:["1 credit, enough for one finished short-form piece (a blog post or a press release)","Guided setup, no prompt engineering: answer a few questions, get a finished draft","The full Editorial Review, plus a one-click source check that verifies your claims against a real source (up to 200 per piece)","No sources of your own? unwrite researches and verifies them","Voice matching from your writing sample","Edit in plain language, and undo anything in one click (up to 3 passes)","Live spelling, grammar, and style, checked privately in your browser","Export to Word, PDF, Markdown, and rich clipboard"],cta:"Start free"},{id:"pro",name:"Pro",price:49,prices:{usd:{month:49,year:490},eur:{month:45,year:450}},blurb:"For the professional who answers to clients. Ghostwriters, freelancers, solo consultants.",priceAnnual:490,creditLimit:15,creditPeriod:"month",pooled:!1,seats:1,revisionsPerPiece:10,secondReadsPerPiece:5,secondReadsPerLongPiece:2,continuityChecksPerPiece:2,retrievalsPerPiece:2,fixesPerPiece:250,draftsPerPiece:250,highlight:!0,credits:"15 credits a month",features:["15 credits a month, revisions included","The Second read, 5 per piece and 2 on a piece long enough to be read in parts, then 1 credit each: a fresh, independent pass re-reads your draft cold and marks what it would cut","The Continuity read on books, two per piece included, then 1 credit each: a fresh pass reads every word, comparing your chapters and marking where a term, a promise, or the voice drifts","Up to 10 revision passes per piece","Find a source for a claim your own sources do not cover: 2 included per piece, then 1 credit for each source found, and unwrite asks before a find costs a credit","Long-form drafting: outline-gated non-fiction books/ebooks, white papers, and reports, with an outline you can reopen after drafting and redraft free (a version is saved first, so nothing is lost)","3 saved voice profiles, ready to reuse across pieces","Saved setups: capture a client's voice, positioning, material, and style once, then apply it at the start of any new piece for them","Unlimited workspaces, with folders inside them, one for each client or project","Every citation style: inline hyperlinks, MLA, APA, Chicago, Harvard. Plus AP prose style","Everything in Free"],cta:"Go Pro"}
1,{id:"team",name:"Teams",price:129,prices:{usd:{month:129,year:1290},eur:{month:119,year:1190}},blurb:"For an agency or content team writing under one standard.",priceAnnual:1290,creditLimit:50,creditPeriod:"month",pooled:!0,seats:3,revisionsPerPiece:10,secondReadsPerPiece:5,secondReadsPerLongPiece:2,continuityChecksPerPiece:2,retrievalsPerPiece:2,fixesPerPiece:250,draftsPerPiece:250,credits:"50 credits a month, pooled",features:["50 credits a month, pooled across the team","Everything in Pro (10 revisions, 5 Second reads or 2 on a piece read in parts, and 2 included Continuity reads per piece)","3 users","Review and approval: send a finished piece to a teammate, get suggested edits and comments right on the draft, and approve it or send it back with notes before it goes out. Invite review-only teammates who can approve without using a paid user","Shared workspaces: share a client's workspace, folders and all, across the team so everyone can read the pieces filed in it. Teammates read the shared pieces, and each writer still owns their own","Shared voice library, up to 6 profiles","Shared saved setups: share a client setup with the team so everyone starts that client's pieces from the same place","Admin controls: reassign a member's work to a teammate, deactivate or remove people, transfer ownership, and revoke pending invites"],cta:"Set up your team"}],"TOPUP",0,t,"annualMonthly",0,function(e,t="usd"){return Math.round(e.prices[t].year/12)},"annualSavings",0,function(e,t="usd"){return 12*e.prices[t].month-e.prices[t].year},"formatPrice",0,function(e,t){return`${a[t].symbol}${e.toLocaleString("en-US")}`},"topupQuantity",0,function(e){return Math.min(t.maxCredits,Math.max(t.minCredits,Math.max(0,e)))}])},11998,e=>{"use strict";var t=e.i(558249);let a={FREE:"Free",PRO:"Pro",TEAM:"Teams"};async function r(){try{let e=await fetch("/api/credits",{headers:{Accept:"application/json"}});if(!e.ok)return null;return await e.json()}catch{return null}}async function n(){try{let e=await fetch("/api/credits",{headers:{Accept:"application/json"}});if(401===e.status)return{kind:"anonymous"};if(!e.ok)return{kind:"failed"};return{kind:"ready",balance:await e.json()}}catch{return{kind:"failed"}}}async function i(e,a,r="month",n=u()??"usd"){t.analytics.upgradeClicked({tier:e,source:a});try{let i=await fetch("/api/billing/checkout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tier:e,interval:r,currency:n})}),s=await i.json();if(s.url)return window.location.href=s.url,{ok:!0};if("ALREADY_ACTIVE_SYNCED"===s.code)return window.dispatchEvent(new Event("unwrite:credits")),{ok:!1,error:s.error??"Your plan is already active.",neutral:!0};return t.analytics.checkoutFailed({action:"checkout",tier:e,source:a,reason:"server",status:i.status}),{ok:!1,error:s.error??"Could not start checkout. Please try again."}}catch{return t.analytics.checkoutFailed({action:"checkout",tier:e,source:a,reason:"network"}),{ok:!1,error:"Could not reach checkout. Check your connection and try again."}}}async function s(){try{let e=await fetch("/api/billing/portal",{method:"POST"}),a=await e.json();if(a.url)return window.location.href=a.url,{ok:!0};return t.analytics.checkoutFailed({action:"portal",reason:"server",status:e.status}),{ok:!1,error:a.error??"Could not open the billing portal. Please try again."}}catch{return t.analytics.checkoutFailed({action:"portal",reason:"network"}),{ok:!1,error:"Could not reach the billing portal. Check your connection and try again."}}}async function o(e,a){t.analytics.upgradeClicked({tier:"team",source:e});try{let r=await fetch("/api/billing/change-plan",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({currency:a})}),n=await r.json().catch(()=>null);if(r.ok&&n?.ok)return{ok:!0};return t.analytics.checkoutFailed({action:"change-plan",tier:"team",source:e,reason:"server",status:r.status}),{ok:!1,error:n?.error??"Could not change your plan. Please try again."}}catch{return t.analytics.checkoutFailed({action:"change-plan",tier:"team",source:e,reason:"network"}),{ok:!1,error:"Could not reach billing. Check your connection and try again."}}}async function l(e,a=u()??"usd"){t.analytics.topupClicked({source:e});try{let r=await fetch("/api/billing/topup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({currency:a})}),n=await r.json();if(n.url)return window.location.href=n.url,{ok:!0};return t.analytics.checkoutFailed({action:"topup",source:e,reason:"server",status:r.status}),{ok:!1,error:n.error??"Could not start the top-up. Please try again."}}catch{return t.analytics.checkoutFailed({action:"topup",source:e,reason:"network"}),{ok:!1,error:"Could not reach checkout. Check your connection and try again."}}}async function d(e){try{let t=await fetch("/api/team/request-credits",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({note:e})}),a=await t.json().catch(()=>({}));if(t.ok)return{ok:!0};return{ok:!1,error:a.error??"Could not send your request. Please try again."}}catch{return{ok:!1,error:"Could not reach the server. Check your connection and try again."}}}let c="unwrite:currency";function u(){try{let e=window.localStorage.getItem(c);return"eur"===e||"usd"===e?e:null}catch{return null}}e.s(["changePlan",0,o,"fetchBalance",0,r,"fetchPlan",0,n,"openPortal",0,s,"planLabel",0,function(e){return e.agency?"Agency":a[e.tier]},"rememberCurrency",0,function(e){try{window.localStorage.setItem(c,e)}catch{}},"requestTeamCredits",0,d,"startCheckout",0,i,"startTopup",0,l,"storedCurrency",0,u])},399763,e=>{"use strict";var t=e.i(843476),a=e.i(522016),r=e.i(271645),n=e.i(558249),i=e.i(840630),s=e.i(11998);function o({children:e}){return(0,t.jsxs)("li",{className:"flex items-start gap-2.5 text-sm leading-6 text-neutral-700",children:[(0,t.jsx)("span",{className:"mt-1 inline-block h-4 w-4 shrink-0 rounded-full bg-imprint/10 text-center text-[10px] font-bold leading-4 text-imprint",children:"â"}),e]})}e.s(["default",0,function({showHeader:e=!0,variant:l="full"}){let[d,c]=(0,r.useState)("annual"),[u,h]=(0,r.useState)("usd"),[p,m]=(0,r.useState)(!1),f=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let e=!0;return fetch("/api/currency-default",{headers:{Accept:"application/json"}}).then(e=>e.ok?e.json():null).then(t=>{if(!e)return;let a=t?.eurAvailable===!0;m(a);let r=(0,s.storedCurrency)();"eur"!==r||a?!f.current&&(r?h(r):a&&(t?.currency==="eur"||t?.currency==="usd")&&h(t.currency)):(0,s.rememberCurrency)("usd")}).catch(()=>{}),()=>{e=!1}},[]);let y=(0,r.useRef)(null),g=(0,r.useRef)(null),[w,b]=(0,r.useState)({left:0,width:0}),[x,v]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=()=>{let e="monthly"===d?y.current:g.current;e&&b({left:e.offsetLeft,width:e.offsetWidth})};e();let t=requestAnimationFrame(()=>v(!0));return window.addEventListener("resize",e),()=>{cancelAnimationFrame(t),window.removeEventListener("resize",e)}},[d]),(0,t.jsxs)("section",{id:"pricing",className:"mx-auto max-w-6xl px-6 py-20",children:[e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h2",{className:"font-editorial text-center text-4xl font-medium tracking-tight",children:"Pricing"}),(0,t.jsx)("p",{className:"mx-auto mt-3 max-w-xl text-center text-sm text-neutral-600",children:"A piece is one finished document, revisions included. Pay monthly, or save two months with annual."})]}):(0,t.jsx)("h2",{className:"sr-only",children:"Plans and pricing"}),(0,t.jsxs)("div",{className:"mt-8 flex flex-col items-center",children:[(0,t.jsxs)("div",{className:"relative inline-flex items-center gap-1 rounded-full border border-[#e7ded0] bg-white p-1 shadow-inner",children:[(0,t.jsx)("span",{"aria-hidden":!0,
1className:`absolute bottom-1 top-1 rounded-full bg-[#2F5D50]/15 shadow-sm ${x?"transition-all duration-300 ease-out":""}`,style:{left:w.left,width:w.width}}),["monthly","annual"].map(e=>(0,t.jsxs)("button",{ref:"monthly"===e?y:g,type:"button",onClick:()=>c(e),"aria-pressed":d===e,className:`relative z-10 flex items-center gap-2 rounded-full px-6 py-2.5 text-sm font-semibold capitalize transition-colors ${d===e?"text-[#2F5D50]":"text-neutral-500 hover:text-neutral-800"}`,children:[e,"annual"===e?(0,t.jsx)("span",{className:"rounded-full bg-imprint px-2 py-0.5 text-[11px] font-bold leading-none text-white",children:"Save 2 months"}):null]},e))]}),p?(0,t.jsx)("div",{className:"mt-2.5 inline-flex items-center gap-0.5 rounded-full border border-[#e7ded0] bg-white p-0.5 shadow-inner",role:"group","aria-label":"Currency",children:["usd","eur"].map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{f.current=!0,h(e),(0,s.rememberCurrency)(e)},"aria-pressed":u===e,"aria-label":i.CURRENCY_META[e].aria,className:`relative z-10 rounded-full px-2.5 py-1 text-[11px] font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-amber-500/25 ${u===e?"bg-[#2F5D50]/15 text-[#2F5D50]":"text-neutral-500 hover:text-neutral-800"}`,children:[i.CURRENCY_META[e].symbol," ",i.CURRENCY_META[e].label]},e))}):null,(0,t.jsx)("span",{"aria-live":"polite",className:"sr-only",children:i.CURRENCY_META[u].aria})]}),(0,t.jsx)("div",{className:"mt-10 grid gap-6 lg:grid-cols-3",children:i.TIERS.map(e=>{let r=e.price>0,s="annual"===d&&r,c=s?(0,i.annualMonthly)(e,u):e.prices[u].month;return(0,t.jsxs)("div",{id:"full"===l?e.id:void 0,className:`relative scroll-mt-24 flex flex-col rounded-2xl border bg-white p-7 ${e.highlight?"border-imprint shadow-[0_1px_2px_rgba(0,0,0,0.03),0_18px_44px_-22px_rgba(70,50,20,0.22)]":"border-[#e7ded0]"}`,children:[e.highlight?(0,t.jsx)("span",{className:"absolute -top-3 right-7 rounded-full bg-imprint px-3 py-1 text-xs font-bold text-white",children:"Most popular"}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:e.name}),(0,t.jsx)("p",{className:"mt-1 text-sm text-neutral-500",children:e.blurb}),(0,t.jsxs)("p",{className:"mt-5",children:[(0,t.jsx)("span",{className:"text-4xl font-extrabold tracking-tight",children:(0,i.formatPrice)(c,u)}),(0,t.jsx)("span",{className:"text-sm text-neutral-500",children:r?" / month":""})]}),(0,t.jsx)("p",{className:"mt-1 h-4 text-xs text-neutral-500",children:s?`Billed annually at ${(0,i.formatPrice)(e.prices[u].year,u)}, save ${(0,i.formatPrice)((0,i.annualSavings)(e,u),u)}`:r?"Billed monthly, cancel anytime":"Free to try; no card needed."}),(0,t.jsx)("p",{className:"mt-2 text-xs font-medium text-imprint",children:e.credits}),"full"===l?(0,t.jsx)("ul",{className:"mt-6 flex-1 space-y-2.5",children:e.features.map(e=>(0,t.jsx)(o,{children:e},e))}):null,(0,t.jsx)("div",{className:"mt-auto pt-6",children:(0,t.jsx)(a.default,{href:`/write?plan=${e.id}${s?"&billing=annual":""}${"eur"===u?"¤cy=eur":""}`,onClick:()=>n.analytics.upgradeClicked({tier:e.id,source:"pricing"}),className:"block rounded-lg bg-amber-500 px-4 py-2.5 text-center text-sm font-semibold text-neutral-900 transition hover:bg-amber-400",children:e.cta})})]},e.id)})}),"full"===l?(0,t.jsx)("div",{className:"mx-auto mt-10 max-w-2xl space-y-3 text-left text-xs leading-relaxed text-neutral-500",children:i.PRICING_NOTES.map(e=>(0,t.jsx)("p",{children:e},e))}):(0,t.jsx)("p",{className:"mt-10 text-center text-sm",children:(0,t.jsx)(a.default,{href:"/pricing",className:"font-medium text-amber-700 hover:underline",children:"See all features â"})})]})}])}]);
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.