From a33dbc86f60d36a9a3cef886e8f5de8361bd32f8 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sun, 25 Jan 2026 22:27:15 -0700 Subject: [PATCH 1/3] fix: builder upgrades --- frameworks/react-cra/add-ons/ai/info.json | 2 ++ .../react-cra/add-ons/apollo-client/info.json | 2 ++ .../react-cra/add-ons/better-auth/info.json | 3 +++ frameworks/react-cra/add-ons/clerk/info.json | 3 +++ .../react-cra/add-ons/compiler/info.json | 2 ++ frameworks/react-cra/add-ons/convex/info.json | 3 +++ frameworks/react-cra/add-ons/db/info.json | 2 ++ frameworks/react-cra/add-ons/drizzle/info.json | 3 +++ frameworks/react-cra/add-ons/form/info.json | 2 ++ frameworks/react-cra/add-ons/mcp/info.json | 2 ++ .../add-ons/module-federation/info.json | 2 ++ frameworks/react-cra/add-ons/neon/info.json | 3 +++ frameworks/react-cra/add-ons/oRPC/info.json | 2 ++ .../react-cra/add-ons/paraglide/info.json | 2 ++ frameworks/react-cra/add-ons/prisma/info.json | 3 +++ frameworks/react-cra/add-ons/sentry/info.json | 2 ++ frameworks/react-cra/add-ons/shadcn/info.json | 2 ++ frameworks/react-cra/add-ons/start/info.json | 2 ++ frameworks/react-cra/add-ons/store/info.json | 2 ++ .../react-cra/add-ons/storybook/info.json | 2 ++ frameworks/react-cra/add-ons/strapi/info.json | 2 ++ frameworks/react-cra/add-ons/t3env/info.json | 2 ++ frameworks/react-cra/add-ons/tRPC/info.json | 2 ++ frameworks/react-cra/add-ons/table/info.json | 2 ++ .../react-cra/add-ons/tanstack-query/info.json | 2 ++ frameworks/react-cra/add-ons/workos/info.json | 3 +++ frameworks/react-cra/examples/events/info.json | 2 ++ frameworks/react-cra/examples/resume/info.json | 2 ++ .../react-cra/hosts/cloudflare/info.json | 3 +++ frameworks/react-cra/hosts/netlify/info.json | 3 +++ frameworks/react-cra/hosts/nitro/info.json | 3 +++ .../react-cra/toolchains/biome/info.json | 3 +++ .../react-cra/toolchains/eslint/info.json | 3 +++ frameworks/solid/add-ons/better-auth/info.json | 3 +++ frameworks/solid/add-ons/convex/info.json | 3 +++ frameworks/solid/add-ons/form/info.json | 2 ++ .../solid/add-ons/module-federation/info.json | 4 +++- frameworks/solid/add-ons/sentry/info.json | 2 ++ frameworks/solid/add-ons/solid-ui/info.json | 2 ++ frameworks/solid/add-ons/start/info.json | 2 ++ frameworks/solid/add-ons/store/info.json | 2 ++ frameworks/solid/add-ons/strapi/info.json | 8 ++++---- frameworks/solid/add-ons/t3env/info.json | 2 ++ .../solid/add-ons/tanstack-query/info.json | 2 ++ frameworks/solid/examples/tanchat/info.json | 2 ++ frameworks/solid/hosts/cloudflare/info.json | 3 +++ frameworks/solid/hosts/netlify/info.json | 3 +++ frameworks/solid/hosts/nitro/info.json | 3 +++ frameworks/solid/toolchains/biome/info.json | 3 +++ frameworks/solid/toolchains/eslint/info.json | 3 +++ packages/cta-engine/src/types.ts | 18 ++++++++++++++++++ 51 files changed, 140 insertions(+), 5 deletions(-) diff --git a/frameworks/react-cra/add-ons/ai/info.json b/frameworks/react-cra/add-ons/ai/info.json index 44cf0bf6..dd1c0e9c 100644 --- a/frameworks/react-cra/add-ons/ai/info.json +++ b/frameworks/react-cra/add-ons/ai/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 60, "link": "", "routes": [ diff --git a/frameworks/react-cra/add-ons/apollo-client/info.json b/frameworks/react-cra/add-ons/apollo-client/info.json index 13f067e7..375c9609 100644 --- a/frameworks/react-cra/add-ons/apollo-client/info.json +++ b/frameworks/react-cra/add-ons/apollo-client/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "api", + "color": "#311C87", "priority": 15, "link": "https://github.com/apollographql/apollo-client-integrations/tree/main/packages/tanstack-start", "dependsOn": ["start"], diff --git a/frameworks/react-cra/add-ons/better-auth/info.json b/frameworks/react-cra/add-ons/better-auth/info.json index 4c3f8f67..9a90d16d 100644 --- a/frameworks/react-cra/add-ons/better-auth/info.json +++ b/frameworks/react-cra/add-ons/better-auth/info.json @@ -3,6 +3,9 @@ "description": "Add Better Auth authentication to your application.", "phase": "add-on", "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#000000", "priority": 26, "link": "https://www.better-auth.com", "modes": ["file-router"], diff --git a/frameworks/react-cra/add-ons/clerk/info.json b/frameworks/react-cra/add-ons/clerk/info.json index 72097ae6..ad1c2df4 100644 --- a/frameworks/react-cra/add-ons/clerk/info.json +++ b/frameworks/react-cra/add-ons/clerk/info.json @@ -4,6 +4,9 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#6C47FF", "priority": 150, "link": "https://clerk.com", "tailwind": true, diff --git a/frameworks/react-cra/add-ons/compiler/info.json b/frameworks/react-cra/add-ons/compiler/info.json index 58e63ed4..0d59fd53 100644 --- a/frameworks/react-cra/add-ons/compiler/info.json +++ b/frameworks/react-cra/add-ons/compiler/info.json @@ -5,6 +5,8 @@ "link": "https://react.dev/learn/react-compiler", "modes": ["code-router", "file-router"], "type": "add-on", + "category": "tooling", + "color": "#61DAFB", "priority": 50, "routes": [] } diff --git a/frameworks/react-cra/add-ons/convex/info.json b/frameworks/react-cra/add-ons/convex/info.json index 1e07758b..0d23964d 100644 --- a/frameworks/react-cra/add-ons/convex/info.json +++ b/frameworks/react-cra/add-ons/convex/info.json @@ -4,6 +4,9 @@ "link": "https://convex.dev", "phase": "add-on", "type": "add-on", + "category": "database", + "exclusive": ["database", "orm"], + "color": "#EE342F", "priority": 140, "modes": ["file-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/db/info.json b/frameworks/react-cra/add-ons/db/info.json index 63f22173..5002d350 100644 --- a/frameworks/react-cra/add-ons/db/info.json +++ b/frameworks/react-cra/add-ons/db/info.json @@ -3,6 +3,8 @@ "description": "TanStack DB", "phase": "add-on", "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 48, "modes": ["file-router"], "link": "https://tanstack.com/db/latest", diff --git a/frameworks/react-cra/add-ons/drizzle/info.json b/frameworks/react-cra/add-ons/drizzle/info.json index 771411bd..b97742f3 100644 --- a/frameworks/react-cra/add-ons/drizzle/info.json +++ b/frameworks/react-cra/add-ons/drizzle/info.json @@ -3,6 +3,9 @@ "description": "Add Drizzle ORM to your application.", "phase": "add-on", "type": "add-on", + "category": "orm", + "exclusive": ["orm"], + "color": "#C026D3", "priority": 46, "link": "https://orm.drizzle.team/", "modes": ["file-router"], diff --git a/frameworks/react-cra/add-ons/form/info.json b/frameworks/react-cra/add-ons/form/info.json index 5ae4a9ef..093f079f 100644 --- a/frameworks/react-cra/add-ons/form/info.json +++ b/frameworks/react-cra/add-ons/form/info.json @@ -3,6 +3,8 @@ "description": "TanStack Form", "phase": "add-on", "type": "add-on", + "category": "tanstack", + "color": "#FACC15", "priority": 44, "modes": ["file-router", "code-router"], "link": "https://tanstack.com/form/latest", diff --git a/frameworks/react-cra/add-ons/mcp/info.json b/frameworks/react-cra/add-ons/mcp/info.json index e665a19e..4f8e6790 100644 --- a/frameworks/react-cra/add-ons/mcp/info.json +++ b/frameworks/react-cra/add-ons/mcp/info.json @@ -5,6 +5,8 @@ "link": "https://mcp.dev", "modes": ["file-router"], "type": "add-on", + "category": "api", + "color": "#10B981", "priority": 42, "warning": "MCP is still in development and may change significantly or not be compatible with other add-ons.\nThe MCP implementation does not support authentication.", "routes": [ diff --git a/frameworks/react-cra/add-ons/module-federation/info.json b/frameworks/react-cra/add-ons/module-federation/info.json index c763ee73..2fcbf288 100644 --- a/frameworks/react-cra/add-ons/module-federation/info.json +++ b/frameworks/react-cra/add-ons/module-federation/info.json @@ -5,5 +5,7 @@ "modes": ["code-router"], "link": "https://module-federation.io/", "type": "add-on", + "category": "tooling", + "color": "#1B72BE", "priority": 38 } diff --git a/frameworks/react-cra/add-ons/neon/info.json b/frameworks/react-cra/add-ons/neon/info.json index 7ccd20c8..e82740c3 100644 --- a/frameworks/react-cra/add-ons/neon/info.json +++ b/frameworks/react-cra/add-ons/neon/info.json @@ -4,6 +4,9 @@ "link": "https://neon.com", "phase": "add-on", "type": "add-on", + "category": "database", + "exclusive": ["database"], + "color": "#00E599", "priority": 170, "modes": ["file-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/oRPC/info.json b/frameworks/react-cra/add-ons/oRPC/info.json index 47219344..737d6880 100644 --- a/frameworks/react-cra/add-ons/oRPC/info.json +++ b/frameworks/react-cra/add-ons/oRPC/info.json @@ -6,6 +6,8 @@ "link": "https://orpc.unnoq.com/", "dependsOn": ["tanstack-query", "start"], "type": "add-on", + "category": "api", + "color": "#FF6B6B", "priority": 34, "routes": [ { diff --git a/frameworks/react-cra/add-ons/paraglide/info.json b/frameworks/react-cra/add-ons/paraglide/info.json index 6bffd29a..afa6b2e9 100644 --- a/frameworks/react-cra/add-ons/paraglide/info.json +++ b/frameworks/react-cra/add-ons/paraglide/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "i18n", + "color": "#14B8A6", "priority": 30, "link": "https://github.com/paraglidejs/paraglide-js", "routes": [ diff --git a/frameworks/react-cra/add-ons/prisma/info.json b/frameworks/react-cra/add-ons/prisma/info.json index 3beca1c4..b0e87894 100644 --- a/frameworks/react-cra/add-ons/prisma/info.json +++ b/frameworks/react-cra/add-ons/prisma/info.json @@ -3,6 +3,9 @@ "description": "Add Prisma Postgres, or Prisma ORM with other DBs to your application.", "phase": "add-on", "type": "add-on", + "category": "orm", + "exclusive": ["orm"], + "color": "#2D3748", "priority": 120, "link": "https://www.prisma.io/", "modes": ["file-router"], diff --git a/frameworks/react-cra/add-ons/sentry/info.json b/frameworks/react-cra/add-ons/sentry/info.json index 35f0b851..5bde2454 100644 --- a/frameworks/react-cra/add-ons/sentry/info.json +++ b/frameworks/react-cra/add-ons/sentry/info.json @@ -5,6 +5,8 @@ "link": "https://sentry.com/", "modes": ["file-router"], "type": "add-on", + "category": "monitoring", + "color": "#362D59", "priority": 130, "routes": [ { diff --git a/frameworks/react-cra/add-ons/shadcn/info.json b/frameworks/react-cra/add-ons/shadcn/info.json index d53c446c..72e922ca 100644 --- a/frameworks/react-cra/add-ons/shadcn/info.json +++ b/frameworks/react-cra/add-ons/shadcn/info.json @@ -5,5 +5,7 @@ "modes": ["file-router", "code-router"], "link": "https://ui.shadcn.com/", "type": "add-on", + "category": "styling", + "color": "#000000", "priority": 30 } diff --git a/frameworks/react-cra/add-ons/start/info.json b/frameworks/react-cra/add-ons/start/info.json index 41049799..250638c0 100644 --- a/frameworks/react-cra/add-ons/start/info.json +++ b/frameworks/react-cra/add-ons/start/info.json @@ -5,6 +5,8 @@ "link": "https://tanstack.com/start/latest", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "tailwind": false, "priority": 26, "warning": "TanStack Start is not yet at 1.0 and may change significantly or not be compatible with other add-ons.\nMigrating to Start might require deleting node_modules and re-installing.", diff --git a/frameworks/react-cra/add-ons/store/info.json b/frameworks/react-cra/add-ons/store/info.json index dbc1538c..035764fc 100644 --- a/frameworks/react-cra/add-ons/store/info.json +++ b/frameworks/react-cra/add-ons/store/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "link": "https://tanstack.com/store/latest", "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 22, "modes": ["file-router", "code-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/storybook/info.json b/frameworks/react-cra/add-ons/storybook/info.json index 96fab6cb..e21627c9 100644 --- a/frameworks/react-cra/add-ons/storybook/info.json +++ b/frameworks/react-cra/add-ons/storybook/info.json @@ -5,6 +5,8 @@ "modes": ["file-router"], "link": "https://storybook.js.org/", "type": "add-on", + "category": "tooling", + "color": "#FF4785", "priority": 18, "routes": [ { diff --git a/frameworks/react-cra/add-ons/strapi/info.json b/frameworks/react-cra/add-ons/strapi/info.json index 96c10f07..1761cd27 100644 --- a/frameworks/react-cra/add-ons/strapi/info.json +++ b/frameworks/react-cra/add-ons/strapi/info.json @@ -4,6 +4,8 @@ "link": "https://strapi.io/", "phase": "add-on", "type": "add-on", + "category": "cms", + "color": "#4945FF", "priority": 110, "modes": ["file-router"], "routes": [ diff --git a/frameworks/react-cra/add-ons/t3env/info.json b/frameworks/react-cra/add-ons/t3env/info.json index a8d970a3..83ce2290 100644 --- a/frameworks/react-cra/add-ons/t3env/info.json +++ b/frameworks/react-cra/add-ons/t3env/info.json @@ -3,6 +3,8 @@ "description": "Add type safety to your environment variables", "phase": "add-on", "type": "add-on", + "category": "tooling", + "color": "#6366F1", "priority": 29, "link": "https://github.com/t3-oss/t3-env", "modes": ["file-router", "code-router"] diff --git a/frameworks/react-cra/add-ons/tRPC/info.json b/frameworks/react-cra/add-ons/tRPC/info.json index c816edc3..16afe3ab 100644 --- a/frameworks/react-cra/add-ons/tRPC/info.json +++ b/frameworks/react-cra/add-ons/tRPC/info.json @@ -6,6 +6,8 @@ "link": "https://trpc.io/", "dependsOn": ["tanstack-query", "start"], "type": "add-on", + "category": "api", + "color": "#2596BE", "priority": 27, "routes": [ { diff --git a/frameworks/react-cra/add-ons/table/info.json b/frameworks/react-cra/add-ons/table/info.json index 15f47da2..8d81fcb8 100644 --- a/frameworks/react-cra/add-ons/table/info.json +++ b/frameworks/react-cra/add-ons/table/info.json @@ -5,6 +5,8 @@ "modes": ["file-router", "code-router"], "link": "https://tanstack.com/table/latest", "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "priority": 28, "routes": [ { diff --git a/frameworks/react-cra/add-ons/tanstack-query/info.json b/frameworks/react-cra/add-ons/tanstack-query/info.json index f5deb358..f104ba3f 100644 --- a/frameworks/react-cra/add-ons/tanstack-query/info.json +++ b/frameworks/react-cra/add-ons/tanstack-query/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "tanstack", + "color": "#EF4444", "priority": 10, "link": "https://tanstack.com/query/latest", "routes": [ diff --git a/frameworks/react-cra/add-ons/workos/info.json b/frameworks/react-cra/add-ons/workos/info.json index 58a317a8..c49b9b6f 100644 --- a/frameworks/react-cra/add-ons/workos/info.json +++ b/frameworks/react-cra/add-ons/workos/info.json @@ -4,6 +4,9 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#6363F1", "priority": 160, "link": "https://workos.com", "tailwind": true, diff --git a/frameworks/react-cra/examples/events/info.json b/frameworks/react-cra/examples/events/info.json index d7c1c4ad..e904cea7 100644 --- a/frameworks/react-cra/examples/events/info.json +++ b/frameworks/react-cra/examples/events/info.json @@ -4,6 +4,8 @@ "phase": "example", "modes": ["file-router"], "type": "example", + "category": "other", + "color": "#F59E0B", "priority": 10, "link": "", "routes": [ diff --git a/frameworks/react-cra/examples/resume/info.json b/frameworks/react-cra/examples/resume/info.json index 28aab882..2a9609f1 100644 --- a/frameworks/react-cra/examples/resume/info.json +++ b/frameworks/react-cra/examples/resume/info.json @@ -4,6 +4,8 @@ "phase": "example", "modes": ["file-router"], "type": "example", + "category": "other", + "color": "#8B5CF6", "priority": 10, "link": "", "routes": [ diff --git a/frameworks/react-cra/hosts/cloudflare/info.json b/frameworks/react-cra/hosts/cloudflare/info.json index c7f7491e..b1353f95 100644 --- a/frameworks/react-cra/hosts/cloudflare/info.json +++ b/frameworks/react-cra/hosts/cloudflare/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#F38020", "priority": 200, "tailwind": false, "integrations": [ diff --git a/frameworks/react-cra/hosts/netlify/info.json b/frameworks/react-cra/hosts/netlify/info.json index 4621e9df..adedb545 100644 --- a/frameworks/react-cra/hosts/netlify/info.json +++ b/frameworks/react-cra/hosts/netlify/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#00C7B7", "priority": 180, "tailwind": false, "integrations": [ diff --git a/frameworks/react-cra/hosts/nitro/info.json b/frameworks/react-cra/hosts/nitro/info.json index 83983ecf..08323742 100644 --- a/frameworks/react-cra/hosts/nitro/info.json +++ b/frameworks/react-cra/hosts/nitro/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#ECDC5A", "priority": 0, "tailwind": false, "integrations": [ diff --git a/frameworks/react-cra/toolchains/biome/info.json b/frameworks/react-cra/toolchains/biome/info.json index 79e8efdb..cdcc9c56 100644 --- a/frameworks/react-cra/toolchains/biome/info.json +++ b/frameworks/react-cra/toolchains/biome/info.json @@ -3,6 +3,9 @@ "description": "Biome toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#60A5FA", "priority": 2, "modes": ["code-router", "file-router"], "link": "https://biomejs.dev" diff --git a/frameworks/react-cra/toolchains/eslint/info.json b/frameworks/react-cra/toolchains/eslint/info.json index f3bf1bdc..64b0aa1f 100644 --- a/frameworks/react-cra/toolchains/eslint/info.json +++ b/frameworks/react-cra/toolchains/eslint/info.json @@ -3,6 +3,9 @@ "description": "ESLint + Prettier toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#4B32C3", "priority": 0, "modes": ["code-router", "file-router"], "link": "https://eslint.org" diff --git a/frameworks/solid/add-ons/better-auth/info.json b/frameworks/solid/add-ons/better-auth/info.json index be41d737..02be9d7f 100644 --- a/frameworks/solid/add-ons/better-auth/info.json +++ b/frameworks/solid/add-ons/better-auth/info.json @@ -3,6 +3,9 @@ "description": "Add Better Auth authentication to your application.", "phase": "add-on", "type": "add-on", + "category": "auth", + "exclusive": ["auth"], + "color": "#000000", "link": "https://www.better-auth.com/", "modes": ["file-router"], "dependsOn": ["start"], diff --git a/frameworks/solid/add-ons/convex/info.json b/frameworks/solid/add-ons/convex/info.json index 75a3443c..50c3a089 100644 --- a/frameworks/solid/add-ons/convex/info.json +++ b/frameworks/solid/add-ons/convex/info.json @@ -4,6 +4,9 @@ "link": "https://convex.dev", "phase": "add-on", "type": "add-on", + "category": "database", + "exclusive": ["database", "orm"], + "color": "#EE342F", "modes": ["file-router"], "routes": [ { diff --git a/frameworks/solid/add-ons/form/info.json b/frameworks/solid/add-ons/form/info.json index 78b9389d..5060d2d7 100644 --- a/frameworks/solid/add-ons/form/info.json +++ b/frameworks/solid/add-ons/form/info.json @@ -5,6 +5,8 @@ "link": "https://tanstack.com/form/latest", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "tanstack", + "color": "#FACC15", "routes": [ { "url": "/demo/form", diff --git a/frameworks/solid/add-ons/module-federation/info.json b/frameworks/solid/add-ons/module-federation/info.json index e825c455..8338105e 100644 --- a/frameworks/solid/add-ons/module-federation/info.json +++ b/frameworks/solid/add-ons/module-federation/info.json @@ -4,5 +4,7 @@ "phase": "add-on", "modes": ["code-router"], "link": "https://module-federation.io/", - "type": "add-on" + "type": "add-on", + "category": "tooling", + "color": "#1B72BE" } diff --git a/frameworks/solid/add-ons/sentry/info.json b/frameworks/solid/add-ons/sentry/info.json index 92cda812..dc4a68ba 100644 --- a/frameworks/solid/add-ons/sentry/info.json +++ b/frameworks/solid/add-ons/sentry/info.json @@ -5,6 +5,8 @@ "link": "https://sentry.com/", "modes": ["file-router"], "type": "add-on", + "category": "monitoring", + "color": "#362D59", "routes": [ { "url": "/demo/sentry/bad-event-handler", diff --git a/frameworks/solid/add-ons/solid-ui/info.json b/frameworks/solid/add-ons/solid-ui/info.json index 3d501253..6aa2d0c0 100644 --- a/frameworks/solid/add-ons/solid-ui/info.json +++ b/frameworks/solid/add-ons/solid-ui/info.json @@ -5,6 +5,8 @@ "link": "https://ui.shadcn.com/", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "styling", + "color": "#000000", "command": { "command": "npx", "args": ["solidui-cli@latest", "add", "button", "input"] diff --git a/frameworks/solid/add-ons/start/info.json b/frameworks/solid/add-ons/start/info.json index 63fa14f9..588d8cb9 100644 --- a/frameworks/solid/add-ons/start/info.json +++ b/frameworks/solid/add-ons/start/info.json @@ -5,6 +5,8 @@ "link": "https://tanstack.com/start/latest", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "routes": [ { "url": "/demo/start/server-funcs", diff --git a/frameworks/solid/add-ons/store/info.json b/frameworks/solid/add-ons/store/info.json index faac463e..eda9d49f 100644 --- a/frameworks/solid/add-ons/store/info.json +++ b/frameworks/solid/add-ons/store/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "add-on", + "category": "tanstack", + "color": "#00D1B2", "link": "https://tanstack.com/store/latest", "routes": [ { diff --git a/frameworks/solid/add-ons/strapi/info.json b/frameworks/solid/add-ons/strapi/info.json index a9a3f0dd..86c85c2e 100644 --- a/frameworks/solid/add-ons/strapi/info.json +++ b/frameworks/solid/add-ons/strapi/info.json @@ -4,9 +4,9 @@ "link": "https://strapi.io/", "phase": "add-on", "type": "add-on", - "modes": [ - "file-router" - ], + "category": "cms", + "color": "#4945FF", + "modes": ["file-router"], "routes": [ { "url": "/demo/strapi", @@ -15,4 +15,4 @@ "jsName": "StrapiDemo" } ] -} \ No newline at end of file +} diff --git a/frameworks/solid/add-ons/t3env/info.json b/frameworks/solid/add-ons/t3env/info.json index d7f20837..e2b9a018 100644 --- a/frameworks/solid/add-ons/t3env/info.json +++ b/frameworks/solid/add-ons/t3env/info.json @@ -4,5 +4,7 @@ "phase": "add-on", "link": "https://github.com/t3-oss/t3-env", "type": "add-on", + "category": "tooling", + "color": "#6366F1", "modes": ["file-router", "code-router"] } diff --git a/frameworks/solid/add-ons/tanstack-query/info.json b/frameworks/solid/add-ons/tanstack-query/info.json index 23017a9e..b79ae201 100644 --- a/frameworks/solid/add-ons/tanstack-query/info.json +++ b/frameworks/solid/add-ons/tanstack-query/info.json @@ -4,6 +4,8 @@ "phase": "add-on", "modes": ["file-router"], "type": "add-on", + "category": "tanstack", + "color": "#EF4444", "link": "https://tanstack.com/query/latest", "routes": [ { diff --git a/frameworks/solid/examples/tanchat/info.json b/frameworks/solid/examples/tanchat/info.json index b1a626b3..fece6af2 100644 --- a/frameworks/solid/examples/tanchat/info.json +++ b/frameworks/solid/examples/tanchat/info.json @@ -3,6 +3,8 @@ "description": "A chat example that uses TanStack Start and TanStack Store. Features chat with Anthropic Sonnet, chat history and custom prompts.", "phase": "example", "type": "example", + "category": "other", + "color": "#00D1B2", "modes": ["file-router"], "link": "", "routes": [ diff --git a/frameworks/solid/hosts/cloudflare/info.json b/frameworks/solid/hosts/cloudflare/info.json index c7f7491e..b1353f95 100644 --- a/frameworks/solid/hosts/cloudflare/info.json +++ b/frameworks/solid/hosts/cloudflare/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#F38020", "priority": 200, "tailwind": false, "integrations": [ diff --git a/frameworks/solid/hosts/netlify/info.json b/frameworks/solid/hosts/netlify/info.json index 4621e9df..adedb545 100644 --- a/frameworks/solid/hosts/netlify/info.json +++ b/frameworks/solid/hosts/netlify/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#00C7B7", "priority": 180, "tailwind": false, "integrations": [ diff --git a/frameworks/solid/hosts/nitro/info.json b/frameworks/solid/hosts/nitro/info.json index a6e2c12a..74efd06f 100644 --- a/frameworks/solid/hosts/nitro/info.json +++ b/frameworks/solid/hosts/nitro/info.json @@ -5,6 +5,9 @@ "phase": "add-on", "modes": ["file-router", "code-router"], "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#ECDC5A", "tailwind": false, "integrations": [ { diff --git a/frameworks/solid/toolchains/biome/info.json b/frameworks/solid/toolchains/biome/info.json index 399dccaf..fda33073 100644 --- a/frameworks/solid/toolchains/biome/info.json +++ b/frameworks/solid/toolchains/biome/info.json @@ -3,6 +3,9 @@ "description": "Biome toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#60A5FA", "modes": ["code-router", "file-router"], "link": "https://biomejs.dev" } diff --git a/frameworks/solid/toolchains/eslint/info.json b/frameworks/solid/toolchains/eslint/info.json index e7288942..09b35944 100644 --- a/frameworks/solid/toolchains/eslint/info.json +++ b/frameworks/solid/toolchains/eslint/info.json @@ -3,6 +3,9 @@ "description": "ESLint + Prettier toolchain support.", "phase": "setup", "type": "toolchain", + "category": "tooling", + "exclusive": ["linter"], + "color": "#4B32C3", "modes": ["code-router", "file-router"], "link": "https://eslint.org" } diff --git a/packages/cta-engine/src/types.ts b/packages/cta-engine/src/types.ts index bc9f27e1..bf55f4f5 100644 --- a/packages/cta-engine/src/types.ts +++ b/packages/cta-engine/src/types.ts @@ -39,6 +39,24 @@ export const AddOnBaseSchema = z.object({ warning: z.string().optional(), tailwind: z.boolean().optional().default(true), type: z.enum(['add-on', 'example', 'starter', 'toolchain', 'deployment']), + category: z + .enum([ + 'tanstack', + 'database', + 'orm', + 'auth', + 'deploy', + 'styling', + 'monitoring', + 'cms', + 'api', + 'i18n', + 'tooling', + 'other', + ]) + .optional(), + exclusive: z.array(z.string()).optional(), + color: z.string().optional(), priority: z.number().optional(), command: z .object({ From 36aa69d5c8fb2099246b600d39855ef0f04ea8a9 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sun, 25 Jan 2026 22:54:13 -0700 Subject: [PATCH 2/3] enum exclusive --- packages/cta-engine/src/types.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/cta-engine/src/types.ts b/packages/cta-engine/src/types.ts index bf55f4f5..6bdad6d8 100644 --- a/packages/cta-engine/src/types.ts +++ b/packages/cta-engine/src/types.ts @@ -55,7 +55,9 @@ export const AddOnBaseSchema = z.object({ 'other', ]) .optional(), - exclusive: z.array(z.string()).optional(), + exclusive: z + .array(z.enum(['orm', 'auth', 'deploy', 'database', 'linter'])) + .optional(), color: z.string().optional(), priority: z.number().optional(), command: z From 84093c389aa55254c9daac046a3156e1d7342533 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sun, 25 Jan 2026 23:52:01 -0700 Subject: [PATCH 3/3] Add railway deployment addon --- .../hosts/railway/assets/nixpacks.toml | 8 ++ frameworks/react-cra/hosts/railway/info.json | 20 +++++ .../react-cra/hosts/railway/package.json | 8 ++ .../solid/hosts/railway/assets/nixpacks.toml | 8 ++ frameworks/solid/hosts/railway/info.json | 20 +++++ frameworks/solid/hosts/railway/package.json | 8 ++ pnpm-lock.yaml | 85 ++++++++++++++++--- 7 files changed, 144 insertions(+), 13 deletions(-) create mode 100644 frameworks/react-cra/hosts/railway/assets/nixpacks.toml create mode 100644 frameworks/react-cra/hosts/railway/info.json create mode 100644 frameworks/react-cra/hosts/railway/package.json create mode 100644 frameworks/solid/hosts/railway/assets/nixpacks.toml create mode 100644 frameworks/solid/hosts/railway/info.json create mode 100644 frameworks/solid/hosts/railway/package.json diff --git a/frameworks/react-cra/hosts/railway/assets/nixpacks.toml b/frameworks/react-cra/hosts/railway/assets/nixpacks.toml new file mode 100644 index 00000000..70ae68d2 --- /dev/null +++ b/frameworks/react-cra/hosts/railway/assets/nixpacks.toml @@ -0,0 +1,8 @@ +[phases.setup] +nixPkgs = ["nodejs_22"] + +[phases.build] +cmds = ["npm install", "npm run build"] + +[start] +cmd = "npm run start" diff --git a/frameworks/react-cra/hosts/railway/info.json b/frameworks/react-cra/hosts/railway/info.json new file mode 100644 index 00000000..59ed3453 --- /dev/null +++ b/frameworks/react-cra/hosts/railway/info.json @@ -0,0 +1,20 @@ +{ + "name": "Railway", + "description": "Railway deployment setup", + "link": "https://railway.com/", + "phase": "add-on", + "modes": ["file-router", "code-router"], + "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#9B4DCA", + "priority": 160, + "tailwind": false, + "integrations": [ + { + "type": "vite-plugin", + "import": "import { nitro } from 'nitro/vite'", + "code": "nitro()" + } + ] +} diff --git a/frameworks/react-cra/hosts/railway/package.json b/frameworks/react-cra/hosts/railway/package.json new file mode 100644 index 00000000..5006a8bb --- /dev/null +++ b/frameworks/react-cra/hosts/railway/package.json @@ -0,0 +1,8 @@ +{ + "scripts": { + "start": "node .output/server/index.mjs" + }, + "dependencies": { + "nitro": "npm:nitro-nightly@latest" + } +} diff --git a/frameworks/solid/hosts/railway/assets/nixpacks.toml b/frameworks/solid/hosts/railway/assets/nixpacks.toml new file mode 100644 index 00000000..70ae68d2 --- /dev/null +++ b/frameworks/solid/hosts/railway/assets/nixpacks.toml @@ -0,0 +1,8 @@ +[phases.setup] +nixPkgs = ["nodejs_22"] + +[phases.build] +cmds = ["npm install", "npm run build"] + +[start] +cmd = "npm run start" diff --git a/frameworks/solid/hosts/railway/info.json b/frameworks/solid/hosts/railway/info.json new file mode 100644 index 00000000..59ed3453 --- /dev/null +++ b/frameworks/solid/hosts/railway/info.json @@ -0,0 +1,20 @@ +{ + "name": "Railway", + "description": "Railway deployment setup", + "link": "https://railway.com/", + "phase": "add-on", + "modes": ["file-router", "code-router"], + "type": "deployment", + "category": "deploy", + "exclusive": ["deploy"], + "color": "#9B4DCA", + "priority": 160, + "tailwind": false, + "integrations": [ + { + "type": "vite-plugin", + "import": "import { nitro } from 'nitro/vite'", + "code": "nitro()" + } + ] +} diff --git a/frameworks/solid/hosts/railway/package.json b/frameworks/solid/hosts/railway/package.json new file mode 100644 index 00000000..5006a8bb --- /dev/null +++ b/frameworks/solid/hosts/railway/package.json @@ -0,0 +1,8 @@ +{ + "scripts": { + "start": "node .output/server/index.mjs" + }, + "dependencies": { + "nitro": "npm:nitro-nightly@latest" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a94aab6b..919aedab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -859,6 +859,9 @@ packages: '@codemirror/autocomplete@6.18.6': resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==} + '@codemirror/commands@6.10.1': + resolution: {integrity: sha512-uWDWFypNdQmz2y1LaNJzK7fL7TYKLeUAU0npEC685OKTF3KcQ2Vu3klIM78D7I6wGhktme0lh3CuQLv0ZCrD9Q==} + '@codemirror/commands@6.8.1': resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} @@ -1212,19 +1215,28 @@ packages: '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.29': resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jsonjoy.com/base64@1.1.2': resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} engines: {node: '>=10.0'} @@ -1252,12 +1264,18 @@ packages: '@lezer/common@1.2.3': resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + '@lezer/common@1.5.0': + resolution: {integrity: sha512-PNGcolp9hr4PJdXR4ix7XtixDrClScvtSCYW3rQG106oVMOOI+jFb+0+J3mbeL/53g1Zd6s0kJzaw6Ri68GmAA==} + '@lezer/css@1.1.11': resolution: {integrity: sha512-FuAnusbLBl1SEAtfN8NdShxYJiESKw9LAFysfea1T96jD3ydBn12oYjaSG1a04BQRIUd93/0D8e5CV1cUMkmQg==} '@lezer/highlight@1.2.1': resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + '@lezer/highlight@1.2.3': + resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==} + '@lezer/html@1.3.10': resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} @@ -4486,6 +4504,11 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -4725,6 +4748,7 @@ packages: tar@7.4.3: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me temp-dir@3.0.0: resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} @@ -4926,8 +4950,8 @@ packages: undici-types@7.13.0: resolution: {integrity: sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==} - unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + unicorn-magic@0.4.0: + resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} engines: {node: '>=18'} unique-string@3.0.0: @@ -5620,6 +5644,13 @@ snapshots: '@codemirror/view': 6.36.6 '@lezer/common': 1.2.3 + '@codemirror/commands@6.10.1': + dependencies: + '@codemirror/language': 6.11.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.36.6 + '@lezer/common': 1.5.0 + '@codemirror/commands@6.8.1': dependencies: '@codemirror/language': 6.11.0 @@ -5700,7 +5731,7 @@ snapshots: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 '@codemirror/view': 6.36.6 - '@lezer/highlight': 1.2.1 + '@lezer/highlight': 1.2.3 '@codemirror/view@6.36.6': dependencies: @@ -5947,21 +5978,36 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + optional: true + '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/source-map@0.3.6': + '@jridgewell/source-map@0.3.11': dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 optional: true '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': + optional: true + '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + optional: true + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -5988,6 +6034,8 @@ snapshots: '@lezer/common@1.2.3': {} + '@lezer/common@1.5.0': {} + '@lezer/css@1.1.11': dependencies: '@lezer/common': 1.2.3 @@ -5998,6 +6046,10 @@ snapshots: dependencies: '@lezer/common': 1.2.3 + '@lezer/highlight@1.2.3': + dependencies: + '@lezer/common': 1.5.0 + '@lezer/html@1.3.10': dependencies: '@lezer/common': 1.2.3 @@ -7628,7 +7680,7 @@ snapshots: codemirror@6.0.1: dependencies: '@codemirror/autocomplete': 6.18.6 - '@codemirror/commands': 6.8.1 + '@codemirror/commands': 6.10.1 '@codemirror/language': 6.11.0 '@codemirror/lint': 6.8.5 '@codemirror/search': 6.5.10 @@ -7927,7 +7979,7 @@ snapshots: dependencies: debug: 3.2.7 is-core-module: 2.16.1 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color optional: true @@ -8977,7 +9029,7 @@ snapshots: npm-run-path@6.0.0: dependencies: path-key: 4.0.0 - unicorn-magic: 0.3.0 + unicorn-magic: 0.4.0 nwsapi@2.2.20: {} @@ -9366,6 +9418,13 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + optional: true + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -9668,7 +9727,7 @@ snapshots: terser@5.39.0: dependencies: - '@jridgewell/source-map': 0.3.6 + '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -9824,7 +9883,7 @@ snapshots: undici-types@7.13.0: {} - unicorn-magic@0.3.0: {} + unicorn-magic@0.4.0: {} unique-string@3.0.0: dependencies: