[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M713QZPTYHXW0B7DX6PQK0FH":3,"skill-same:01M713QZPTYHXW0B7DX6PQK0FH":97},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":15,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":13,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M713QZPTYHXW0B7DX6PQK0FH","netlify-frameworks",null,"Guide for deploying web frameworks on Netlify. Use when setting up a framework project (Vite\u002FReact, Astro, TanStack Start, Next.js, Nuxt, SvelteKit, Remix) for Netlify deployment, configuring adapters or plugins, or troubleshooting framework-specific Netlify integration. Covers what Netlify needs from each framework and how adapters handle server-side rendering.","ilderaj\u002Fagent-plugin-marketplace","ilderaj","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6321440?v=4","01M70DFHF3YADN6NHGSEZ49NT7","01M70DFHFX74C9CEGTTQ8V8GXW",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"frameworks","netlify frameworks","netlify","server-side","for","framework","guide","start","rendering","how","next","server","astro","react","framework-specific","when","up","tanstack start","remix","project","2026-11-10 10:12:30",false,"---\nname: netlify-frameworks\ndescription: Guide for deploying web frameworks on Netlify. Use when setting up a framework project (Vite\u002FReact, Astro, TanStack Start, Next.js, Nuxt, SvelteKit, Remix) for Netlify deployment, configuring adapters or plugins, or troubleshooting framework-specific Netlify integration. Covers what Netlify needs from each framework and how adapters handle server-side rendering.\n---\n\n# Frameworks on Netlify\n\nNetlify supports any framework that produces static output. For frameworks with server-side capabilities (SSR, API routes, middleware), an adapter or plugin translates the framework's server-side code into Netlify Functions and Edge Functions automatically.\n\n## How It Works\n\nDuring build, the framework adapter writes files to `.netlify\u002Fv1\u002F` — functions, edge functions, redirects, and configuration. Netlify reads these to deploy the site. You do not need to write Netlify Functions manually when using a framework adapter for server-side features.\n\n## Detecting Your Framework\n\nCheck these files to determine the framework:\n\n| File | Framework |\n|---|---|\n| `astro.config.*` | Astro |\n| `next.config.*` | Next.js |\n| `nuxt.config.*` | Nuxt |\n| `vite.config.*` + `react-router` | Vite + React (SPA or Remix) |\n| `app.config.*` + `@tanstack\u002Freact-start` | TanStack Start |\n| `svelte.config.*` | SvelteKit |\n\n## Framework Reference Guides\n\nEach framework has specific adapter\u002Fplugin requirements and local dev patterns:\n\n- **Vite + React (SPA or with server routes)**: See [references\u002Fvite.md](references\u002Fvite.md)\n- **Astro**: See [references\u002Fastro.md](references\u002Fastro.md)\n- **TanStack Start**: See [references\u002Ftanstack.md](references\u002Ftanstack.md)\n- **Next.js**: See [references\u002Fnextjs.md](references\u002Fnextjs.md)\n\n## General Patterns\n\n### Client-Side Routing (SPA)\n\nFor single-page apps with client-side routing, add a catch-all redirect:\n\n```toml\n# netlify.toml\n[[redirects]]\nfrom = \"\u002F*\"\nto = \"\u002Findex.html\"\nstatus = 200\n```\n\n### Custom 404 Pages\n\n- **Static sites**: Create a `404.html` in your publish directory. Netlify serves it automatically for unmatched routes.\n- **SSR frameworks**: Handle 404s in the framework's routing (the adapter maps this to Netlify's function routing).\n\n### Environment Variables in Frameworks\n\nEach framework exposes environment variables to client-side code differently:\n\n| Framework | Client prefix | Access pattern |\n|---|---|---|\n| Vite \u002F React | `VITE_` | `import.meta.env.VITE_VAR` |\n| Astro | `PUBLIC_` | `import.meta.env.PUBLIC_VAR` |\n| Next.js | `NEXT_PUBLIC_` | `process.env.NEXT_PUBLIC_VAR` |\n| Nuxt | `NUXT_PUBLIC_` | `useRuntimeConfig().public.var` |\n\nServer-side code in all frameworks can access variables via `process.env.VAR` or `Netlify.env.get(\"VAR\")`.\n\n## Bundled References (Load As Needed)\n\n- [Vite + React guide](references\u002Fvite.md)\n- [Astro guide](references\u002Fastro.md)\n- [TanStack Start guide](references\u002Ftanstack.md)\n- [Next.js guide](references\u002Fnextjs.md)\n","# Frameworks on Netlify\n\nNetlify supports any framework that produces static output. For frameworks with server-side capabilities (SSR, API routes, middleware), an adapter or plugin translates the framework's server-side code into Netlify Functions and Edge Functions automatically.\n\n## How It Works\n\nDuring build, the framework adapter writes files to `.netlify\u002Fv1\u002F` — functions, edge functions, redirects, and configuration. Netlify reads these to deploy the site. You do not need to write Netlify Functions manually when using a framework adapter for server-side features.\n\n## Detecting Your Framework\n\nCheck these files to determine the framework:\n\n| File | Framework |\n|---|---|\n| `astro.config.*` | Astro |\n| `next.config.*` | Next.js |\n| `nuxt.config.*` | Nuxt |\n| `vite.config.*` + `react-router` | Vite + React (SPA or Remix) |\n| `app.config.*` + `@tanstack\u002Freact-start` | TanStack Start |\n| `svelte.config.*` | SvelteKit |\n\n## Framework Reference Guides\n\nEach framework has specific adapter\u002Fplugin requirements and local dev patterns:\n\n- **Vite + React (SPA or with server routes)**: See [references\u002Fvite.md](references\u002Fvite.md)\n- **Astro**: See [references\u002Fastro.md](references\u002Fastro.md)\n- **TanStack Start**: See [references\u002Ftanstack.md](references\u002Ftanstack.md)\n- **Next.js**: See [references\u002Fnextjs.md](references\u002Fnextjs.md)\n\n## General Patterns\n\n### Client-Side Routing (SPA)\n\nFor single-page apps with client-side routing, add a catch-all redirect:\n\n```toml\n# netlify.toml\n[[redirects]]\nfrom = \"\u002F*\"\nto = \"\u002Findex.html\"\nstatus = 200\n```\n\n### Custom 404 Pages\n\n- **Static sites**: Create a `404.html` in your publish directory. Netlify serves it automatically for unmatched routes.\n- **SSR frameworks**: Handle 404s in the framework's routing (the adapter maps this to Netlify's function routing).\n\n### Environment Variables in Frameworks\n\nEach framework exposes environment variables to client-side code differently:\n\n| Framework | Client prefix | Access pattern |\n|---|---|---|\n| Vite \u002F React | `VITE_` | `import.meta.env.VITE_VAR` |\n| Astro | `PUBLIC_` | `import.meta.env.PUBLIC_VAR` |\n| Next.js | `NEXT_PUBLIC_` | `process.env.NEXT_PUBLIC_VAR` |\n| Nuxt | `NUXT_PUBLIC_` | `useRuntimeConfig().public.var` |\n\nServer-side code in all frameworks can access variables via `process.env.VAR` or `Netlify.env.get(\"VAR\")`.\n\n## Bundled References (Load As Needed)\n\n- [Vite + React guide](references\u002Fvite.md)\n- [Astro guide](references\u002Fastro.md)\n- [TanStack Start guide](references\u002Ftanstack.md)\n- [Next.js guide](references\u002Fnextjs.md)\n",{"name":5,"description":7},"main","7e72d1e8c9a4b4e902f4b6d40505bc124fe29973","plugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace","https:\u002F\u002Fgithub.com\u002Filderaj","2026-05-09 23:15:35",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add ilderaj\u002Fagent-plugin-marketplace --skill netlify-frameworks",{"tool":56,"command":57},"bunx","bunx skills add ilderaj\u002Fagent-plugin-marketplace --skill netlify-frameworks",{"tool":59,"command":60},"pnpm","pnpm dlx skills add ilderaj\u002Fagent-plugin-marketplace --skill netlify-frameworks","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002FSKILL.md",true,[64,70,74,79,85,89,93],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"assets\u002Fnetlify-small.svg","ASSET","资产文件",1291,"https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002Fassets\u002Fnetlify-small.svg",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"assets\u002Fnetlify.png",2686,"https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002Fassets\u002Fnetlify.png",{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":15},"LICENSE.txt","LICENSE","许可证",10776,{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fastro.md","REFERENCE","参考文档",3066,"https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002Freferences\u002Fastro.md",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fnextjs.md",2425,"https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002Freferences\u002Fnextjs.md",{"path":90,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Ftanstack.md",1449,"https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002Freferences\u002Ftanstack.md",{"path":94,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fvite.md",2406,"https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--netlify\u002Fskills\u002Fnetlify-frameworks\u002Freferences\u002Fvite.md",[98,124,154,179,213,238],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":102,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":39},"01M713XGWR5JXWPR2A2YJ14YS3","android-emulator-qa","Use when validating Android feature flows in an emulator with adb-driven launch, input, UI-tree inspection, screenshots, and logcat capture.","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--test-android-apps\u002Fskills\u002Fandroid-emulator-qa\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--test-android-apps\u002Fskills\u002Fandroid-emulator-qa\u002FSKILL.md",[],[106,107,108,109,110,111,112,113,114,34,115,116,117,118,119,120,121,122,123],"android emulator qa","qa","android","emulator","tree","feature","flows","inspection","use","android feature","with","adb","launch","input","capture","ui","screenshots","driven",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":128,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":136,"publishedAt":39},"01M713VQM4KXQZ2X2PMC3TE5Z2","supabase-postgres-best-practices","Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.","MIT","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--supabase\u002Fskills\u002Fsupabase-postgres-best-practices\u002FSKILL.md",[131],{"categoryNo":132,"categoryName":133,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[137,138,139,140,141,142,143,144,23,145,146,147,148,149,150,114,151,152,153,34],"postgres best practices","supabase","postgres","supabase postgres best practices","best practices","categories","postgres performance","advanced","Optimization","performance","correct","schema","writing","impact","Rules","critical","database",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":158,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":39},"01M713TS0QPNEMPP63WQ9AW7PH","sentry","Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`.","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--sentry\u002Fskills\u002Fsentry\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--sentry\u002Fskills\u002Fsentry\u002FSKILL.md",[161],{"categoryNo":132,"categoryName":133,"taxonomyType":134,"taxonomyTypeDesc":135},[156,163,164,165,166,167,168,34,169,170,171,172,173,174,175,176,177,114,178,116],"auth","inspect","sentry issues","issues","errors","only","api","read","token","data","health data","events","pull","read-only","basic","health",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":128,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":196,"publishedAt":39},"01M713TNCA0H80TDG9ZM1YR0RK","render-workflows","Sets up, develops, tests, and deploys Render Workflows. Covers first-time scaffolding (via CLI or manual), SDK installation (Python or TypeScript), task patterns (retries, subtasks, fan-out), local development, Dashboard deployment, and troubleshooting. Use when a user wants to set up Render Workflows for the first time, scaffold a workflow service, add or modify workflow tasks, test workflows locally, or deploy workflows to Render.","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--render\u002Fskills\u002Frender-workflows\u002FSKILL.md",[185,188,191],{"categoryNo":186,"categoryName":187,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":189,"categoryName":190,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":192,"categoryName":193,"taxonomyType":194,"taxonomyTypeDesc":195},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[197,198,199,200,201,202,23,203,204,205,206,35,207,208,209,210,114,34,211,212],"render workflows","render","workflows","SET","local development","development","scaffolding","deployment","time","manual","python","local","tests","retries","workflow","tasks",{"skillNo":214,"name":215,"nameZh":6,"description":216,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":128,"licenseFileUrl":6,"sourceHtmlUrl":217,"categories":218,"keywords":222,"publishedAt":39},"01M713TJ4WWJN4D7BNFPQMV39C","render-monitor","Monitor Render services in real-time. Check health, performance metrics, logs, and resource usage. Use when users want to check service status, view metrics, monitor performance, or verify deployments are healthy.","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--render\u002Fskills\u002Frender-monitor\u002FSKILL.md",[219],{"categoryNo":220,"categoryName":221,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000023","Skill与智能体开发",[198,223,224,146,205,225,226,34,227,228,229,230,231,232,233,234,235,236,114,237],"render monitor","monitor","render mcp","MCP","logs","monitoring","cli","status","Tools","metrics","usage","view","real-time","deployments","healthy",{"skillNo":239,"name":240,"nameZh":6,"description":241,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":128,"licenseFileUrl":6,"sourceHtmlUrl":242,"categories":243,"keywords":245,"publishedAt":39},"01M713TDTYVHWYS06Y9QJ1QYE0","render-migrate-from-heroku","Migrate from Heroku to Render by reading local project files and generating equivalent Render services. Triggers: any mention of migrating from Heroku, moving off Heroku, Heroku to Render migration, or switching from Heroku. Reads Procfile, dependency files, and app config from the local repo. Optionally uses Heroku MCP to enrich with live config vars, add-on details, and dyno sizes. Uses Render MCP or Blueprint YAML to create services.","https:\u002F\u002Fgithub.com\u002Filderaj\u002Fagent-plugin-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex--render\u002Fskills\u002Frender-migrate-from-heroku\u002FSKILL.md",[244],{"categoryNo":220,"categoryName":221,"taxonomyType":134,"taxonomyTypeDesc":135},[198,246,247,248,249,250,251,38,225,208,252,226,253,254,255,256,30,257,258,259],"migrate","heroku","render migrate from heroku","app","creation","enrich","files","switching","Blueprint","mcp server","create","verification","dependency","config"]