@nclamvn/vibecode-cli 2.1.0 → 2.2.0
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/bin/vibecode.js +26 -3
- package/package.json +1 -1
- package/src/commands/go.js +251 -3
- package/src/commands/templates.js +397 -0
- package/src/index.js +13 -0
- package/src/templates/index.js +724 -0
|
@@ -0,0 +1,724 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
2
|
+
// VIBECODE CLI - Template Gallery
|
|
3
|
+
// Professional templates for rapid project creation
|
|
4
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Template definitions
|
|
8
|
+
* Each template includes prompt, variables, and metadata
|
|
9
|
+
*/
|
|
10
|
+
export const TEMPLATES = {
|
|
11
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
12
|
+
// LANDING PAGES
|
|
13
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
14
|
+
|
|
15
|
+
'landing-minimal': {
|
|
16
|
+
id: 'landing-minimal',
|
|
17
|
+
name: 'Minimal Landing',
|
|
18
|
+
category: 'landing',
|
|
19
|
+
description: 'Clean, minimalist landing page with hero, features, CTA',
|
|
20
|
+
tags: ['minimal', 'clean', 'startup'],
|
|
21
|
+
stack: ['Next.js 14', 'Tailwind CSS'],
|
|
22
|
+
features: [
|
|
23
|
+
'Responsive hero section',
|
|
24
|
+
'Features grid (3 columns)',
|
|
25
|
+
'CTA section',
|
|
26
|
+
'Footer with links'
|
|
27
|
+
],
|
|
28
|
+
preview: 'https://templates.vibecode.dev/landing-minimal.png',
|
|
29
|
+
prompt: `Create a minimal landing page with:
|
|
30
|
+
- Hero section: Large headline, subtitle, 2 CTA buttons (primary & secondary)
|
|
31
|
+
- Features: 3-column grid with icons and descriptions
|
|
32
|
+
- CTA section: Final call-to-action with email signup
|
|
33
|
+
- Footer: Links and copyright
|
|
34
|
+
|
|
35
|
+
Style: Clean, lots of whitespace, modern typography
|
|
36
|
+
Tech: Next.js 14 App Router, Tailwind CSS
|
|
37
|
+
Colors: Use a modern color palette with primary accent color`,
|
|
38
|
+
variables: {
|
|
39
|
+
name: { type: 'string', default: 'My Startup', description: 'Company name' },
|
|
40
|
+
tagline: { type: 'string', default: 'Build something amazing', description: 'Main tagline' },
|
|
41
|
+
primaryColor: { type: 'color', default: '#3B82F6', description: 'Primary brand color' }
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
'landing-apple': {
|
|
46
|
+
id: 'landing-apple',
|
|
47
|
+
name: 'Apple Style Landing',
|
|
48
|
+
category: 'landing',
|
|
49
|
+
description: 'Premium Apple-inspired landing page with smooth animations',
|
|
50
|
+
tags: ['premium', 'apple', 'luxury', 'animations'],
|
|
51
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Framer Motion'],
|
|
52
|
+
features: [
|
|
53
|
+
'Full-screen hero with scroll animations',
|
|
54
|
+
'Product showcase sections',
|
|
55
|
+
'Parallax effects',
|
|
56
|
+
'Smooth scroll navigation',
|
|
57
|
+
'Premium typography'
|
|
58
|
+
],
|
|
59
|
+
preview: 'https://templates.vibecode.dev/landing-apple.png',
|
|
60
|
+
prompt: `Create a premium Apple-style landing page:
|
|
61
|
+
|
|
62
|
+
Design Philosophy:
|
|
63
|
+
- Ultra-minimalist, massive whitespace
|
|
64
|
+
- Black/white/gray color scheme with subtle gradients
|
|
65
|
+
- Large, bold typography (SF Pro style or Inter)
|
|
66
|
+
|
|
67
|
+
Sections:
|
|
68
|
+
1. Hero: Full-screen with large product image, fade-in animation
|
|
69
|
+
2. Product Features: Side-by-side layout, image + text alternating
|
|
70
|
+
3. Specs/Details: Clean grid with icons
|
|
71
|
+
4. Final CTA: Centered, minimal
|
|
72
|
+
|
|
73
|
+
Animations:
|
|
74
|
+
- Smooth scroll between sections
|
|
75
|
+
- Fade-in on scroll (elements appear as you scroll)
|
|
76
|
+
- Subtle parallax on images
|
|
77
|
+
- Hover effects on interactive elements
|
|
78
|
+
|
|
79
|
+
Navigation: Sticky header, transparent, blur effect on scroll
|
|
80
|
+
|
|
81
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Framer Motion`,
|
|
82
|
+
variables: {
|
|
83
|
+
productName: { type: 'string', default: 'Product', description: 'Product name' },
|
|
84
|
+
theme: { type: 'select', options: ['dark', 'light'], default: 'dark', description: 'Color theme' }
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
'landing-saas': {
|
|
89
|
+
id: 'landing-saas',
|
|
90
|
+
name: 'SaaS Landing',
|
|
91
|
+
category: 'landing',
|
|
92
|
+
description: 'Complete SaaS landing with pricing, testimonials, FAQ',
|
|
93
|
+
tags: ['saas', 'startup', 'pricing', 'complete'],
|
|
94
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Lucide Icons'],
|
|
95
|
+
features: [
|
|
96
|
+
'Hero with product mockup',
|
|
97
|
+
'Logo cloud / Trust badges',
|
|
98
|
+
'Features section (6 features)',
|
|
99
|
+
'Pricing table (3 tiers)',
|
|
100
|
+
'Testimonials section',
|
|
101
|
+
'FAQ accordion',
|
|
102
|
+
'Newsletter signup',
|
|
103
|
+
'Full footer with sitemap'
|
|
104
|
+
],
|
|
105
|
+
preview: 'https://templates.vibecode.dev/landing-saas.png',
|
|
106
|
+
prompt: `Create a complete SaaS landing page:
|
|
107
|
+
|
|
108
|
+
Sections:
|
|
109
|
+
1. Hero: Headline, subtitle, 2 CTA buttons, product screenshot/mockup
|
|
110
|
+
2. Logo Cloud: 5-6 trust badges or client logos
|
|
111
|
+
3. Features: 6 features in 2x3 grid with icons
|
|
112
|
+
4. How It Works: 3-step process
|
|
113
|
+
5. Pricing: 3 tiers (Starter $9/mo, Pro $29/mo, Enterprise custom)
|
|
114
|
+
6. Testimonials: 3 customer quotes with photos and company
|
|
115
|
+
7. FAQ: 5 questions in accordion format
|
|
116
|
+
8. Final CTA: Email signup, conversion focus
|
|
117
|
+
9. Footer: Full sitemap, social links, legal
|
|
118
|
+
|
|
119
|
+
Design:
|
|
120
|
+
- Modern, professional look
|
|
121
|
+
- Gradient backgrounds
|
|
122
|
+
- Card-based UI
|
|
123
|
+
- Lucide React icons
|
|
124
|
+
|
|
125
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Lucide React`,
|
|
126
|
+
variables: {
|
|
127
|
+
name: { type: 'string', default: 'SaaSify', description: 'Product name' },
|
|
128
|
+
pricing: { type: 'boolean', default: true, description: 'Include pricing section' }
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
'landing-startup': {
|
|
133
|
+
id: 'landing-startup',
|
|
134
|
+
name: 'Startup Landing',
|
|
135
|
+
category: 'landing',
|
|
136
|
+
description: 'Modern startup landing with waitlist and social proof',
|
|
137
|
+
tags: ['startup', 'waitlist', 'modern', 'gradient'],
|
|
138
|
+
stack: ['Next.js 14', 'Tailwind CSS'],
|
|
139
|
+
features: [
|
|
140
|
+
'Gradient hero section',
|
|
141
|
+
'Waitlist email capture',
|
|
142
|
+
'Feature highlights',
|
|
143
|
+
'Social proof counter',
|
|
144
|
+
'Team section'
|
|
145
|
+
],
|
|
146
|
+
preview: 'https://templates.vibecode.dev/landing-startup.png',
|
|
147
|
+
prompt: `Create a modern startup landing page:
|
|
148
|
+
|
|
149
|
+
Sections:
|
|
150
|
+
1. Hero: Bold gradient background, waitlist signup form, "Join X others" counter
|
|
151
|
+
2. Problem/Solution: What problem you solve
|
|
152
|
+
3. Features: 4 key features with icons
|
|
153
|
+
4. Social Proof: Testimonial + metrics (users, countries, etc)
|
|
154
|
+
5. Team: Founder photos and bios (2-3 people)
|
|
155
|
+
6. CTA: Final waitlist signup
|
|
156
|
+
7. Footer: Minimal
|
|
157
|
+
|
|
158
|
+
Design:
|
|
159
|
+
- Vibrant gradient backgrounds (purple to blue or similar)
|
|
160
|
+
- Modern, energetic feel
|
|
161
|
+
- Rounded corners everywhere
|
|
162
|
+
- Animated counters
|
|
163
|
+
|
|
164
|
+
Tech: Next.js 14 App Router, Tailwind CSS`,
|
|
165
|
+
variables: {
|
|
166
|
+
name: { type: 'string', default: 'LaunchPad', description: 'Startup name' },
|
|
167
|
+
waitlistCount: { type: 'number', default: 1247, description: 'Waitlist counter' }
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
172
|
+
// DASHBOARDS
|
|
173
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
174
|
+
|
|
175
|
+
'dashboard-admin': {
|
|
176
|
+
id: 'dashboard-admin',
|
|
177
|
+
name: 'Admin Dashboard',
|
|
178
|
+
category: 'dashboard',
|
|
179
|
+
description: 'Full-featured admin dashboard with charts, tables, sidebar',
|
|
180
|
+
tags: ['admin', 'dashboard', 'charts', 'tables'],
|
|
181
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Recharts', 'Lucide Icons'],
|
|
182
|
+
features: [
|
|
183
|
+
'Collapsible sidebar navigation',
|
|
184
|
+
'Header with search & profile',
|
|
185
|
+
'Dashboard overview cards (4 KPIs)',
|
|
186
|
+
'Charts (line, bar, pie)',
|
|
187
|
+
'Data table with pagination',
|
|
188
|
+
'Dark/Light mode toggle'
|
|
189
|
+
],
|
|
190
|
+
preview: 'https://templates.vibecode.dev/dashboard-admin.png',
|
|
191
|
+
prompt: `Create an admin dashboard:
|
|
192
|
+
|
|
193
|
+
Layout:
|
|
194
|
+
- Sidebar: Collapsible, logo at top, navigation links, user menu at bottom
|
|
195
|
+
- Header: Search bar, notifications bell, profile dropdown
|
|
196
|
+
- Main: Content area with padding
|
|
197
|
+
|
|
198
|
+
Dashboard Page:
|
|
199
|
+
- 4 stat cards (Users, Revenue, Orders, Growth) with icons and trends
|
|
200
|
+
- Line chart: Revenue over time
|
|
201
|
+
- Bar chart: Sales by category
|
|
202
|
+
- Recent orders table with status badges
|
|
203
|
+
- Activity feed
|
|
204
|
+
|
|
205
|
+
Features:
|
|
206
|
+
- Dark/Light mode toggle in header
|
|
207
|
+
- Responsive (sidebar collapses on mobile)
|
|
208
|
+
- Table with sorting, filtering, pagination
|
|
209
|
+
|
|
210
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Recharts, Lucide React`,
|
|
211
|
+
variables: {
|
|
212
|
+
name: { type: 'string', default: 'Admin Panel', description: 'Dashboard name' },
|
|
213
|
+
darkMode: { type: 'boolean', default: true, description: 'Enable dark mode' }
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
|
|
217
|
+
'dashboard-analytics': {
|
|
218
|
+
id: 'dashboard-analytics',
|
|
219
|
+
name: 'Analytics Dashboard',
|
|
220
|
+
category: 'dashboard',
|
|
221
|
+
description: 'Data-focused analytics dashboard with multiple chart types',
|
|
222
|
+
tags: ['analytics', 'data', 'charts', 'metrics'],
|
|
223
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Recharts', 'date-fns'],
|
|
224
|
+
features: [
|
|
225
|
+
'Real-time metrics cards',
|
|
226
|
+
'Multiple chart types',
|
|
227
|
+
'Date range picker',
|
|
228
|
+
'Export data button',
|
|
229
|
+
'Responsive tables',
|
|
230
|
+
'Comparison metrics'
|
|
231
|
+
],
|
|
232
|
+
preview: 'https://templates.vibecode.dev/dashboard-analytics.png',
|
|
233
|
+
prompt: `Create an analytics dashboard focused on data visualization:
|
|
234
|
+
|
|
235
|
+
Layout:
|
|
236
|
+
- Top bar with date range picker and export button
|
|
237
|
+
- Main content with grid of charts and tables
|
|
238
|
+
|
|
239
|
+
Components:
|
|
240
|
+
1. KPI Cards (6 total): Visitors, Page Views, Bounce Rate, Avg Session, Conversions, Revenue
|
|
241
|
+
- Each with trend indicator (+/-%)
|
|
242
|
+
2. Main Chart: Large area chart showing traffic over time
|
|
243
|
+
3. Secondary Charts:
|
|
244
|
+
- Bar chart: Top pages
|
|
245
|
+
- Pie chart: Traffic sources
|
|
246
|
+
- Line chart: Conversions
|
|
247
|
+
4. Data Table: Detailed metrics with sortable columns
|
|
248
|
+
|
|
249
|
+
Features:
|
|
250
|
+
- Date range selector (Last 7 days, 30 days, 90 days, Custom)
|
|
251
|
+
- Export to CSV button
|
|
252
|
+
- Real-time updates simulation
|
|
253
|
+
- Responsive grid layout
|
|
254
|
+
|
|
255
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Recharts, date-fns`,
|
|
256
|
+
variables: {
|
|
257
|
+
metrics: { type: 'string', default: 'users,revenue,sessions', description: 'Metrics to display' }
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
|
|
261
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
262
|
+
// E-COMMERCE
|
|
263
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
264
|
+
|
|
265
|
+
'ecommerce-store': {
|
|
266
|
+
id: 'ecommerce-store',
|
|
267
|
+
name: 'E-commerce Store',
|
|
268
|
+
category: 'ecommerce',
|
|
269
|
+
description: 'Complete e-commerce store with product pages, cart, checkout',
|
|
270
|
+
tags: ['ecommerce', 'shop', 'cart', 'products'],
|
|
271
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Zustand'],
|
|
272
|
+
features: [
|
|
273
|
+
'Homepage with featured products',
|
|
274
|
+
'Product listing with filters',
|
|
275
|
+
'Product detail page',
|
|
276
|
+
'Shopping cart (slide-out)',
|
|
277
|
+
'Checkout flow',
|
|
278
|
+
'Responsive design'
|
|
279
|
+
],
|
|
280
|
+
preview: 'https://templates.vibecode.dev/ecommerce-store.png',
|
|
281
|
+
prompt: `Create an e-commerce store:
|
|
282
|
+
|
|
283
|
+
Pages:
|
|
284
|
+
1. Homepage:
|
|
285
|
+
- Hero banner with sale/promo
|
|
286
|
+
- Featured products grid
|
|
287
|
+
- Category cards
|
|
288
|
+
- Newsletter signup
|
|
289
|
+
|
|
290
|
+
2. Products Page (/products):
|
|
291
|
+
- Sidebar filters (category, price range, color)
|
|
292
|
+
- Product grid with hover effects
|
|
293
|
+
- Sort dropdown (price, newest, popular)
|
|
294
|
+
- Pagination
|
|
295
|
+
|
|
296
|
+
3. Product Detail (/products/[id]):
|
|
297
|
+
- Image gallery with thumbnails
|
|
298
|
+
- Product info (name, price, description)
|
|
299
|
+
- Size/variant selector
|
|
300
|
+
- Add to cart button
|
|
301
|
+
- Related products
|
|
302
|
+
|
|
303
|
+
4. Cart (slide-out panel):
|
|
304
|
+
- Product list with quantity controls
|
|
305
|
+
- Remove item button
|
|
306
|
+
- Subtotal calculation
|
|
307
|
+
- Checkout button
|
|
308
|
+
|
|
309
|
+
5. Checkout (/checkout):
|
|
310
|
+
- Multi-step: Shipping > Payment > Review
|
|
311
|
+
- Form validation
|
|
312
|
+
- Order summary sidebar
|
|
313
|
+
|
|
314
|
+
State Management: Zustand for cart
|
|
315
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Zustand`,
|
|
316
|
+
variables: {
|
|
317
|
+
storeName: { type: 'string', default: 'My Store', description: 'Store name' },
|
|
318
|
+
currency: { type: 'string', default: 'USD', description: 'Currency code' }
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
|
|
322
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
323
|
+
// BLOGS
|
|
324
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
325
|
+
|
|
326
|
+
'blog-minimal': {
|
|
327
|
+
id: 'blog-minimal',
|
|
328
|
+
name: 'Minimal Blog',
|
|
329
|
+
category: 'blog',
|
|
330
|
+
description: 'Clean, fast blog with MDX support',
|
|
331
|
+
tags: ['blog', 'minimal', 'mdx', 'content'],
|
|
332
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'MDX'],
|
|
333
|
+
features: [
|
|
334
|
+
'Homepage with post list',
|
|
335
|
+
'Post page with MDX support',
|
|
336
|
+
'Categories and tags',
|
|
337
|
+
'Search functionality',
|
|
338
|
+
'RSS feed',
|
|
339
|
+
'SEO optimized'
|
|
340
|
+
],
|
|
341
|
+
preview: 'https://templates.vibecode.dev/blog-minimal.png',
|
|
342
|
+
prompt: `Create a minimal blog:
|
|
343
|
+
|
|
344
|
+
Pages:
|
|
345
|
+
1. Homepage (/):
|
|
346
|
+
- Header with logo and nav
|
|
347
|
+
- Featured post (large)
|
|
348
|
+
- Recent posts list with excerpts
|
|
349
|
+
- Sidebar with categories and about
|
|
350
|
+
|
|
351
|
+
2. Post Page (/posts/[slug]):
|
|
352
|
+
- Post header (title, date, author, read time)
|
|
353
|
+
- MDX content with typography styles
|
|
354
|
+
- Share buttons
|
|
355
|
+
- Author bio
|
|
356
|
+
- Related posts
|
|
357
|
+
|
|
358
|
+
3. Category Page (/category/[slug]):
|
|
359
|
+
- Category title and description
|
|
360
|
+
- Posts in that category
|
|
361
|
+
|
|
362
|
+
4. About Page (/about):
|
|
363
|
+
- Author info and photo
|
|
364
|
+
- Social links
|
|
365
|
+
|
|
366
|
+
Features:
|
|
367
|
+
- MDX support for rich content
|
|
368
|
+
- Code syntax highlighting
|
|
369
|
+
- Table of contents
|
|
370
|
+
- SEO meta tags and OpenGraph
|
|
371
|
+
- RSS feed (/feed.xml)
|
|
372
|
+
- Sitemap
|
|
373
|
+
|
|
374
|
+
Design: Clean typography, lots of whitespace, easy to read
|
|
375
|
+
Tech: Next.js 14 App Router, Tailwind CSS, next-mdx-remote or @next/mdx`,
|
|
376
|
+
variables: {
|
|
377
|
+
blogName: { type: 'string', default: 'My Blog', description: 'Blog name' },
|
|
378
|
+
postsPerPage: { type: 'number', default: 10, description: 'Posts per page' }
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
|
|
382
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
383
|
+
// PORTFOLIOS
|
|
384
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
385
|
+
|
|
386
|
+
'portfolio-developer': {
|
|
387
|
+
id: 'portfolio-developer',
|
|
388
|
+
name: 'Developer Portfolio',
|
|
389
|
+
category: 'portfolio',
|
|
390
|
+
description: 'Modern developer portfolio with projects, skills, contact',
|
|
391
|
+
tags: ['portfolio', 'developer', 'personal', 'resume'],
|
|
392
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Framer Motion'],
|
|
393
|
+
features: [
|
|
394
|
+
'Hero with introduction',
|
|
395
|
+
'About section',
|
|
396
|
+
'Skills/Tech stack display',
|
|
397
|
+
'Projects showcase',
|
|
398
|
+
'Experience timeline',
|
|
399
|
+
'Contact form'
|
|
400
|
+
],
|
|
401
|
+
preview: 'https://templates.vibecode.dev/portfolio-developer.png',
|
|
402
|
+
prompt: `Create a developer portfolio:
|
|
403
|
+
|
|
404
|
+
Sections:
|
|
405
|
+
1. Hero:
|
|
406
|
+
- Name and title
|
|
407
|
+
- Short tagline
|
|
408
|
+
- Social links (GitHub, LinkedIn, Twitter)
|
|
409
|
+
- CTA button (Contact me)
|
|
410
|
+
|
|
411
|
+
2. About:
|
|
412
|
+
- Photo
|
|
413
|
+
- Bio paragraph
|
|
414
|
+
- Download resume button
|
|
415
|
+
|
|
416
|
+
3. Skills:
|
|
417
|
+
- Tech stack grid with icons
|
|
418
|
+
- Skill categories (Frontend, Backend, Tools)
|
|
419
|
+
- Proficiency indicators or tags
|
|
420
|
+
|
|
421
|
+
4. Projects:
|
|
422
|
+
- Grid of 4-6 projects
|
|
423
|
+
- Each: Image, title, description, tech tags
|
|
424
|
+
- Links to live demo and GitHub
|
|
425
|
+
|
|
426
|
+
5. Experience:
|
|
427
|
+
- Timeline layout
|
|
428
|
+
- Job title, company, dates
|
|
429
|
+
- Brief description
|
|
430
|
+
|
|
431
|
+
6. Contact:
|
|
432
|
+
- Contact form (name, email, message)
|
|
433
|
+
- Or direct email link
|
|
434
|
+
- Social links
|
|
435
|
+
|
|
436
|
+
Animations:
|
|
437
|
+
- Scroll-triggered fade-ins
|
|
438
|
+
- Hover effects on project cards
|
|
439
|
+
- Smooth scroll navigation
|
|
440
|
+
|
|
441
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Framer Motion`,
|
|
442
|
+
variables: {
|
|
443
|
+
name: { type: 'string', default: 'John Doe', description: 'Your name' },
|
|
444
|
+
title: { type: 'string', default: 'Full Stack Developer', description: 'Your title' }
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
|
|
448
|
+
'portfolio-creative': {
|
|
449
|
+
id: 'portfolio-creative',
|
|
450
|
+
name: 'Creative Portfolio',
|
|
451
|
+
category: 'portfolio',
|
|
452
|
+
description: 'Visual portfolio for designers and creatives',
|
|
453
|
+
tags: ['portfolio', 'creative', 'designer', 'visual'],
|
|
454
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Framer Motion'],
|
|
455
|
+
features: [
|
|
456
|
+
'Full-screen project showcases',
|
|
457
|
+
'Image galleries',
|
|
458
|
+
'Smooth transitions',
|
|
459
|
+
'Minimal navigation',
|
|
460
|
+
'Case study pages'
|
|
461
|
+
],
|
|
462
|
+
preview: 'https://templates.vibecode.dev/portfolio-creative.png',
|
|
463
|
+
prompt: `Create a creative portfolio for designers:
|
|
464
|
+
|
|
465
|
+
Design Philosophy:
|
|
466
|
+
- Let the work speak for itself
|
|
467
|
+
- Minimal UI, maximum focus on visuals
|
|
468
|
+
- Smooth, cinematic transitions
|
|
469
|
+
|
|
470
|
+
Pages:
|
|
471
|
+
1. Homepage:
|
|
472
|
+
- Full-screen project grid or list
|
|
473
|
+
- Hover effects reveal project info
|
|
474
|
+
- Minimal header with name and nav
|
|
475
|
+
|
|
476
|
+
2. Project Page (/work/[slug]):
|
|
477
|
+
- Full-width hero image
|
|
478
|
+
- Project details (client, role, year)
|
|
479
|
+
- Image gallery with lightbox
|
|
480
|
+
- Description and process
|
|
481
|
+
- Next/Previous project navigation
|
|
482
|
+
|
|
483
|
+
3. About:
|
|
484
|
+
- Large photo
|
|
485
|
+
- Bio
|
|
486
|
+
- Services offered
|
|
487
|
+
- Contact info
|
|
488
|
+
|
|
489
|
+
Features:
|
|
490
|
+
- Page transitions (fade or slide)
|
|
491
|
+
- Cursor effects (optional)
|
|
492
|
+
- Image lazy loading
|
|
493
|
+
- Smooth scroll
|
|
494
|
+
|
|
495
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Framer Motion`,
|
|
496
|
+
variables: {
|
|
497
|
+
name: { type: 'string', default: 'Jane Smith', description: 'Your name' },
|
|
498
|
+
specialty: { type: 'string', default: 'UI/UX Designer', description: 'Your specialty' }
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
|
|
502
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
503
|
+
// APPS
|
|
504
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
505
|
+
|
|
506
|
+
'app-todo': {
|
|
507
|
+
id: 'app-todo',
|
|
508
|
+
name: 'Todo App',
|
|
509
|
+
category: 'app',
|
|
510
|
+
description: 'Feature-rich todo app with categories and due dates',
|
|
511
|
+
tags: ['app', 'todo', 'productivity'],
|
|
512
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Zustand', 'date-fns'],
|
|
513
|
+
features: [
|
|
514
|
+
'Add/Edit/Delete todos',
|
|
515
|
+
'Categories/Projects',
|
|
516
|
+
'Due dates with calendar',
|
|
517
|
+
'Priority levels',
|
|
518
|
+
'Search & Filter',
|
|
519
|
+
'Local storage persistence'
|
|
520
|
+
],
|
|
521
|
+
preview: 'https://templates.vibecode.dev/app-todo.png',
|
|
522
|
+
prompt: `Create a todo application:
|
|
523
|
+
|
|
524
|
+
Layout:
|
|
525
|
+
- Sidebar: Projects/Categories list, Add project button
|
|
526
|
+
- Main: Todo list with input at top
|
|
527
|
+
|
|
528
|
+
Features:
|
|
529
|
+
1. Todo CRUD:
|
|
530
|
+
- Add todo with title
|
|
531
|
+
- Edit inline
|
|
532
|
+
- Delete with confirmation
|
|
533
|
+
- Mark complete with checkbox
|
|
534
|
+
|
|
535
|
+
2. Organization:
|
|
536
|
+
- Projects/Categories (Inbox, Personal, Work, etc)
|
|
537
|
+
- Due date picker
|
|
538
|
+
- Priority (Low, Medium, High)
|
|
539
|
+
- Tags
|
|
540
|
+
|
|
541
|
+
3. Filters:
|
|
542
|
+
- All / Today / Upcoming / Completed
|
|
543
|
+
- By project
|
|
544
|
+
- By priority
|
|
545
|
+
- Search by text
|
|
546
|
+
|
|
547
|
+
4. UI:
|
|
548
|
+
- Clean, minimal design
|
|
549
|
+
- Keyboard shortcuts (Enter to add, etc)
|
|
550
|
+
- Drag and drop reorder (optional)
|
|
551
|
+
|
|
552
|
+
State: Zustand with localStorage persistence
|
|
553
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Zustand, date-fns`,
|
|
554
|
+
variables: {
|
|
555
|
+
appName: { type: 'string', default: 'TaskFlow', description: 'App name' }
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
|
|
559
|
+
'app-chat': {
|
|
560
|
+
id: 'app-chat',
|
|
561
|
+
name: 'Chat Interface',
|
|
562
|
+
category: 'app',
|
|
563
|
+
description: 'Real-time chat UI with modern design',
|
|
564
|
+
tags: ['app', 'chat', 'messaging', 'ui'],
|
|
565
|
+
stack: ['Next.js 14', 'Tailwind CSS'],
|
|
566
|
+
features: [
|
|
567
|
+
'Chat list sidebar',
|
|
568
|
+
'Message thread view',
|
|
569
|
+
'Message input with emoji',
|
|
570
|
+
'User avatars',
|
|
571
|
+
'Typing indicator',
|
|
572
|
+
'Message timestamps'
|
|
573
|
+
],
|
|
574
|
+
preview: 'https://templates.vibecode.dev/app-chat.png',
|
|
575
|
+
prompt: `Create a chat interface (UI only with mock data):
|
|
576
|
+
|
|
577
|
+
Layout:
|
|
578
|
+
- Sidebar: Chat/conversation list
|
|
579
|
+
- Main: Active chat messages
|
|
580
|
+
- Optional: User details panel
|
|
581
|
+
|
|
582
|
+
Sidebar:
|
|
583
|
+
- Search conversations
|
|
584
|
+
- Chat list items: Avatar, name, last message preview, time, unread badge
|
|
585
|
+
|
|
586
|
+
Messages Area:
|
|
587
|
+
- Header: User name, status, actions (call, info)
|
|
588
|
+
- Messages: Bubbles (sent vs received styling), timestamps, read receipts
|
|
589
|
+
- Input: Text field, emoji button, attachment button, send
|
|
590
|
+
|
|
591
|
+
Features:
|
|
592
|
+
- Typing indicator animation
|
|
593
|
+
- Online/offline status dots
|
|
594
|
+
- Message grouping by time
|
|
595
|
+
- Unread message indicators
|
|
596
|
+
- Responsive (mobile shows one panel at a time)
|
|
597
|
+
|
|
598
|
+
Mock Data: Include sample conversations and messages
|
|
599
|
+
Tech: Next.js 14 App Router, Tailwind CSS`,
|
|
600
|
+
variables: {}
|
|
601
|
+
},
|
|
602
|
+
|
|
603
|
+
'app-notes': {
|
|
604
|
+
id: 'app-notes',
|
|
605
|
+
name: 'Notes App',
|
|
606
|
+
category: 'app',
|
|
607
|
+
description: 'Notion-like notes app with rich text editor',
|
|
608
|
+
tags: ['app', 'notes', 'editor', 'productivity'],
|
|
609
|
+
stack: ['Next.js 14', 'Tailwind CSS', 'Tiptap'],
|
|
610
|
+
features: [
|
|
611
|
+
'Rich text editor',
|
|
612
|
+
'Folder organization',
|
|
613
|
+
'Search notes',
|
|
614
|
+
'Markdown support',
|
|
615
|
+
'Local storage'
|
|
616
|
+
],
|
|
617
|
+
preview: 'https://templates.vibecode.dev/app-notes.png',
|
|
618
|
+
prompt: `Create a notes application similar to Notion:
|
|
619
|
+
|
|
620
|
+
Layout:
|
|
621
|
+
- Sidebar: Folders/pages tree
|
|
622
|
+
- Main: Note editor
|
|
623
|
+
|
|
624
|
+
Features:
|
|
625
|
+
1. Organization:
|
|
626
|
+
- Create folders
|
|
627
|
+
- Create pages within folders
|
|
628
|
+
- Drag to reorder
|
|
629
|
+
- Favorites section
|
|
630
|
+
|
|
631
|
+
2. Editor:
|
|
632
|
+
- Rich text (bold, italic, headings, lists)
|
|
633
|
+
- Code blocks
|
|
634
|
+
- Images
|
|
635
|
+
- Checkboxes
|
|
636
|
+
- Dividers
|
|
637
|
+
|
|
638
|
+
3. Other:
|
|
639
|
+
- Search across all notes
|
|
640
|
+
- Autosave
|
|
641
|
+
- Last edited timestamp
|
|
642
|
+
- Dark/Light mode
|
|
643
|
+
|
|
644
|
+
Tech: Next.js 14 App Router, Tailwind CSS, Tiptap editor
|
|
645
|
+
State: Local storage persistence`,
|
|
646
|
+
variables: {
|
|
647
|
+
appName: { type: 'string', default: 'Notes', description: 'App name' }
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
|
|
652
|
+
/**
|
|
653
|
+
* Get templates by category
|
|
654
|
+
*/
|
|
655
|
+
export function getTemplatesByCategory(category) {
|
|
656
|
+
return Object.values(TEMPLATES).filter(t => t.category === category);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* Get all categories with counts
|
|
661
|
+
*/
|
|
662
|
+
export function getCategories() {
|
|
663
|
+
const categoryMap = new Map();
|
|
664
|
+
|
|
665
|
+
for (const template of Object.values(TEMPLATES)) {
|
|
666
|
+
const existing = categoryMap.get(template.category) || 0;
|
|
667
|
+
categoryMap.set(template.category, existing + 1);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
return Array.from(categoryMap.entries()).map(([id, count]) => ({
|
|
671
|
+
id,
|
|
672
|
+
name: id.charAt(0).toUpperCase() + id.slice(1),
|
|
673
|
+
count
|
|
674
|
+
}));
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* Search templates by query
|
|
679
|
+
*/
|
|
680
|
+
export function searchTemplates(query) {
|
|
681
|
+
const q = query.toLowerCase();
|
|
682
|
+
return Object.values(TEMPLATES).filter(t =>
|
|
683
|
+
t.name.toLowerCase().includes(q) ||
|
|
684
|
+
t.description.toLowerCase().includes(q) ||
|
|
685
|
+
t.tags.some(tag => tag.toLowerCase().includes(q)) ||
|
|
686
|
+
t.category.toLowerCase().includes(q)
|
|
687
|
+
);
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* Get template by ID
|
|
692
|
+
*/
|
|
693
|
+
export function getTemplate(id) {
|
|
694
|
+
return TEMPLATES[id] || null;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/**
|
|
698
|
+
* Get category icon
|
|
699
|
+
*/
|
|
700
|
+
export function getCategoryIcon(category) {
|
|
701
|
+
const icons = {
|
|
702
|
+
landing: '🌐',
|
|
703
|
+
dashboard: '📊',
|
|
704
|
+
ecommerce: '🛒',
|
|
705
|
+
blog: '📝',
|
|
706
|
+
portfolio: '💼',
|
|
707
|
+
app: '📱'
|
|
708
|
+
};
|
|
709
|
+
return icons[category] || '📦';
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
/**
|
|
713
|
+
* Get all template IDs
|
|
714
|
+
*/
|
|
715
|
+
export function getTemplateIds() {
|
|
716
|
+
return Object.keys(TEMPLATES);
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* Validate template ID
|
|
721
|
+
*/
|
|
722
|
+
export function isValidTemplate(id) {
|
|
723
|
+
return id in TEMPLATES;
|
|
724
|
+
}
|