[{"data":1,"prerenderedAt":964},["ShallowReactive",2],{"navigation":3,"\u002Freference\u002Fmanual-setup":189,"\u002Freference\u002Fmanual-setup-surround":959},[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":153,"body":191,"description":952,"extension":953,"links":954,"meta":955,"navigation":956,"path":154,"seo":957,"stem":155,"__hash__":958},"docs\u002F6.reference\u002F7.manual-setup.md",{"type":192,"value":193,"toc":947},"minimark",[194,207,210,215,231,236,278,282,300,304,341,348,352,916,920,943],[195,196,197,198,206],"p",{},"The primary way to set up VueStarter is the ",[199,200,201,205],"a",{"href":19},[202,203,204],"code",{},"create-vue-starter"," CLI"," — it does everything automatically in about 90 seconds. This page is the fallback: every step done manually through the terminal and the Supabase dashboard.",[195,208,209],{},"Use this if the CLI fails for you, if you're behind a firewall that blocks the GitHub device flow, or if you just prefer to understand every step.",[211,212,214],"h2",{"id":213},"extra-prerequisites","Extra Prerequisites",[195,216,217,218,222,223,226,227,230],{},"The CLI path only needs Node.js. The manual path also needs ",[219,220,221],"strong",{},"Git"," and the ",[219,224,225],{},"GitHub CLI"," (",[202,228,229],{},"gh",") installed.",[232,233,235],"h4",{"id":234},"macos","macOS",[237,238,239,265],"ol",{},[240,241,242,243],"li",{},"Install the Xcode Command Line Tools (provides Git):\n",[244,245,250],"pre",{"className":246,"code":247,"language":248,"meta":249,"style":249},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","xcode-select --install\n","bash","",[202,251,252],{"__ignoreMap":249},[253,254,257,261],"span",{"class":255,"line":256},"line",1,[253,258,260],{"class":259},"sBMFI","xcode-select",[253,262,264],{"class":263},"sfazB"," --install\n",[240,266,267,268,226,274,277],{},"Download and run the ",[199,269,273],{"href":270,"rel":271},"https:\u002F\u002Fgithub.com\u002Fcli\u002Fcli\u002Freleases\u002Flatest",[272],"nofollow","GitHub CLI installer",[202,275,276],{},".pkg",")",[232,279,281],{"id":280},"windows","Windows",[244,283,287],{"className":284,"code":285,"language":286,"meta":249,"style":249},"language-powershell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","winget install Git.Git\nwinget install GitHub.cli\n","powershell",[202,288,289,294],{"__ignoreMap":249},[253,290,291],{"class":255,"line":256},[253,292,293],{},"winget install Git.Git\n",[253,295,297],{"class":255,"line":296},2,[253,298,299],{},"winget install GitHub.cli\n",[232,301,303],{"id":302},"linux-debianubuntu","Linux (Debian\u002FUbuntu)",[244,305,307],{"className":246,"code":306,"language":248,"meta":249,"style":249},"sudo apt update && sudo apt install -y git gh\n",[202,308,309],{"__ignoreMap":249},[253,310,311,314,317,320,324,327,329,332,335,338],{"class":255,"line":256},[253,312,313],{"class":259},"sudo",[253,315,316],{"class":263}," apt",[253,318,319],{"class":263}," update",[253,321,323],{"class":322},"sMK4o"," &&",[253,325,326],{"class":259}," sudo",[253,328,316],{"class":263},[253,330,331],{"class":263}," install",[253,333,334],{"class":263}," -y",[253,336,337],{"class":263}," git",[253,339,340],{"class":263}," gh\n",[195,342,343,344,347],{},"Close and reopen your terminal after installing so the new commands land on your ",[202,345,346],{},"PATH",".",[211,349,351],{"id":350},"setup","Setup",[353,354,356,360,369,373,376,391,394,422,428,432,435,467,474,521,579,583,592,595,621,624,632,635,676,682,688,717,720,747,753,761,772,796,800,803,826,830,833,861,864,868,883,889,893],"steps",{"level":355},"4",[232,357,359],{"id":358},"accept-the-github-invite","Accept the GitHub Invite",[195,361,362,363,368],{},"The VueStarter repository is private. After purchase, you're added as a collaborator — check your email (including spam) for the invite and accept it. You can also visit ",[199,364,367],{"href":365,"rel":366},"https:\u002F\u002Fgithub.com\u002FLoqode\u002Fvue-starter",[272],"github.com\u002FLoqode\u002Fvue-starter"," directly; if an invite is pending, GitHub will show a banner letting you accept it there.",[232,370,372],{"id":371},"authenticate-with-github","Authenticate with GitHub",[195,374,375],{},"Because the repo is private, Git needs to know who you are before it will let you clone.",[244,377,379],{"className":246,"code":378,"language":248,"meta":249,"style":249},"gh auth login\n",[202,380,381],{"__ignoreMap":249},[253,382,383,385,388],{"class":255,"line":256},[253,384,229],{"class":259},[253,386,387],{"class":263}," auth",[253,389,390],{"class":263}," login\n",[195,392,393],{},"Answer the prompts:",[237,395,396,401,406,416],{},[240,397,398],{},[219,399,400],{},"GitHub.com",[240,402,403],{},[219,404,405],{},"HTTPS",[240,407,408,411,412],{},[219,409,410],{},"Yes"," — when asked ",[413,414,415],"em",{},"\"Authenticate Git with your GitHub credentials?\"",[240,417,418,421],{},[219,419,420],{},"Login with a web browser"," — press Enter, copy the one-time code, and complete the flow in your browser",[195,423,424,425,427],{},"Step 3 is the important one — it tells Git to use your ",[202,426,229],{}," login whenever it needs to authenticate. Without it, the clone in the next step can still fail with an authentication error.",[232,429,431],{"id":430},"clone-the-template","Clone the Template",[195,433,434],{},"First, navigate to the folder where you keep your projects. If you don't have one yet, create one:",[244,436,438],{"className":246,"code":437,"language":248,"meta":249,"style":249},"cd ~\nmkdir -p apps\ncd apps\n",[202,439,440,449,460],{"__ignoreMap":249},[253,441,442,446],{"class":255,"line":256},[253,443,445],{"class":444},"s2Zo4","cd",[253,447,448],{"class":263}," ~\n",[253,450,451,454,457],{"class":255,"line":296},[253,452,453],{"class":259},"mkdir",[253,455,456],{"class":263}," -p",[253,458,459],{"class":263}," apps\n",[253,461,463,465],{"class":255,"line":462},3,[253,464,445],{"class":444},[253,466,459],{"class":263},[195,468,469,470,473],{},"Then paste this block into your terminal. Replace ",[202,471,472],{},"my-app"," with whatever you want the project folder to be called.",[244,475,477],{"className":246,"code":476,"language":248,"meta":249,"style":249},"git clone https:\u002F\u002Fgithub.com\u002FLoqode\u002Fvue-starter.git my-app\ncd my-app\ngit remote remove origin\nnpm install\n",[202,478,479,493,499,512],{"__ignoreMap":249},[253,480,481,484,487,490],{"class":255,"line":256},[253,482,483],{"class":259},"git",[253,485,486],{"class":263}," clone",[253,488,489],{"class":263}," https:\u002F\u002Fgithub.com\u002FLoqode\u002Fvue-starter.git",[253,491,492],{"class":263}," my-app\n",[253,494,495,497],{"class":255,"line":296},[253,496,445],{"class":444},[253,498,492],{"class":263},[253,500,501,503,506,509],{"class":255,"line":462},[253,502,483],{"class":259},[253,504,505],{"class":263}," remote",[253,507,508],{"class":263}," remove",[253,510,511],{"class":263}," origin\n",[253,513,515,518],{"class":255,"line":514},4,[253,516,517],{"class":259},"npm",[253,519,520],{"class":263}," install\n",[522,523,525,535],"u-accordion",{":items":524},"[{\"label\":\"Still can't clone?\",\"slot\":\"clone-help\"}]",[526,527,528],"template",{"v-slot:leading":249},[529,530],"u-badge",{"color":531,"label":532,"size":533,"variant":534},"info","Help","sm","subtle",[526,536,537],{"v-slot:clone-help":249},[538,539,540,552,570],"ul",{},[240,541,542,547,548,551],{},[219,543,544],{},[202,545,546],{},"Repository not found"," — the GitHub invite hasn't been accepted, or you authenticated as a different GitHub account. Re-run ",[202,549,550],{},"gh auth status"," to confirm which account is active.",[240,553,554,559,560,563,564,566,567,569],{},[219,555,556],{},[202,557,558],{},"Authentication failed"," — you skipped the \"Authenticate Git with your GitHub credentials\" step in ",[202,561,562],{},"gh auth login",". Run ",[202,565,562],{}," again and answer ",[219,568,410],{}," to that prompt.",[240,571,572,578],{},[219,573,574,575,577],{},"Prefer not to use ",[202,576,229],{},"?"," — you can download the repository as a zip file directly from the GitHub page instead.",[232,580,582],{"id":581},"create-a-supabase-project","Create a Supabase Project",[195,584,585,586,591],{},"Go to ",[199,587,590],{"href":588,"rel":589},"https:\u002F\u002Fsupabase.com",[272],"supabase.com"," and create a new project.",[195,593,594],{},"Fill in:",[538,596,597,603,609,615],{},[240,598,599,602],{},[219,600,601],{},"Name"," — anything you like",[240,604,605,608],{},[219,606,607],{},"Database password"," — strong and stored safely",[240,610,611,614],{},[219,612,613],{},"Region"," — pick the one closest to you for lower latency",[240,616,617,620],{},[219,618,619],{},"Row Level Security"," — enable the \"automatic\" option so RLS is on by default for new tables",[195,622,623],{},"It can take a minute or two for the project to finish spinning up — wait until the dashboard shows it as ready before continuing.",[232,625,627,628,631],{"id":626},"write-your-env-file","Write Your ",[202,629,630],{},".env"," File",[195,633,634],{},"Copy the example env file, then fill it in:",[636,637,638,654,663],"code-group",{},[244,639,641],{"className":246,"code":640,"filename":235,"language":248,"meta":249,"style":249},"cp .env.example .env\n",[202,642,643],{"__ignoreMap":249},[253,644,645,648,651],{"class":255,"line":256},[253,646,647],{"class":259},"cp",[253,649,650],{"class":263}," .env.example",[253,652,653],{"class":263}," .env\n",[244,655,657],{"className":284,"code":656,"filename":281,"language":286,"meta":249,"style":249},"copy .env.example .env\n",[202,658,659],{"__ignoreMap":249},[253,660,661],{"class":255,"line":256},[253,662,656],{},[244,664,666],{"className":246,"code":640,"filename":665,"language":248,"meta":249,"style":249},"Linux",[202,667,668],{"__ignoreMap":249},[253,669,670,672,674],{"class":255,"line":256},[253,671,647],{"class":259},[253,673,650],{"class":263},[253,675,653],{"class":263},[677,678,679],"note",{},[195,680,681],{},"The command shows no output when it works — that's normal. If you don't see an error, it succeeded.",[195,683,684,685,687],{},"Open ",[202,686,630],{}," in a code editor (VS Code, Cursor, Sublime). If you don't have one installed, open it from the terminal:",[538,689,690,699,706],{},[240,691,692,694,695,698],{},[219,693,235],{}," — ",[202,696,697],{},"open -e .env"," (opens TextEdit)",[240,700,701,694,703],{},[219,702,281],{},[202,704,705],{},"notepad .env",[240,707,708,694,710,713,714],{},[219,709,665],{},[202,711,712],{},"xdg-open .env"," or ",[202,715,716],{},"nano .env",[195,718,719],{},"Grab your credentials from the Supabase dashboard:",[538,721,722,731,741],{},[240,723,724,727,728,277],{},[219,725,726],{},"Project URL"," — copy from the project dashboard (starts with ",[202,729,730],{},"https:\u002F\u002F",[240,732,733,736,737,740],{},[219,734,735],{},"Publishable key"," — go to ",[219,738,739],{},"Project Settings → API Keys"," and copy the publishable key",[240,742,743,746],{},[219,744,745],{},"Secret key"," — on the same page, copy the secret key (click to reveal)",[195,748,749,750,752],{},"Paste them into ",[202,751,630],{},":",[244,754,759],{"className":755,"code":757,"language":758},[756],"language-text","SUPABASE_URL=https:\u002F\u002Fyour-project.supabase.co\nSUPABASE_KEY=your-publishable-key\nSUPABASE_SECRET_KEY=your-secret-key\n","text",[202,760,757],{"__ignoreMap":249},[195,762,763,764,767,768,771],{},"Save the file once all three values are filled in (",[202,765,766],{},"Cmd + S"," on macOS, ",[202,769,770],{},"Ctrl + S"," on Windows\u002FLinux).",[677,773,774],{},[195,775,776,782,783,788,789,791,792,795],{},[219,777,778,779],{},"Optional — ",[202,780,781],{},"OPENROUTER_API_KEY"," enables the baked-in AI Assistant. Get a key at ",[199,784,787],{"href":785,"rel":786},"https:\u002F\u002Fopenrouter.ai",[272],"openrouter.ai"," and paste it into ",[202,790,630],{},". Leave blank to hide the chat UI — everything else still works. See ",[199,793,794],{"href":144},"AI Chat reference"," for details.",[232,797,799],{"id":798},"apply-the-initial-migration","Apply the Initial Migration",[195,801,802],{},"The template has a database migration that needs to run against your fresh Supabase project:",[237,804,805,811,817,823],{},[240,806,684,807,810],{},[202,808,809],{},"supabase\u002Fmigrations\u002F00001_initial_schema.sql"," in your code editor and copy the whole file",[240,812,813,814],{},"In the Supabase dashboard, go to ",[219,815,816],{},"SQL Editor → New query",[240,818,819,820],{},"Paste the SQL and click ",[219,821,822],{},"Run",[240,824,825],{},"Confirm it succeeded (no red errors at the bottom)",[232,827,829],{"id":828},"disable-email-confirmation-development","Disable Email Confirmation (Development)",[195,831,832],{},"Supabase's default email provider has a limit of 2 confirmation emails per hour, which will slow you down during development. Turn it off for now:",[237,834,835,841,848,855],{},[240,836,585,837,840],{},[219,838,839],{},"Authentication → Sign In \u002F Providers"," in your Supabase dashboard",[240,842,843,844,847],{},"Scroll to the ",[219,845,846],{},"User Signups"," section",[240,849,850,851,854],{},"Toggle ",[219,852,853],{},"Confirm email"," off",[240,856,857,858],{},"Click ",[219,859,860],{},"Save",[195,862,863],{},"You can re-enable this once you've set up a custom SMTP provider, or before going to production.",[232,865,867],{"id":866},"start-the-dev-server","Start the Dev Server",[244,869,871],{"className":246,"code":870,"language":248,"meta":249,"style":249},"npm run dev\n",[202,872,873],{"__ignoreMap":249},[253,874,875,877,880],{"class":255,"line":256},[253,876,517],{"class":259},[253,878,879],{"class":263}," run",[253,881,882],{"class":263}," dev\n",[195,884,684,885,888],{},[202,886,887],{},"http:\u002F\u002Flocalhost:3000",". You should see the login page.",[232,890,892],{"id":891},"verify-everything-works","Verify Everything Works",[237,894,895,901,904,907,910,913],{},[240,896,857,897,900],{},[219,898,899],{},"Sign up"," and create an account",[240,902,903],{},"You should be logged in immediately (email confirmation is off)",[240,905,906],{},"Complete the onboarding — enter a team name and your display name",[240,908,909],{},"You should land on the dashboard",[240,911,912],{},"Check the sidebar shows Dashboard and Settings",[240,914,915],{},"Go to Settings → Members and verify you're listed as the owner",[211,917,919],{"id":918},"next-steps","Next Steps",[538,921,922,929,936],{},[240,923,924,928],{},[219,925,926],{},[199,927,30],{"href":31}," — commit your baseline to GitHub",[240,930,931,935],{},[219,932,933],{},[199,934,35],{"href":36}," — optional, connect Claude Code and the Supabase\u002FNuxt MCP servers",[240,937,938,942],{},[219,939,940],{},[199,941,47],{"href":48}," — deploy to production",[944,945,946],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":249,"searchDepth":256,"depth":296,"links":948},[949,950,951],{"id":213,"depth":296,"text":214},{"id":350,"depth":296,"text":351},{"id":918,"depth":296,"text":919},"The fallback setup flow — clone the template and wire up Supabase by hand, without the CLI.","md",null,{},{"icon":156},{"title":153,"description":952},"BdJTCdUHcJcXYlkEScxsqsy9UHu9nYY1j6z2GuA7rkQ",[960,962],{"title":148,"path":149,"stem":150,"description":961,"icon":151,"children":-1},"Trigger-driven audit of every mutation on opted-in tables.",{"title":164,"path":165,"stem":166,"description":963,"icon":167,"children":-1},"What you can and can't do with the VueStarter source code.",1777092169440]