[{"data":1,"prerenderedAt":489},["ShallowReactive",2],{"navigation":3,"\u002Flaunch\u002Fcloudflare":189,"\u002Flaunch\u002Fcloudflare-surround":484},[4,23,40,51,74,116,157,177],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Get Started","\u002Fget-started","1.get-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Prerequisites","\u002Fget-started\u002Fprerequisites","1.get-started\u002F2.prerequisites","i-lucide-list-checks",{"title":18,"path":19,"stem":20,"icon":21},"Installation","\u002Fget-started\u002Finstallation","1.get-started\u002F3.installation","i-lucide-settings","i-lucide-rocket",{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":39},"Develop","i-lucide-code","\u002Fdevelop","2.develop",[29,34],{"title":30,"path":31,"stem":32,"icon":33},"Version Control","\u002Fdevelop\u002Fversion-control","2.develop\u002F1.version-control","i-lucide-git-branch",{"title":35,"path":36,"stem":37,"icon":38},"Claude Code","\u002Fdevelop\u002Fclaude-code","2.develop\u002F2.claude-code","i-lucide-sparkles",false,{"title":41,"icon":42,"path":43,"stem":44,"children":45,"page":39},"Launch","i-lucide-globe","\u002Flaunch","3.launch",[46],{"title":47,"path":48,"stem":49,"icon":50},"Cloudflare","\u002Flaunch\u002Fcloudflare","3.launch\u002F1.cloudflare","i-lucide-cloud-upload",{"title":52,"path":53,"stem":54,"children":55,"icon":73},"Plugins","\u002Fplugins","4.plugins\u002F1.index",[56,58,63,68],{"title":52,"path":53,"stem":54,"icon":57},"i-lucide-list",{"title":59,"path":60,"stem":61,"icon":62},"Public API","\u002Fplugins\u002Fapi-keys","4.plugins\u002F2.api-keys","i-lucide-key",{"title":64,"path":65,"stem":66,"icon":67},"Cron Jobs","\u002Fplugins\u002Fcron-jobs","4.plugins\u002F4.cron-jobs","i-lucide-clock",{"title":69,"path":70,"stem":71,"icon":72},"Rate Limiting","\u002Fplugins\u002Frate-limiting","4.plugins\u002F5.rate-limiting","i-lucide-gauge","i-lucide-puzzle",{"title":75,"path":76,"stem":77,"children":78,"icon":115},"Examples","\u002Fexamples","5.examples\u002F1.index",[79,80,85,90,95,100,105,110],{"title":75,"path":76,"stem":77,"icon":57},{"title":81,"path":82,"stem":83,"icon":84},"Job Management","\u002Fexamples\u002Fjob-management","5.examples\u002F2.job-management","i-lucide-briefcase",{"title":86,"path":87,"stem":88,"icon":89},"Kanban \u002F To-Do List","\u002Fexamples\u002Fkanban-todo","5.examples\u002F3.kanban-todo","i-lucide-kanban",{"title":91,"path":92,"stem":93,"icon":94},"Inventory Management","\u002Fexamples\u002Finventory-management","5.examples\u002F4.inventory-management","i-lucide-package",{"title":96,"path":97,"stem":98,"icon":99},"Mini CRM","\u002Fexamples\u002Fmini-crm","5.examples\u002F5.mini-crm","i-lucide-users",{"title":101,"path":102,"stem":103,"icon":104},"Sales Orders & Invoices","\u002Fexamples\u002Fsales-invoices","5.examples\u002F6.sales-invoices","i-lucide-receipt",{"title":106,"path":107,"stem":108,"icon":109},"Calendar & Booking","\u002Fexamples\u002Fcalendar-booking","5.examples\u002F7.calendar-booking","i-lucide-calendar",{"title":111,"path":112,"stem":113,"icon":114},"Support Tickets","\u002Fexamples\u002Fsupport-tickets","5.examples\u002F8.support-tickets","i-lucide-life-buoy","i-lucide-book-open",{"title":117,"icon":118,"path":119,"stem":120,"children":121,"page":39},"Reference","i-lucide-file-text","\u002Freference","6.reference",[122,127,132,137,142,147,152],{"title":123,"path":124,"stem":125,"icon":126},"Architecture","\u002Freference\u002Farchitecture","6.reference\u002F1.architecture","i-lucide-layers",{"title":128,"path":129,"stem":130,"icon":131},"Permissions","\u002Freference\u002Fpermissions","6.reference\u002F2.permissions","i-lucide-shield",{"title":133,"path":134,"stem":135,"icon":136},"Invitations","\u002Freference\u002Finvitations","6.reference\u002F3.invitations","i-lucide-mail",{"title":138,"path":139,"stem":140,"icon":141},"Webhooks","\u002Freference\u002Fwebhooks","6.reference\u002F4.webhooks","i-lucide-webhook",{"title":143,"path":144,"stem":145,"icon":146},"AI Chat","\u002Freference\u002Fai-chat","6.reference\u002F5.ai-chat","i-lucide-message-square",{"title":148,"path":149,"stem":150,"icon":151},"Activity Log","\u002Freference\u002Factivity-log","6.reference\u002F6.activity-log","i-lucide-scroll",{"title":153,"path":154,"stem":155,"icon":156},"Manual Setup","\u002Freference\u002Fmanual-setup","6.reference\u002F7.manual-setup","i-lucide-wrench",{"title":158,"icon":159,"path":160,"stem":161,"children":162,"page":39},"Legal","i-lucide-scale","\u002Flegal","7.legal",[163,168,172],{"title":164,"path":165,"stem":166,"icon":167},"License","\u002Flegal\u002Flicense","7.legal\u002F1.license","i-lucide-file-check",{"title":169,"path":170,"stem":171,"icon":118},"Terms and Conditions","\u002Flegal\u002Fterms","7.legal\u002F2.terms",{"title":173,"path":174,"stem":175,"icon":176},"Privacy Policy","\u002Flegal\u002Fprivacy","7.legal\u002F3.privacy","i-lucide-lock",{"title":178,"path":179,"stem":180,"children":181,"icon":183},"Upgrades","\u002Fupgrades","8.upgrades\u002F1.index",[182,184],{"title":178,"path":179,"stem":180,"icon":183},"i-lucide-arrow-up-circle",{"title":185,"path":186,"stem":187,"icon":188},"\u002Fapp\u002F* gated subtree routing","\u002Fupgrades\u002Fapp-subtree-routing","8.upgrades\u002F2.app-subtree-routing","i-lucide-route",{"id":190,"title":47,"body":191,"description":477,"extension":478,"links":479,"meta":480,"navigation":481,"path":48,"seo":482,"stem":49,"__hash__":483},"docs\u002F3.launch\u002F1.cloudflare.md",{"type":192,"value":193,"toc":469},"minimark",[194,198,424,429,448,453],[195,196,197],"p",{},"Cloudflare Pages is the guide below. VueStarter also runs on Vercel, Netlify, a VPS, or anywhere Nuxt runs.",[199,200,202,207,254,258,285,288,313,317,327,331,360,364,403,407],"steps",{"level":201},"4",[203,204,206],"h4",{"id":205},"create-a-pages-project","Create a Pages Project",[208,209,210,221,229,234,239,246,251],"ol",{},[211,212,213,214],"li",{},"Open the ",[215,216,220],"a",{"href":217,"rel":218},"https:\u002F\u002Fdash.cloudflare.com",[219],"nofollow","Cloudflare dashboard",[211,222,223,224,228],{},"Click ",[225,226,227],"strong",{},"Compute"," in the sidebar",[211,230,223,231],{},[225,232,233],{},"Workers & Pages",[211,235,223,236],{},[225,237,238],{},"Create Application",[211,240,241,242,245],{},"Click the ",[225,243,244],{},"Get started"," link under \"Looking to deploy Pages?\"",[211,247,223,248],{},[225,249,250],{},"Import from existing Git repository",[211,252,253],{},"Select your GitHub account, then select your repository",[203,255,257],{"id":256},"configure-build-settings-and-environment-variables","Configure Build Settings and Environment Variables",[259,260,261,267,277],"ul",{},[211,262,263,266],{},[225,264,265],{},"Framework preset:"," Nuxt.js",[211,268,269,272,273],{},[225,270,271],{},"Build command:"," ",[274,275,276],"code",{},"npm run build",[211,278,279,272,282],{},[225,280,281],{},"Build output directory:",[274,283,284],{},"dist",[195,286,287],{},"Under Environment Variables, add:",[259,289,290,299,306],{},[211,291,292,295,296],{},[274,293,294],{},"SUPABASE_URL"," — from your ",[274,297,298],{},".env",[211,300,301,295,304],{},[274,302,303],{},"SUPABASE_KEY",[274,305,298],{},[211,307,308,295,311],{},[274,309,310],{},"SUPABASE_SECRET_KEY",[274,312,298],{},[203,314,316],{"id":315},"deploy","Deploy",[195,318,223,319,322,323,326],{},[225,320,321],{},"Save and Deploy",". Every future push to ",[274,324,325],{},"master"," triggers a redeploy.",[203,328,330],{"id":329},"secure-your-environment-variables","Secure Your Environment Variables",[208,332,333,336,342],{},[211,334,335],{},"Open your Pages project in the Cloudflare dashboard",[211,337,338,339],{},"Go to ",[225,340,341],{},"Settings → Variables and Secrets",[211,343,344,345,348,349,352,353,356,357],{},"For each variable, click ",[225,346,347],{},"Edit",", change the type from ",[225,350,351],{},"Text"," to ",[225,354,355],{},"Secret",", and click ",[225,358,359],{},"Save",[203,361,363],{"id":362},"update-supabase-auth-urls","Update Supabase Auth URLs",[208,365,366,373],{},[211,367,368,369,372],{},"Copy your production URL from the Cloudflare Pages dashboard (e.g. ",[274,370,371],{},"https:\u002F\u002Fyour-project.pages.dev",")",[211,374,375,376,379,380],{},"In the Supabase dashboard → ",[225,377,378],{},"Authentication → URL Configuration",":\n",[259,381,382,393],{},[211,383,384,385,388,389,392],{},"Update the ",[225,386,387],{},"Site URL"," from ",[274,390,391],{},"http:\u002F\u002Flocalhost:3000"," to your production URL",[211,394,395,396,399,400],{},"Add ",[274,397,398],{},"https:\u002F\u002Fyour-project.pages.dev\u002Fauth\u002Fcallback"," to the ",[225,401,402],{},"Redirect URLs",[203,404,406],{"id":405},"verify-production","Verify Production",[208,408,409,412,415,418,421],{},[211,410,411],{},"Visit your production URL",[211,413,414],{},"Sign up with a new account",[211,416,417],{},"Complete the onboarding flow",[211,419,420],{},"Confirm the dashboard loads and the sidebar works",[211,422,423],{},"Push a small change to your repo and confirm Cloudflare auto-redeploys",[425,426,428],"h3",{"id":427},"custom-domain-optional","Custom Domain (Optional)",[208,430,431,437,440],{},[211,432,433,434],{},"Go to your Cloudflare Pages project → ",[225,435,436],{},"Custom domains",[211,438,439],{},"Add your domain and follow the DNS setup instructions",[211,441,384,442,444,445,447],{},[225,443,387],{}," and ",[225,446,402],{}," in Supabase to match your custom domain",[449,450,452],"h2",{"id":451},"next-steps","Next Steps",[259,454,455,462],{},[211,456,457,461],{},[225,458,459],{},[215,460,52],{"href":53}," — API keys, external APIs, AI chat, cron jobs",[211,463,464,468],{},[225,465,466],{},[215,467,75],{"href":76}," — pattern walkthroughs for real features",{"title":470,"searchDepth":471,"depth":472,"links":473},"",1,2,[474,476],{"id":427,"depth":475,"text":428},3,{"id":451,"depth":472,"text":452},"Deploy your app with automatic builds on every push.","md",null,{},{"icon":50},{"title":47,"description":477},"LI2esR0ENKpv0Q2bjaATcbaH_pW17EgaTff6jKCLEQY",[485,487],{"title":35,"path":36,"stem":37,"description":486,"icon":38,"children":-1},"Optional — connect Claude Code and the Nuxt \u002F Supabase MCP servers so you can build features by chatting with your editor.",{"title":52,"path":53,"stem":54,"description":488,"icon":57,"children":-1},"How to install plugins into your VueStarter project.",1777092169440]