[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-choose-ecosystem-integrations":3,"mdc-yyt225-key":31,"related-repo-tanstack-choose-ecosystem-integrations":974,"related-org-tanstack-choose-ecosystem-integrations":1029},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"choose-ecosystem-integrations","manage TanStack ecosystem integrations","Map tanstack ecosystem partner metadata to installable add-on ids using tanstack ecosystem --json, tanstack create --list-add-ons --json, and tanstack create --addon-details --json. Covers exclusive categories, provider options, and router-only compatibility constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,16,19],{"name":13,"slug":14,"type":15},"Integrations","integrations","tag",{"name":17,"slug":18,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},1281,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Fcli","2026-07-20T05:59:10.94663",null,180,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"The official TanStack CLI - Project Scaffolding, MCP Server, Agent Skills Installation, etc","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fcli\u002Ftree\u002FHEAD\u002Fpackages\u002Fcli\u002Fskills\u002Fchoose-ecosystem-integrations","---\nname: choose-ecosystem-integrations\ndescription: >\n  Map tanstack ecosystem partner metadata to installable add-on ids using\n  tanstack ecosystem --json, tanstack create --list-add-ons --json, and\n  tanstack create --addon-details --json. Covers exclusive categories,\n  provider options, and router-only compatibility constraints.\nmetadata:\n  type: composition\n  library: tanstack-cli\n  library_version: \"0.62.1\"\nrequires:\n  - create-app-scaffold\n  - query-docs-library-metadata\n---\n\nThis skill requires familiarity with scaffold and discovery workflows. Read `create-app-scaffold` and `query-docs-library-metadata` first.\n\n# Choose Ecosystem Integrations\n\nUse this skill at the seam between user requirements and valid CLI integration choices.\n\n## Setup\n\n```bash\nnpx @tanstack\u002Fcli ecosystem --json\nnpx @tanstack\u002Fcli create --list-add-ons --json\n```\n\n## Core Patterns\n\n### Map partner intent to add-on ids explicitly\n\n```bash\nnpx @tanstack\u002Fcli ecosystem --category database --json\nnpx @tanstack\u002Fcli create --list-add-ons --json\n```\n\n### Inspect option surfaces before final provider choice\n\n```bash\nnpx @tanstack\u002Fcli create --addon-details drizzle --json\nnpx @tanstack\u002Fcli create --addon-details prisma --json\n```\n\n### Enforce one choice per exclusive category\n\n```bash\nnpx @tanstack\u002Fcli create my-app \\\n  --framework react \\\n  --add-ons clerk,drizzle \\\n  --deployment cloudflare \\\n  -y\n```\n\n## Common Mistakes\n\n### HIGH Treat ecosystem partner id as add-on id\n\nWrong:\n```bash\nnpx @tanstack\u002Fcli add \u003Cpartner-id-from-ecosystem>\n```\n\nCorrect:\n```bash\nnpx @tanstack\u002Fcli ecosystem --json\nnpx @tanstack\u002Fcli create --list-add-ons --json\nnpx @tanstack\u002Fcli add \u003Cmapped-addon-id>\n```\n\n`ecosystem` includes partners that are not directly installable add-ons, so direct reuse of partner ids can fail late in add\u002Fapply flows.\n\nSource: tanstack ecosystem --json output + tanstack create --list-add-ons --json output\n\n### HIGH Skip addon-details before choosing provider\n\nWrong:\n```bash\nnpx @tanstack\u002Fcli create my-app --add-ons prisma -y\n```\n\nCorrect:\n```bash\nnpx @tanstack\u002Fcli create --addon-details prisma --json\nnpx @tanstack\u002Fcli create my-app --add-ons prisma -y\n```\n\nOptionized providers can default silently, producing the wrong data-layer stack for the requested integration.\n\nSource: tanstack create --addon-details prisma --json\n\n### HIGH Select multiple exclusive integrations together\n\nWrong:\n```bash\nnpx @tanstack\u002Fcli create my-app --add-ons clerk,workos -y\n```\n\nCorrect:\n```bash\nnpx @tanstack\u002Fcli create my-app --add-ons clerk -y\n```\n\nExclusive categories permit only one active choice, so multi-select commands can drop or replace intended providers.\n\nSource: packages\u002Fcreate\u002Fsrc\u002Fframeworks\u002F*\u002F*\u002Finfo.json\n\n### CRITICAL Assume router-only supports deployment integration\n\nWrong:\n```bash\nnpx @tanstack\u002Fcli create my-app --router-only --deployment cloudflare -y\n```\n\nCorrect:\n```bash\nnpx @tanstack\u002Fcli create my-app --router-only -y\n```\n\nRouter-only mode ignores deployment integration, so the command succeeds without applying the intended ecosystem target.\n\nSource: packages\u002Fcli\u002Fsrc\u002Fcommand-line.ts:349\n\n### HIGH Tension: Compatibility mode vs explicit intent\n\nThis domain's patterns conflict with create-app-scaffold. Integration planning tends to over-assume command intent is preserved, but compatibility mode silently strips integration flags.\n\nSee also: create-app-scaffold\u002FSKILL.md § Common Mistakes\n\n### HIGH Tension: Single-command convenience vs integration precision\n\nThis domain's patterns conflict with query-docs-library-metadata. Integration choices tend to drift when discovery metadata is skipped in favor of one-shot scaffold commands.\n\nSee also: query-docs-library-metadata\u002FSKILL.md § Common Mistakes\n\n## References\n\n- [Authentication providers](references\u002Fauthentication-providers.md)\n- [Data layer providers](references\u002Fdata-layer-providers.md)\n- [Deployment targets](references\u002Fdeployment-targets.md)\n",{"data":32,"body":40},{"name":4,"description":6,"metadata":33,"requires":37},{"type":34,"library":35,"library_version":36},"composition","tanstack-cli","0.62.1",[38,39],"create-app-scaffold","query-docs-library-metadata",{"type":41,"children":42},"root",[43,66,72,77,84,149,155,162,221,227,291,297,392,398,404,409,453,458,540,551,556,562,566,606,610,675,680,685,691,695,734,738,777,782,795,801,805,849,853,887,892,897,903,908,913,919,924,929,935,968],{"type":44,"tag":45,"props":46,"children":47},"element","p",{},[48,51,57,59,64],{"type":49,"value":50},"text","This skill requires familiarity with scaffold and discovery workflows. Read ",{"type":44,"tag":52,"props":53,"children":55},"code",{"className":54},[],[56],{"type":49,"value":38},{"type":49,"value":58}," and ",{"type":44,"tag":52,"props":60,"children":62},{"className":61},[],[63],{"type":49,"value":39},{"type":49,"value":65}," first.",{"type":44,"tag":67,"props":68,"children":69},"h1",{"id":4},[70],{"type":49,"value":71},"Choose Ecosystem Integrations",{"type":44,"tag":45,"props":73,"children":74},{},[75],{"type":49,"value":76},"Use this skill at the seam between user requirements and valid CLI integration choices.",{"type":44,"tag":78,"props":79,"children":81},"h2",{"id":80},"setup",[82],{"type":49,"value":83},"Setup",{"type":44,"tag":85,"props":86,"children":91},"pre",{"className":87,"code":88,"language":89,"meta":90,"style":90},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx @tanstack\u002Fcli ecosystem --json\nnpx @tanstack\u002Fcli create --list-add-ons --json\n","bash","",[92],{"type":44,"tag":52,"props":93,"children":94},{"__ignoreMap":90},[95,123],{"type":44,"tag":96,"props":97,"children":100},"span",{"class":98,"line":99},"line",1,[101,107,113,118],{"type":44,"tag":96,"props":102,"children":104},{"style":103},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[105],{"type":49,"value":106},"npx",{"type":44,"tag":96,"props":108,"children":110},{"style":109},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[111],{"type":49,"value":112}," @tanstack\u002Fcli",{"type":44,"tag":96,"props":114,"children":115},{"style":109},[116],{"type":49,"value":117}," ecosystem",{"type":44,"tag":96,"props":119,"children":120},{"style":109},[121],{"type":49,"value":122}," --json\n",{"type":44,"tag":96,"props":124,"children":126},{"class":98,"line":125},2,[127,131,135,140,145],{"type":44,"tag":96,"props":128,"children":129},{"style":103},[130],{"type":49,"value":106},{"type":44,"tag":96,"props":132,"children":133},{"style":109},[134],{"type":49,"value":112},{"type":44,"tag":96,"props":136,"children":137},{"style":109},[138],{"type":49,"value":139}," create",{"type":44,"tag":96,"props":141,"children":142},{"style":109},[143],{"type":49,"value":144}," --list-add-ons",{"type":44,"tag":96,"props":146,"children":147},{"style":109},[148],{"type":49,"value":122},{"type":44,"tag":78,"props":150,"children":152},{"id":151},"core-patterns",[153],{"type":49,"value":154},"Core Patterns",{"type":44,"tag":156,"props":157,"children":159},"h3",{"id":158},"map-partner-intent-to-add-on-ids-explicitly",[160],{"type":49,"value":161},"Map partner intent to add-on ids explicitly",{"type":44,"tag":85,"props":163,"children":165},{"className":87,"code":164,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli ecosystem --category database --json\nnpx @tanstack\u002Fcli create --list-add-ons --json\n",[166],{"type":44,"tag":52,"props":167,"children":168},{"__ignoreMap":90},[169,198],{"type":44,"tag":96,"props":170,"children":171},{"class":98,"line":99},[172,176,180,184,189,194],{"type":44,"tag":96,"props":173,"children":174},{"style":103},[175],{"type":49,"value":106},{"type":44,"tag":96,"props":177,"children":178},{"style":109},[179],{"type":49,"value":112},{"type":44,"tag":96,"props":181,"children":182},{"style":109},[183],{"type":49,"value":117},{"type":44,"tag":96,"props":185,"children":186},{"style":109},[187],{"type":49,"value":188}," --category",{"type":44,"tag":96,"props":190,"children":191},{"style":109},[192],{"type":49,"value":193}," database",{"type":44,"tag":96,"props":195,"children":196},{"style":109},[197],{"type":49,"value":122},{"type":44,"tag":96,"props":199,"children":200},{"class":98,"line":125},[201,205,209,213,217],{"type":44,"tag":96,"props":202,"children":203},{"style":103},[204],{"type":49,"value":106},{"type":44,"tag":96,"props":206,"children":207},{"style":109},[208],{"type":49,"value":112},{"type":44,"tag":96,"props":210,"children":211},{"style":109},[212],{"type":49,"value":139},{"type":44,"tag":96,"props":214,"children":215},{"style":109},[216],{"type":49,"value":144},{"type":44,"tag":96,"props":218,"children":219},{"style":109},[220],{"type":49,"value":122},{"type":44,"tag":156,"props":222,"children":224},{"id":223},"inspect-option-surfaces-before-final-provider-choice",[225],{"type":49,"value":226},"Inspect option surfaces before final provider choice",{"type":44,"tag":85,"props":228,"children":230},{"className":87,"code":229,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create --addon-details drizzle --json\nnpx @tanstack\u002Fcli create --addon-details prisma --json\n",[231],{"type":44,"tag":52,"props":232,"children":233},{"__ignoreMap":90},[234,263],{"type":44,"tag":96,"props":235,"children":236},{"class":98,"line":99},[237,241,245,249,254,259],{"type":44,"tag":96,"props":238,"children":239},{"style":103},[240],{"type":49,"value":106},{"type":44,"tag":96,"props":242,"children":243},{"style":109},[244],{"type":49,"value":112},{"type":44,"tag":96,"props":246,"children":247},{"style":109},[248],{"type":49,"value":139},{"type":44,"tag":96,"props":250,"children":251},{"style":109},[252],{"type":49,"value":253}," --addon-details",{"type":44,"tag":96,"props":255,"children":256},{"style":109},[257],{"type":49,"value":258}," drizzle",{"type":44,"tag":96,"props":260,"children":261},{"style":109},[262],{"type":49,"value":122},{"type":44,"tag":96,"props":264,"children":265},{"class":98,"line":125},[266,270,274,278,282,287],{"type":44,"tag":96,"props":267,"children":268},{"style":103},[269],{"type":49,"value":106},{"type":44,"tag":96,"props":271,"children":272},{"style":109},[273],{"type":49,"value":112},{"type":44,"tag":96,"props":275,"children":276},{"style":109},[277],{"type":49,"value":139},{"type":44,"tag":96,"props":279,"children":280},{"style":109},[281],{"type":49,"value":253},{"type":44,"tag":96,"props":283,"children":284},{"style":109},[285],{"type":49,"value":286}," prisma",{"type":44,"tag":96,"props":288,"children":289},{"style":109},[290],{"type":49,"value":122},{"type":44,"tag":156,"props":292,"children":294},{"id":293},"enforce-one-choice-per-exclusive-category",[295],{"type":49,"value":296},"Enforce one choice per exclusive category",{"type":44,"tag":85,"props":298,"children":300},{"className":87,"code":299,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create my-app \\\n  --framework react \\\n  --add-ons clerk,drizzle \\\n  --deployment cloudflare \\\n  -y\n",[301],{"type":44,"tag":52,"props":302,"children":303},{"__ignoreMap":90},[304,330,347,365,383],{"type":44,"tag":96,"props":305,"children":306},{"class":98,"line":99},[307,311,315,319,324],{"type":44,"tag":96,"props":308,"children":309},{"style":103},[310],{"type":49,"value":106},{"type":44,"tag":96,"props":312,"children":313},{"style":109},[314],{"type":49,"value":112},{"type":44,"tag":96,"props":316,"children":317},{"style":109},[318],{"type":49,"value":139},{"type":44,"tag":96,"props":320,"children":321},{"style":109},[322],{"type":49,"value":323}," my-app",{"type":44,"tag":96,"props":325,"children":327},{"style":326},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[328],{"type":49,"value":329}," \\\n",{"type":44,"tag":96,"props":331,"children":332},{"class":98,"line":125},[333,338,343],{"type":44,"tag":96,"props":334,"children":335},{"style":109},[336],{"type":49,"value":337},"  --framework",{"type":44,"tag":96,"props":339,"children":340},{"style":109},[341],{"type":49,"value":342}," react",{"type":44,"tag":96,"props":344,"children":345},{"style":326},[346],{"type":49,"value":329},{"type":44,"tag":96,"props":348,"children":350},{"class":98,"line":349},3,[351,356,361],{"type":44,"tag":96,"props":352,"children":353},{"style":109},[354],{"type":49,"value":355},"  --add-ons",{"type":44,"tag":96,"props":357,"children":358},{"style":109},[359],{"type":49,"value":360}," clerk,drizzle",{"type":44,"tag":96,"props":362,"children":363},{"style":326},[364],{"type":49,"value":329},{"type":44,"tag":96,"props":366,"children":368},{"class":98,"line":367},4,[369,374,379],{"type":44,"tag":96,"props":370,"children":371},{"style":109},[372],{"type":49,"value":373},"  --deployment",{"type":44,"tag":96,"props":375,"children":376},{"style":109},[377],{"type":49,"value":378}," cloudflare",{"type":44,"tag":96,"props":380,"children":381},{"style":326},[382],{"type":49,"value":329},{"type":44,"tag":96,"props":384,"children":386},{"class":98,"line":385},5,[387],{"type":44,"tag":96,"props":388,"children":389},{"style":109},[390],{"type":49,"value":391},"  -y\n",{"type":44,"tag":78,"props":393,"children":395},{"id":394},"common-mistakes",[396],{"type":49,"value":397},"Common Mistakes",{"type":44,"tag":156,"props":399,"children":401},{"id":400},"high-treat-ecosystem-partner-id-as-add-on-id",[402],{"type":49,"value":403},"HIGH Treat ecosystem partner id as add-on id",{"type":44,"tag":45,"props":405,"children":406},{},[407],{"type":49,"value":408},"Wrong:",{"type":44,"tag":85,"props":410,"children":412},{"className":87,"code":411,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli add \u003Cpartner-id-from-ecosystem>\n",[413],{"type":44,"tag":52,"props":414,"children":415},{"__ignoreMap":90},[416],{"type":44,"tag":96,"props":417,"children":418},{"class":98,"line":99},[419,423,427,432,438,443,448],{"type":44,"tag":96,"props":420,"children":421},{"style":103},[422],{"type":49,"value":106},{"type":44,"tag":96,"props":424,"children":425},{"style":109},[426],{"type":49,"value":112},{"type":44,"tag":96,"props":428,"children":429},{"style":109},[430],{"type":49,"value":431}," add",{"type":44,"tag":96,"props":433,"children":435},{"style":434},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[436],{"type":49,"value":437}," \u003C",{"type":44,"tag":96,"props":439,"children":440},{"style":109},[441],{"type":49,"value":442},"partner-id-from-ecosyste",{"type":44,"tag":96,"props":444,"children":445},{"style":326},[446],{"type":49,"value":447},"m",{"type":44,"tag":96,"props":449,"children":450},{"style":434},[451],{"type":49,"value":452},">\n",{"type":44,"tag":45,"props":454,"children":455},{},[456],{"type":49,"value":457},"Correct:",{"type":44,"tag":85,"props":459,"children":461},{"className":87,"code":460,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli ecosystem --json\nnpx @tanstack\u002Fcli create --list-add-ons --json\nnpx @tanstack\u002Fcli add \u003Cmapped-addon-id>\n",[462],{"type":44,"tag":52,"props":463,"children":464},{"__ignoreMap":90},[465,484,507],{"type":44,"tag":96,"props":466,"children":467},{"class":98,"line":99},[468,472,476,480],{"type":44,"tag":96,"props":469,"children":470},{"style":103},[471],{"type":49,"value":106},{"type":44,"tag":96,"props":473,"children":474},{"style":109},[475],{"type":49,"value":112},{"type":44,"tag":96,"props":477,"children":478},{"style":109},[479],{"type":49,"value":117},{"type":44,"tag":96,"props":481,"children":482},{"style":109},[483],{"type":49,"value":122},{"type":44,"tag":96,"props":485,"children":486},{"class":98,"line":125},[487,491,495,499,503],{"type":44,"tag":96,"props":488,"children":489},{"style":103},[490],{"type":49,"value":106},{"type":44,"tag":96,"props":492,"children":493},{"style":109},[494],{"type":49,"value":112},{"type":44,"tag":96,"props":496,"children":497},{"style":109},[498],{"type":49,"value":139},{"type":44,"tag":96,"props":500,"children":501},{"style":109},[502],{"type":49,"value":144},{"type":44,"tag":96,"props":504,"children":505},{"style":109},[506],{"type":49,"value":122},{"type":44,"tag":96,"props":508,"children":509},{"class":98,"line":349},[510,514,518,522,526,531,536],{"type":44,"tag":96,"props":511,"children":512},{"style":103},[513],{"type":49,"value":106},{"type":44,"tag":96,"props":515,"children":516},{"style":109},[517],{"type":49,"value":112},{"type":44,"tag":96,"props":519,"children":520},{"style":109},[521],{"type":49,"value":431},{"type":44,"tag":96,"props":523,"children":524},{"style":434},[525],{"type":49,"value":437},{"type":44,"tag":96,"props":527,"children":528},{"style":109},[529],{"type":49,"value":530},"mapped-addon-i",{"type":44,"tag":96,"props":532,"children":533},{"style":326},[534],{"type":49,"value":535},"d",{"type":44,"tag":96,"props":537,"children":538},{"style":434},[539],{"type":49,"value":452},{"type":44,"tag":45,"props":541,"children":542},{},[543,549],{"type":44,"tag":52,"props":544,"children":546},{"className":545},[],[547],{"type":49,"value":548},"ecosystem",{"type":49,"value":550}," includes partners that are not directly installable add-ons, so direct reuse of partner ids can fail late in add\u002Fapply flows.",{"type":44,"tag":45,"props":552,"children":553},{},[554],{"type":49,"value":555},"Source: tanstack ecosystem --json output + tanstack create --list-add-ons --json output",{"type":44,"tag":156,"props":557,"children":559},{"id":558},"high-skip-addon-details-before-choosing-provider",[560],{"type":49,"value":561},"HIGH Skip addon-details before choosing provider",{"type":44,"tag":45,"props":563,"children":564},{},[565],{"type":49,"value":408},{"type":44,"tag":85,"props":567,"children":569},{"className":87,"code":568,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create my-app --add-ons prisma -y\n",[570],{"type":44,"tag":52,"props":571,"children":572},{"__ignoreMap":90},[573],{"type":44,"tag":96,"props":574,"children":575},{"class":98,"line":99},[576,580,584,588,592,597,601],{"type":44,"tag":96,"props":577,"children":578},{"style":103},[579],{"type":49,"value":106},{"type":44,"tag":96,"props":581,"children":582},{"style":109},[583],{"type":49,"value":112},{"type":44,"tag":96,"props":585,"children":586},{"style":109},[587],{"type":49,"value":139},{"type":44,"tag":96,"props":589,"children":590},{"style":109},[591],{"type":49,"value":323},{"type":44,"tag":96,"props":593,"children":594},{"style":109},[595],{"type":49,"value":596}," --add-ons",{"type":44,"tag":96,"props":598,"children":599},{"style":109},[600],{"type":49,"value":286},{"type":44,"tag":96,"props":602,"children":603},{"style":109},[604],{"type":49,"value":605}," -y\n",{"type":44,"tag":45,"props":607,"children":608},{},[609],{"type":49,"value":457},{"type":44,"tag":85,"props":611,"children":613},{"className":87,"code":612,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create --addon-details prisma --json\nnpx @tanstack\u002Fcli create my-app --add-ons prisma -y\n",[614],{"type":44,"tag":52,"props":615,"children":616},{"__ignoreMap":90},[617,644],{"type":44,"tag":96,"props":618,"children":619},{"class":98,"line":99},[620,624,628,632,636,640],{"type":44,"tag":96,"props":621,"children":622},{"style":103},[623],{"type":49,"value":106},{"type":44,"tag":96,"props":625,"children":626},{"style":109},[627],{"type":49,"value":112},{"type":44,"tag":96,"props":629,"children":630},{"style":109},[631],{"type":49,"value":139},{"type":44,"tag":96,"props":633,"children":634},{"style":109},[635],{"type":49,"value":253},{"type":44,"tag":96,"props":637,"children":638},{"style":109},[639],{"type":49,"value":286},{"type":44,"tag":96,"props":641,"children":642},{"style":109},[643],{"type":49,"value":122},{"type":44,"tag":96,"props":645,"children":646},{"class":98,"line":125},[647,651,655,659,663,667,671],{"type":44,"tag":96,"props":648,"children":649},{"style":103},[650],{"type":49,"value":106},{"type":44,"tag":96,"props":652,"children":653},{"style":109},[654],{"type":49,"value":112},{"type":44,"tag":96,"props":656,"children":657},{"style":109},[658],{"type":49,"value":139},{"type":44,"tag":96,"props":660,"children":661},{"style":109},[662],{"type":49,"value":323},{"type":44,"tag":96,"props":664,"children":665},{"style":109},[666],{"type":49,"value":596},{"type":44,"tag":96,"props":668,"children":669},{"style":109},[670],{"type":49,"value":286},{"type":44,"tag":96,"props":672,"children":673},{"style":109},[674],{"type":49,"value":605},{"type":44,"tag":45,"props":676,"children":677},{},[678],{"type":49,"value":679},"Optionized providers can default silently, producing the wrong data-layer stack for the requested integration.",{"type":44,"tag":45,"props":681,"children":682},{},[683],{"type":49,"value":684},"Source: tanstack create --addon-details prisma --json",{"type":44,"tag":156,"props":686,"children":688},{"id":687},"high-select-multiple-exclusive-integrations-together",[689],{"type":49,"value":690},"HIGH Select multiple exclusive integrations together",{"type":44,"tag":45,"props":692,"children":693},{},[694],{"type":49,"value":408},{"type":44,"tag":85,"props":696,"children":698},{"className":87,"code":697,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create my-app --add-ons clerk,workos -y\n",[699],{"type":44,"tag":52,"props":700,"children":701},{"__ignoreMap":90},[702],{"type":44,"tag":96,"props":703,"children":704},{"class":98,"line":99},[705,709,713,717,721,725,730],{"type":44,"tag":96,"props":706,"children":707},{"style":103},[708],{"type":49,"value":106},{"type":44,"tag":96,"props":710,"children":711},{"style":109},[712],{"type":49,"value":112},{"type":44,"tag":96,"props":714,"children":715},{"style":109},[716],{"type":49,"value":139},{"type":44,"tag":96,"props":718,"children":719},{"style":109},[720],{"type":49,"value":323},{"type":44,"tag":96,"props":722,"children":723},{"style":109},[724],{"type":49,"value":596},{"type":44,"tag":96,"props":726,"children":727},{"style":109},[728],{"type":49,"value":729}," clerk,workos",{"type":44,"tag":96,"props":731,"children":732},{"style":109},[733],{"type":49,"value":605},{"type":44,"tag":45,"props":735,"children":736},{},[737],{"type":49,"value":457},{"type":44,"tag":85,"props":739,"children":741},{"className":87,"code":740,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create my-app --add-ons clerk -y\n",[742],{"type":44,"tag":52,"props":743,"children":744},{"__ignoreMap":90},[745],{"type":44,"tag":96,"props":746,"children":747},{"class":98,"line":99},[748,752,756,760,764,768,773],{"type":44,"tag":96,"props":749,"children":750},{"style":103},[751],{"type":49,"value":106},{"type":44,"tag":96,"props":753,"children":754},{"style":109},[755],{"type":49,"value":112},{"type":44,"tag":96,"props":757,"children":758},{"style":109},[759],{"type":49,"value":139},{"type":44,"tag":96,"props":761,"children":762},{"style":109},[763],{"type":49,"value":323},{"type":44,"tag":96,"props":765,"children":766},{"style":109},[767],{"type":49,"value":596},{"type":44,"tag":96,"props":769,"children":770},{"style":109},[771],{"type":49,"value":772}," clerk",{"type":44,"tag":96,"props":774,"children":775},{"style":109},[776],{"type":49,"value":605},{"type":44,"tag":45,"props":778,"children":779},{},[780],{"type":49,"value":781},"Exclusive categories permit only one active choice, so multi-select commands can drop or replace intended providers.",{"type":44,"tag":45,"props":783,"children":784},{},[785,787,793],{"type":49,"value":786},"Source: packages\u002Fcreate\u002Fsrc\u002Fframeworks\u002F",{"type":44,"tag":788,"props":789,"children":790},"em",{},[791],{"type":49,"value":792},"\u002F",{"type":49,"value":794},"\u002Finfo.json",{"type":44,"tag":156,"props":796,"children":798},{"id":797},"critical-assume-router-only-supports-deployment-integration",[799],{"type":49,"value":800},"CRITICAL Assume router-only supports deployment integration",{"type":44,"tag":45,"props":802,"children":803},{},[804],{"type":49,"value":408},{"type":44,"tag":85,"props":806,"children":808},{"className":87,"code":807,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create my-app --router-only --deployment cloudflare -y\n",[809],{"type":44,"tag":52,"props":810,"children":811},{"__ignoreMap":90},[812],{"type":44,"tag":96,"props":813,"children":814},{"class":98,"line":99},[815,819,823,827,831,836,841,845],{"type":44,"tag":96,"props":816,"children":817},{"style":103},[818],{"type":49,"value":106},{"type":44,"tag":96,"props":820,"children":821},{"style":109},[822],{"type":49,"value":112},{"type":44,"tag":96,"props":824,"children":825},{"style":109},[826],{"type":49,"value":139},{"type":44,"tag":96,"props":828,"children":829},{"style":109},[830],{"type":49,"value":323},{"type":44,"tag":96,"props":832,"children":833},{"style":109},[834],{"type":49,"value":835}," --router-only",{"type":44,"tag":96,"props":837,"children":838},{"style":109},[839],{"type":49,"value":840}," --deployment",{"type":44,"tag":96,"props":842,"children":843},{"style":109},[844],{"type":49,"value":378},{"type":44,"tag":96,"props":846,"children":847},{"style":109},[848],{"type":49,"value":605},{"type":44,"tag":45,"props":850,"children":851},{},[852],{"type":49,"value":457},{"type":44,"tag":85,"props":854,"children":856},{"className":87,"code":855,"language":89,"meta":90,"style":90},"npx @tanstack\u002Fcli create my-app --router-only -y\n",[857],{"type":44,"tag":52,"props":858,"children":859},{"__ignoreMap":90},[860],{"type":44,"tag":96,"props":861,"children":862},{"class":98,"line":99},[863,867,871,875,879,883],{"type":44,"tag":96,"props":864,"children":865},{"style":103},[866],{"type":49,"value":106},{"type":44,"tag":96,"props":868,"children":869},{"style":109},[870],{"type":49,"value":112},{"type":44,"tag":96,"props":872,"children":873},{"style":109},[874],{"type":49,"value":139},{"type":44,"tag":96,"props":876,"children":877},{"style":109},[878],{"type":49,"value":323},{"type":44,"tag":96,"props":880,"children":881},{"style":109},[882],{"type":49,"value":835},{"type":44,"tag":96,"props":884,"children":885},{"style":109},[886],{"type":49,"value":605},{"type":44,"tag":45,"props":888,"children":889},{},[890],{"type":49,"value":891},"Router-only mode ignores deployment integration, so the command succeeds without applying the intended ecosystem target.",{"type":44,"tag":45,"props":893,"children":894},{},[895],{"type":49,"value":896},"Source: packages\u002Fcli\u002Fsrc\u002Fcommand-line.ts:349",{"type":44,"tag":156,"props":898,"children":900},{"id":899},"high-tension-compatibility-mode-vs-explicit-intent",[901],{"type":49,"value":902},"HIGH Tension: Compatibility mode vs explicit intent",{"type":44,"tag":45,"props":904,"children":905},{},[906],{"type":49,"value":907},"This domain's patterns conflict with create-app-scaffold. Integration planning tends to over-assume command intent is preserved, but compatibility mode silently strips integration flags.",{"type":44,"tag":45,"props":909,"children":910},{},[911],{"type":49,"value":912},"See also: create-app-scaffold\u002FSKILL.md § Common Mistakes",{"type":44,"tag":156,"props":914,"children":916},{"id":915},"high-tension-single-command-convenience-vs-integration-precision",[917],{"type":49,"value":918},"HIGH Tension: Single-command convenience vs integration precision",{"type":44,"tag":45,"props":920,"children":921},{},[922],{"type":49,"value":923},"This domain's patterns conflict with query-docs-library-metadata. Integration choices tend to drift when discovery metadata is skipped in favor of one-shot scaffold commands.",{"type":44,"tag":45,"props":925,"children":926},{},[927],{"type":49,"value":928},"See also: query-docs-library-metadata\u002FSKILL.md § Common Mistakes",{"type":44,"tag":78,"props":930,"children":932},{"id":931},"references",[933],{"type":49,"value":934},"References",{"type":44,"tag":936,"props":937,"children":938},"ul",{},[939,950,959],{"type":44,"tag":940,"props":941,"children":942},"li",{},[943],{"type":44,"tag":944,"props":945,"children":947},"a",{"href":946},"references\u002Fauthentication-providers.md",[948],{"type":49,"value":949},"Authentication providers",{"type":44,"tag":940,"props":951,"children":952},{},[953],{"type":44,"tag":944,"props":954,"children":956},{"href":955},"references\u002Fdata-layer-providers.md",[957],{"type":49,"value":958},"Data layer providers",{"type":44,"tag":940,"props":960,"children":961},{},[962],{"type":44,"tag":944,"props":963,"children":965},{"href":964},"references\u002Fdeployment-targets.md",[966],{"type":49,"value":967},"Deployment targets",{"type":44,"tag":969,"props":970,"children":971},"style",{},[972],{"type":49,"value":973},"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);}",{"items":975,"total":385},[976,986,992,1003,1018],{"slug":977,"name":977,"fn":978,"description":979,"org":980,"tags":981,"stars":20,"repoUrl":21,"updatedAt":985},"add-addons-existing-app","add integrations to existing TanStack projects","Apply integrations to existing projects with tanstack add, including add-on id resolution, dependency chains, option prompts, and .cta.json project metadata preconditions.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[982,983,984],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-20T05:59:14.921659",{"slug":4,"name":4,"fn":5,"description":6,"org":987,"tags":988,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[989,990,991],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":38,"name":38,"fn":993,"description":994,"org":995,"tags":996,"stars":20,"repoUrl":21,"updatedAt":1002},"scaffold TanStack applications with CLI","Scaffold a TanStack app with tanstack create using --framework, --template, --toolchain, --deployment, --add-ons, --blank, and --router-only. Covers flag compatibility, non-interactive defaults, and intent-preserving command construction.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[997,998,1001],{"name":17,"slug":18,"type":15},{"name":999,"slug":1000,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},"2026-07-20T05:59:12.932804",{"slug":1004,"name":1004,"fn":1005,"description":1006,"org":1007,"tags":1008,"stars":20,"repoUrl":21,"updatedAt":1017},"maintain-custom-addons-dev-watch","develop and iterate TanStack custom add-ons","Build and iterate custom add-ons\u002Ftemplates with tanstack add-on init, add-on compile, add-on dev, and tanstack create --dev-watch, including sync loop preconditions, watch-path validation, and project metadata constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1009,1010,1013,1014],{"name":17,"slug":18,"type":15},{"name":1011,"slug":1012,"type":15},"Engineering","engineering",{"name":9,"slug":8,"type":15},{"name":1015,"slug":1016,"type":15},"Templates","templates","2026-07-20T05:59:11.938087",{"slug":39,"name":39,"fn":1019,"description":1020,"org":1021,"tags":1022,"stars":20,"repoUrl":21,"updatedAt":1028},"retrieve TanStack library documentation and metadata","Retrieve machine-readable context with tanstack libraries, tanstack doc, tanstack search-docs, tanstack create --list-add-ons --json, and --addon-details for agent-safe discovery and preflight validation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1023,1024,1027],{"name":17,"slug":18,"type":15},{"name":1025,"slug":1026,"type":15},"Documentation","documentation",{"name":9,"slug":8,"type":15},"2026-07-20T05:59:13.902452",{"items":1030,"total":1170},[1031,1045,1057,1069,1084,1096,1106,1116,1129,1139,1150,1160],{"slug":1032,"name":1032,"fn":1033,"description":1034,"org":1035,"tags":1036,"stars":1042,"repoUrl":1043,"updatedAt":1044},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1037,1040,1041],{"name":1038,"slug":1039,"type":15},"Data Analysis","data-analysis",{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:59.429787",{"slug":1046,"name":1046,"fn":1047,"description":1048,"org":1049,"tags":1050,"stars":1042,"repoUrl":1043,"updatedAt":1056},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1051,1054,1055],{"name":1052,"slug":1053,"type":15},"Debugging","debugging",{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":1058,"name":1058,"fn":1059,"description":1060,"org":1061,"tags":1062,"stars":1042,"repoUrl":1043,"updatedAt":1068},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1063,1064,1065],{"name":1038,"slug":1039,"type":15},{"name":9,"slug":8,"type":15},{"name":1066,"slug":1067,"type":15},"UI Components","ui-components","2026-07-30T05:25:38.403427",{"slug":1070,"name":1070,"fn":1071,"description":1072,"org":1073,"tags":1074,"stars":1042,"repoUrl":1043,"updatedAt":1083},"client-vs-server","manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1075,1078,1079,1082],{"name":1076,"slug":1077,"type":15},"Data Pipeline","data-pipeline",{"name":999,"slug":1000,"type":15},{"name":1080,"slug":1081,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":1085,"name":1085,"fn":1086,"description":1087,"org":1088,"tags":1089,"stars":1042,"repoUrl":1043,"updatedAt":1095},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1090,1093,1094],{"name":1091,"slug":1092,"type":15},"Data Visualization","data-visualization",{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":1097,"name":1097,"fn":1098,"description":1099,"org":1100,"tags":1101,"stars":1042,"repoUrl":1043,"updatedAt":1105},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1102,1103,1104],{"name":1038,"slug":1039,"type":15},{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":1107,"name":1107,"fn":1108,"description":1109,"org":1110,"tags":1111,"stars":1042,"repoUrl":1043,"updatedAt":1115},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1112,1113,1114],{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},{"name":1066,"slug":1067,"type":15},"2026-07-30T05:26:03.37801",{"slug":1117,"name":1117,"fn":1118,"description":1119,"org":1120,"tags":1121,"stars":1042,"repoUrl":1043,"updatedAt":1128},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1122,1125,1126,1127],{"name":1123,"slug":1124,"type":15},"CSS","css",{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},{"name":1066,"slug":1067,"type":15},"2026-07-30T05:25:55.377366",{"slug":1130,"name":1130,"fn":1131,"description":1132,"org":1133,"tags":1134,"stars":1042,"repoUrl":1043,"updatedAt":1138},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1135,1136,1137],{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},{"name":1066,"slug":1067,"type":15},"2026-07-30T05:25:51.400011",{"slug":1140,"name":1140,"fn":1141,"description":1142,"org":1143,"tags":1144,"stars":1042,"repoUrl":1043,"updatedAt":1149},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1145,1146,1147,1148],{"name":1123,"slug":1124,"type":15},{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},{"name":1066,"slug":1067,"type":15},"2026-07-30T05:25:48.703799",{"slug":1151,"name":1151,"fn":1152,"description":1153,"org":1154,"tags":1155,"stars":1042,"repoUrl":1043,"updatedAt":1159},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1156,1157,1158],{"name":999,"slug":1000,"type":15},{"name":9,"slug":8,"type":15},{"name":1066,"slug":1067,"type":15},"2026-07-30T05:25:47.367943",{"slug":1161,"name":1161,"fn":1162,"description":1163,"org":1164,"tags":1165,"stars":1042,"repoUrl":1043,"updatedAt":1169},"core","build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1166,1167,1168],{"name":1038,"slug":1039,"type":15},{"name":999,"slug":1000,"type":15},{"name":1066,"slug":1067,"type":15},"2026-07-30T05:25:52.366295",125]