[{"data":1,"prerenderedAt":514},["ShallowReactive",2],{"docsNavigation":3,"contentNavigation":145,"$f33KesTH4sSy4U-Njo2WelY7ftWNegNpenIZRZJMuYNY":225,"\u002Fblog\u002Fnuxt-saas-boilerplate-comparison":228,"\u002Fblog\u002Fnuxt-saas-boilerplate-comparison-blog-surround":510},[4,32,44,52,60,67,75,83,90,97,104,112,119,127,139],{"title":5,"path":6,"stem":7,"children":8,"icon":31},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started\u002F1.index",[9,11,15,19,23,27],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F01.getting-started\u002F2.installation",{"title":16,"path":17,"stem":18},"Setup","\u002Fdocs\u002Fgetting-started\u002Fsetup","docs\u002F01.getting-started\u002F3.setup",{"title":20,"path":21,"stem":22},"Pull Updates","\u002Fdocs\u002Fgetting-started\u002Fpull-updates","docs\u002F01.getting-started\u002F4.pull-updates",{"title":24,"path":25,"stem":26},"Deployment","\u002Fdocs\u002Fgetting-started\u002Fdeployment","docs\u002F01.getting-started\u002F5.deployment",{"title":28,"path":29,"stem":30},"Going to production","\u002Fdocs\u002Fgetting-started\u002Fgoing-to-production","docs\u002F01.getting-started\u002F6.going-to-production","i-lucide-square-play",{"title":33,"path":34,"stem":35,"children":36,"icon":43},"Architecture","\u002Fdocs\u002Farchitecture","docs\u002F02.architecture\u002F1.index",[37,39],{"title":38,"path":34,"stem":35},"Tech Stack",{"title":40,"path":41,"stem":42},"Layers","\u002Fdocs\u002Farchitecture\u002Flayers","docs\u002F02.architecture\u002F2.layers","i-lucide-layers",{"title":45,"path":46,"stem":47,"children":48,"icon":51},"Database","\u002Fdocs\u002Fdatabase","docs\u002F03.database\u002F1.index",[49],{"title":50,"path":46,"stem":47},"PostgreSQL","i-lucide-database",{"title":53,"path":54,"stem":55,"children":56,"icon":59},"Emails","\u002Fdocs\u002Femails","docs\u002F04.emails\u002F1.index",[57],{"title":58,"path":54,"stem":55},"Overview","i-lucide-mail",{"title":61,"path":62,"stem":63,"children":64,"icon":66},"Authentication","\u002Fdocs\u002Fauthentication","docs\u002F05.authentication\u002F1.index",[65],{"title":58,"path":62,"stem":63},"i-lucide-lock-keyhole",{"title":68,"path":69,"stem":70,"children":71,"icon":74},"Payments","\u002Fdocs\u002Fpayments","docs\u002F06.payments\u002F1.index",[72],{"title":73,"path":69,"stem":70},"Polar","i-lucide-circle-dollar-sign",{"title":76,"path":77,"stem":78,"children":79,"icon":82},"Admin","\u002Fdocs\u002Fadmin","docs\u002F07.admin\u002F1.index",[80],{"title":81,"path":77,"stem":78},"Features","i-lucide-user-cog",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Images","\u002Fdocs\u002Fimages","docs\u002F08.images\u002F1.index",[88],{"title":58,"path":85,"stem":86},"i-lucide-image",{"title":91,"path":92,"stem":93,"children":94,"icon":96},"i18n","\u002Fdocs\u002Fi18n","docs\u002F09.i18n\u002F1.index",[95],{"title":58,"path":92,"stem":93},"i-lucide-languages",{"title":98,"path":99,"stem":100,"children":101,"icon":103},"SEO","\u002Fdocs\u002Fseo","docs\u002F10.seo\u002F1.index",[102],{"title":58,"path":99,"stem":100},"i-lucide-globe",{"title":105,"path":106,"stem":107,"children":108,"icon":111},"Analytics","\u002Fdocs\u002Fanalytics","docs\u002F11.analytics\u002F1.index",[109],{"title":110,"path":106,"stem":107},"Umami","i-lucide-chart-line",{"title":113,"path":114,"stem":115,"children":116,"icon":118},"Security","\u002Fdocs\u002Fsecurity","docs\u002F12.security\u002F1.index",[117],{"title":58,"path":114,"stem":115},"i-lucide-file-lock",{"title":120,"path":121,"stem":122,"children":123,"icon":126},"Testing","\u002Fdocs\u002Ftesting","docs\u002F13.testing\u002F1.index",[124],{"title":125,"path":121,"stem":122},"E2E Testing","i-lucide-test-tube",{"title":128,"path":129,"stem":130,"children":131,"icon":138},"Support","\u002Fdocs\u002Fsupport","docs\u002F14.support\u002F1.index",[132,134],{"title":133,"path":129,"stem":130},"Help",{"title":135,"path":136,"stem":137},"Troubleshooting","\u002Fdocs\u002Fsupport\u002Ftroubleshooting","docs\u002F14.support\u002F2.troubleshooting","i-lucide-message-circle-question",{"title":140,"path":141,"stem":142,"children":143},"LLMs","\u002Fdocs\u002Fllms","docs\u002F15.llms\u002F1.index",[144],{"title":140,"path":141,"stem":142},[146,168],{"title":147,"path":148,"stem":149,"children":150,"page":167},"Blog","\u002Fblog","blog",[151,155,159,163],{"title":152,"path":153,"stem":154},"How to Build a SaaS with Nuxt 4, better-auth, and Polar","\u002Fblog\u002Fbuild-saas-with-nuxt-4-better-auth-polar","blog\u002Fbuild-saas-with-nuxt-4-better-auth-polar",{"title":156,"path":157,"stem":158},"DIY vs Nuxt Starter Kit — The Real Cost of Auth and Payments","\u002Fblog\u002Fdiy-vs-nuxt-starter-kit-cost","blog\u002Fdiy-vs-nuxt-starter-kit-cost",{"title":160,"path":161,"stem":162},"Nuxt Boilerplate for Solo Founders — Ship Without Rebuilding Foundations","\u002Fblog\u002Fnuxt-boilerplate-for-solo-founders","blog\u002Fnuxt-boilerplate-for-solo-founders",{"title":164,"path":165,"stem":166},"Best Nuxt SaaS Boilerplate in 2026 — What Actually Matters","\u002Fblog\u002Fnuxt-saas-boilerplate-comparison","blog\u002Fnuxt-saas-boilerplate-comparison",false,{"title":169,"path":170,"stem":171,"children":172,"page":167},"Documentation","\u002Fdocs","docs",[173,181,185,188,191,194,197,200,203,206,209,212,215,218,222],{"title":5,"path":6,"stem":7,"children":174,"icon":31},[175,176,177,178,179,180],{"title":10,"path":6,"stem":7},{"title":12,"path":13,"stem":14},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22},{"title":24,"path":25,"stem":26},{"title":28,"path":29,"stem":30},{"title":33,"path":34,"stem":35,"children":182,"icon":43},[183,184],{"title":38,"path":34,"stem":35},{"title":40,"path":41,"stem":42},{"title":45,"path":46,"stem":47,"children":186,"icon":51},[187],{"title":50,"path":46,"stem":47},{"title":53,"path":54,"stem":55,"children":189,"icon":59},[190],{"title":58,"path":54,"stem":55},{"title":61,"path":62,"stem":63,"children":192,"icon":66},[193],{"title":58,"path":62,"stem":63},{"title":68,"path":69,"stem":70,"children":195,"icon":74},[196],{"title":73,"path":69,"stem":70},{"title":76,"path":77,"stem":78,"children":198,"icon":82},[199],{"title":81,"path":77,"stem":78},{"title":84,"path":85,"stem":86,"children":201,"icon":89},[202],{"title":58,"path":85,"stem":86},{"title":91,"path":92,"stem":93,"children":204,"icon":96},[205],{"title":58,"path":92,"stem":93},{"title":98,"path":99,"stem":100,"children":207,"icon":103},[208],{"title":58,"path":99,"stem":100},{"title":105,"path":106,"stem":107,"children":210,"icon":111},[211],{"title":110,"path":106,"stem":107},{"title":113,"path":114,"stem":115,"children":213,"icon":118},[214],{"title":58,"path":114,"stem":115},{"title":120,"path":121,"stem":122,"children":216,"icon":126},[217],{"title":125,"path":121,"stem":122},{"title":128,"path":129,"stem":130,"children":219,"icon":138},[220,221],{"title":133,"path":129,"stem":130},{"title":135,"path":136,"stem":137},{"title":140,"path":141,"stem":142,"children":223},[224],{"title":140,"path":141,"stem":142},{"amount":226,"formatted":227},99,"$99",{"id":229,"title":164,"body":230,"date":497,"description":498,"draft":167,"extension":499,"image":500,"meta":501,"navigation":502,"path":165,"seo":503,"sitemap":504,"stem":166,"tags":505,"__hash__":509},"blog\u002Fblog\u002Fnuxt-saas-boilerplate-comparison.md",{"type":231,"value":232,"toc":486},"minimark",[233,242,245,250,253,256,272,275,279,282,285,296,299,303,306,309,320,323,327,330,341,344,348,351,362,365,369,388,403,407,483],[234,235,236,237,241],"p",{},"If you are searching for a ",[238,239,240],"strong",{},"Nuxt SaaS boilerplate",", you are probably not looking for another “hello world” template. You want a foundation that survives real users, real payments, and real security reviews.",[234,243,244],{},"Here is what to evaluate before you commit time (or money) to any starter.",[246,247,249],"h2",{"id":248},"_1-auth-that-is-production-shaped-not-demo-shaped","1. Auth that is production-shaped, not demo-shaped",[234,251,252],{},"Login screens are easy. Secure sessions are not.",[234,254,255],{},"Look for:",[257,258,259,263,266,269],"ul",{},[260,261,262],"li",{},"Email\u002Fpassword plus social login",[260,264,265],{},"Session hardening (CSRF, secure cookies, rate limits)",[260,267,268],{},"Passkeys or MFA when you need them",[260,270,271],{},"Admin tools for bans, impersonation, and user management",[234,273,274],{},"If the starter only shows a login form wired to a toy auth library, you will rebuild the hard parts later.",[246,276,278],{"id":277},"_2-payments-with-merchant-of-record-options","2. Payments with Merchant of Record options",[234,280,281],{},"For solo founders, payments are rarely “just Stripe Checkout.”",[234,283,284],{},"You also need:",[257,286,287,290,293],{},[260,288,289],{},"Webhook handling that is idempotent",[260,291,292],{},"Subscription lifecycle events",[260,294,295],{},"Tax \u002F MoR considerations when selling globally",[234,297,298],{},"A serious Nuxt boilerplate should include a payment path you can ship with — not a half-finished checkout page.",[246,300,302],{"id":301},"_3-architecture-you-will-still-like-in-six-months","3. Architecture you will still like in six months",[234,304,305],{},"AI can generate features quickly. It does not invent a maintainable architecture for you.",[234,307,308],{},"Prefer starters that give you:",[257,310,311,314,317],{},[260,312,313],{},"Clear module boundaries (layers or packages)",[260,315,316],{},"Type-safe database access and migrations",[260,318,319],{},"A path to grow from MVP to multi-feature product",[234,321,322],{},"Monorepo + Nuxt layers is a strong pattern when you want optional features (blog, admin, payments) without a ball of mud.",[246,324,326],{"id":325},"_4-security-defaults-not-a-readme-promise","4. Security defaults, not a README promise",[234,328,329],{},"Check whether the kit configures:",[257,331,332,335,338],{},[260,333,334],{},"Secure HTTP headers \u002F CSP direction",[260,336,337],{},"Rate limiting on sensitive endpoints",[260,339,340],{},"Sensible secrets handling",[234,342,343],{},"Security bolted on after launch is expensive. Defaults matter.",[246,345,347],{"id":346},"_5-maintenance-signal","5. Maintenance signal",[234,349,350],{},"Ask:",[257,352,353,356,359],{},[260,354,355],{},"Is it tracking Nuxt major versions?",[260,357,358],{},"Are dependencies current?",[260,360,361],{},"Can you pull upstream updates without a rewrite?",[234,363,364],{},"An abandoned boilerplate is a liability. An actively maintained one compounds.",[246,366,368],{"id":367},"how-nuxt-starter-kit-fits","How Nuxt Starter Kit fits",[234,370,371,376,377,380,381,384,385,387],{},[372,373,375],"a",{"href":374},"\u002F","Nuxt Starter Kit"," is built for solo founders who want a ",[238,378,379],{},"Nuxt 4"," foundation with ",[238,382,383],{},"better-auth",", ",[238,386,73],{}," payments, admin tooling, and security defaults — structured as a Turborepo of Nuxt layers you can keep or remove.",[234,389,390,391,395,396,402],{},"If that matches your checklist, compare the full feature set on ",[372,392,394],{"href":393},"\u002Fpricing","pricing"," or try the ",[372,397,401],{"href":398,"rel":399},"https:\u002F\u002Fdemo.nuxtstarterkit.com",[400],"nofollow","live demo",".",[246,404,406],{"id":405},"quick-decision-framework","Quick decision framework",[408,409,410,426],"table",{},[411,412,413],"thead",{},[414,415,416,420,423],"tr",{},[417,418,419],"th",{},"Need",[417,421,422],{},"Weak starter",[417,424,425],{},"Strong starter",[427,428,429,441,451,462,472],"tbody",{},[414,430,431,435,438],{},[432,433,434],"td",{},"Auth",[432,436,437],{},"Login UI only",[432,439,440],{},"Sessions, social, admin ops",[414,442,443,445,448],{},[432,444,68],{},[432,446,447],{},"Stripe button",[432,449,450],{},"Webhooks + billing lifecycle",[414,452,453,456,459],{},[432,454,455],{},"Structure",[432,457,458],{},"Flat folders",[432,460,461],{},"Layers \u002F monorepo boundaries",[414,463,464,466,469],{},[432,465,113],{},[432,467,468],{},"“Add later”",[432,470,471],{},"Headers + rate limits included",[414,473,474,477,480],{},[432,475,476],{},"Updates",[432,478,479],{},"Last commit 2 years ago",[432,481,482],{},"Ongoing Nuxt upgrades",[234,484,485],{},"Choose the right column once. Rebuilding foundations mid-product is where months disappear.",{"title":487,"searchDepth":488,"depth":488,"links":489},"",2,[490,491,492,493,494,495,496],{"id":248,"depth":488,"text":249},{"id":277,"depth":488,"text":278},{"id":301,"depth":488,"text":302},{"id":325,"depth":488,"text":326},{"id":346,"depth":488,"text":347},{"id":367,"depth":488,"text":368},{"id":405,"depth":488,"text":406},"2026-08-08","A practical checklist for choosing a Nuxt SaaS boilerplate — auth, payments, architecture, and maintenance — so you do not buy a pretty starter that falls apart in production.","md",null,{},true,{"title":164,"description":498},{"loc":165},[506,507,508],"Nuxt","SaaS","Boilerplate","xEILlXqOefPbh6NgefspQoFt1cgXVE1KoalgPagrdow",[511,500],{"title":160,"path":161,"stem":162,"description":512,"date":513,"children":-1},"Why solo founders should treat a Nuxt boilerplate as leverage, not a shortcut — and what to look for when AI can generate features but not a durable product foundation.","2026-08-05",1786184750446]