start-vibing-stacks 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -146,18 +146,8 @@ async function main() {
146
146
  })),
147
147
  },
148
148
  ]);
149
- // ─── Step 6: Deploy Target ─────────────────────────────────────────────
150
- const { deploy } = await inquirer.prompt([
151
- {
152
- type: 'list',
153
- name: 'deploy',
154
- message: 'Deployment target?',
155
- choices: stackConfig.deployTargets.map((d) => ({
156
- name: `${d.icon} ${d.name}`,
157
- value: d.id,
158
- })),
159
- },
160
- ]);
149
+ // ─── Step 6: Deploy GitHub (default) ──────────────────────────────────
150
+ const deploy = 'github';
161
151
  // ─── Step 6b: MCP Servers ────────────────────────────────────────────
162
152
  const selectedMcps = FLAGS.noMcp ? [] : await selectMcpServers(stackId, database);
163
153
  // ─── Step 7: Show Summary & Confirm ────────────────────────────────────
@@ -180,7 +170,7 @@ async function main() {
180
170
  'Framework': framework,
181
171
  'Database': database,
182
172
  'Frontend': frontend,
183
- 'Deploy': deploy,
173
+ 'Deploy': '🐙 GitHub (git push)',
184
174
  'Agents': '6 universal',
185
175
  'Skills': `${stackConfig.skills.length} stack + shared`,
186
176
  'Hooks': 'stop-validator + prompt-inject',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "start-vibing-stacks",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "AI-powered multi-stack dev workflow for Claude Code. Supports PHP, Node.js, Python and more.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,13 +1,29 @@
1
1
  {
2
2
  "id": "nodejs",
3
3
  "name": "Node.js / TypeScript",
4
- "icon": "📦",
4
+ "icon": "\ud83d\udce6",
5
5
  "runtime": "Bun / Node.js 20+",
6
6
  "minVersion": "20.0.0",
7
7
  "packageManager": "bun|npm|pnpm",
8
- "extensions": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
9
- "testExtensions": ["*.test.ts", "*.spec.ts", "*.test.tsx"],
10
- "detectFiles": ["package.json", "tsconfig.json", "bun.lockb", "next.config.js"],
8
+ "extensions": [
9
+ ".ts",
10
+ ".tsx",
11
+ ".js",
12
+ ".jsx",
13
+ ".mjs",
14
+ ".cjs"
15
+ ],
16
+ "testExtensions": [
17
+ "*.test.ts",
18
+ "*.spec.ts",
19
+ "*.test.tsx"
20
+ ],
21
+ "detectFiles": [
22
+ "package.json",
23
+ "tsconfig.json",
24
+ "bun.lockb",
25
+ "next.config.js"
26
+ ],
11
27
  "commands": {
12
28
  "test": "bun run test",
13
29
  "lint": "bun run lint",
@@ -17,41 +33,139 @@
17
33
  "typecheck": "bun run typecheck"
18
34
  },
19
35
  "qualityGates": [
20
- { "name": "TypeCheck", "command": "bun run typecheck", "required": true, "order": 1 },
21
- { "name": "Lint", "command": "bun run lint", "required": true, "order": 2 },
22
- { "name": "Tests", "command": "bun run test", "required": true, "order": 3 },
23
- { "name": "Build", "command": "bun run build", "required": true, "order": 4 }
36
+ {
37
+ "name": "TypeCheck",
38
+ "command": "bun run typecheck",
39
+ "required": true,
40
+ "order": 1
41
+ },
42
+ {
43
+ "name": "Lint",
44
+ "command": "bun run lint",
45
+ "required": true,
46
+ "order": 2
47
+ },
48
+ {
49
+ "name": "Tests",
50
+ "command": "bun run test",
51
+ "required": true,
52
+ "order": 3
53
+ },
54
+ {
55
+ "name": "Build",
56
+ "command": "bun run build",
57
+ "required": true,
58
+ "order": 4
59
+ }
24
60
  ],
25
61
  "frameworks": [
26
- { "id": "nextjs", "name": "Next.js (App Router)", "icon": "▲", "detectFiles": ["next.config.js", "next.config.ts", "next.config.mjs"] },
27
- { "id": "nuxt", "name": "Nuxt", "icon": "💚", "detectFiles": ["nuxt.config.ts"] },
28
- { "id": "astro", "name": "Astro", "icon": "🚀", "detectFiles": ["astro.config.mjs"] },
29
- { "id": "express", "name": "Express", "icon": "" },
30
- { "id": "fastify", "name": "Fastify", "icon": "🏎️" },
31
- { "id": "vanilla", "name": "Vanilla Node.js", "icon": "📄" }
62
+ {
63
+ "id": "nextjs",
64
+ "name": "Next.js (App Router)",
65
+ "icon": "\u25b2",
66
+ "detectFiles": [
67
+ "next.config.js",
68
+ "next.config.ts",
69
+ "next.config.mjs"
70
+ ]
71
+ },
72
+ {
73
+ "id": "nuxt",
74
+ "name": "Nuxt",
75
+ "icon": "\ud83d\udc9a",
76
+ "detectFiles": [
77
+ "nuxt.config.ts"
78
+ ]
79
+ },
80
+ {
81
+ "id": "astro",
82
+ "name": "Astro",
83
+ "icon": "\ud83d\ude80",
84
+ "detectFiles": [
85
+ "astro.config.mjs"
86
+ ]
87
+ },
88
+ {
89
+ "id": "express",
90
+ "name": "Express",
91
+ "icon": "\u26a1"
92
+ },
93
+ {
94
+ "id": "fastify",
95
+ "name": "Fastify",
96
+ "icon": "\ud83c\udfce\ufe0f"
97
+ },
98
+ {
99
+ "id": "vanilla",
100
+ "name": "Vanilla Node.js",
101
+ "icon": "\ud83d\udcc4"
102
+ }
32
103
  ],
33
104
  "databases": [
34
- { "id": "mongodb", "name": "MongoDB", "icon": "🍃" },
35
- { "id": "postgresql", "name": "PostgreSQL", "icon": "🐘" },
36
- { "id": "mysql", "name": "MySQL / MariaDB", "icon": "🐬" },
37
- { "id": "sqlite", "name": "SQLite (Turso / libSQL)", "icon": "📁" },
38
- { "id": "redis", "name": "Redis (Upstash)", "icon": "🔴" },
39
- { "id": "none", "name": "None", "icon": "❌" }
105
+ {
106
+ "id": "mongodb",
107
+ "name": "MongoDB",
108
+ "icon": "\ud83c\udf43"
109
+ },
110
+ {
111
+ "id": "postgresql",
112
+ "name": "PostgreSQL",
113
+ "icon": "\ud83d\udc18"
114
+ },
115
+ {
116
+ "id": "mysql",
117
+ "name": "MySQL / MariaDB",
118
+ "icon": "\ud83d\udc2c"
119
+ },
120
+ {
121
+ "id": "sqlite",
122
+ "name": "SQLite (Turso / libSQL)",
123
+ "icon": "\ud83d\udcc1"
124
+ },
125
+ {
126
+ "id": "redis",
127
+ "name": "Redis (Upstash)",
128
+ "icon": "\ud83d\udd34"
129
+ },
130
+ {
131
+ "id": "none",
132
+ "name": "None",
133
+ "icon": "\u274c"
134
+ }
40
135
  ],
41
136
  "frontendOptions": [
42
- { "id": "react-tailwind", "name": "React 19+ / TailwindCSS 4+", "icon": "⚛️" },
43
- { "id": "vue", "name": "Vue.js / Nuxt", "icon": "💚" },
44
- { "id": "svelte", "name": "Svelte / SvelteKit", "icon": "🔥" },
45
- { "id": "shadcn", "name": "shadcn/ui + Tailwind", "icon": "🎨" },
46
- { "id": "none", "name": "API only — no frontend", "icon": "❌" }
137
+ {
138
+ "id": "react-tailwind",
139
+ "name": "React 19+ / TailwindCSS 4+",
140
+ "icon": "\u269b\ufe0f"
141
+ },
142
+ {
143
+ "id": "vue",
144
+ "name": "Vue.js / Nuxt",
145
+ "icon": "\ud83d\udc9a"
146
+ },
147
+ {
148
+ "id": "svelte",
149
+ "name": "Svelte / SvelteKit",
150
+ "icon": "\ud83d\udd25"
151
+ },
152
+ {
153
+ "id": "shadcn",
154
+ "name": "shadcn/ui + Tailwind",
155
+ "icon": "\ud83c\udfa8"
156
+ },
157
+ {
158
+ "id": "none",
159
+ "name": "API only \u2014 no frontend",
160
+ "icon": "\u274c"
161
+ }
47
162
  ],
48
163
  "deployTargets": [
49
- { "id": "vercel", "name": "Vercel", "icon": "▲" },
50
- { "id": "docker", "name": "Docker", "icon": "🐳" },
51
- { "id": "vps-ssh", "name": "VPS (SSH)", "icon": "☁️" },
52
- { "id": "railway", "name": "Railway", "icon": "🚂" },
53
- { "id": "fly", "name": "Fly.io", "icon": "✈️" },
54
- { "id": "netlify", "name": "Netlify", "icon": "🌐" }
164
+ {
165
+ "id": "github",
166
+ "name": "GitHub (git push)",
167
+ "icon": "\ud83d\udc19"
168
+ }
55
169
  ],
56
170
  "skills": [
57
171
  "typescript-strict",
@@ -150,34 +150,9 @@
150
150
  ],
151
151
  "deployTargets": [
152
152
  {
153
- "id": "shared-hosting",
154
- "name": "Shared Hosting (FTP)",
155
- "icon": "\ud83c\udf10"
156
- },
157
- {
158
- "id": "docker",
159
- "name": "Docker",
160
- "icon": "\ud83d\udc33"
161
- },
162
- {
163
- "id": "vps-ssh",
164
- "name": "VPS (SSH)",
165
- "icon": "\u2601\ufe0f"
166
- },
167
- {
168
- "id": "cpanel",
169
- "name": "cPanel",
170
- "icon": "\ud83d\udce6"
171
- },
172
- {
173
- "id": "forge",
174
- "name": "Laravel Forge",
175
- "icon": "\ud83d\udd28"
176
- },
177
- {
178
- "id": "vapor",
179
- "name": "Laravel Vapor (AWS)",
180
- "icon": "\u2601\ufe0f"
153
+ "id": "github",
154
+ "name": "GitHub (git push)",
155
+ "icon": "\ud83d\udc19"
181
156
  }
182
157
  ],
183
158
  "skills": [