shipd 0.1.3 → 0.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/base-package/app/globals.css +126 -0
- package/base-package/app/layout.tsx +53 -0
- package/base-package/app/page.tsx +15 -0
- package/base-package/base.config.json +57 -0
- package/base-package/components/ui/avatar.tsx +53 -0
- package/base-package/components/ui/badge.tsx +46 -0
- package/base-package/components/ui/button.tsx +59 -0
- package/base-package/components/ui/card.tsx +92 -0
- package/base-package/components/ui/chart.tsx +353 -0
- package/base-package/components/ui/checkbox.tsx +32 -0
- package/base-package/components/ui/dialog.tsx +135 -0
- package/base-package/components/ui/dropdown-menu.tsx +257 -0
- package/base-package/components/ui/form.tsx +167 -0
- package/base-package/components/ui/input.tsx +21 -0
- package/base-package/components/ui/label.tsx +24 -0
- package/base-package/components/ui/progress.tsx +31 -0
- package/base-package/components/ui/resizable.tsx +56 -0
- package/base-package/components/ui/select.tsx +185 -0
- package/base-package/components/ui/separator.tsx +28 -0
- package/base-package/components/ui/sheet.tsx +139 -0
- package/base-package/components/ui/skeleton.tsx +13 -0
- package/base-package/components/ui/sonner.tsx +25 -0
- package/base-package/components/ui/switch.tsx +31 -0
- package/base-package/components/ui/tabs.tsx +66 -0
- package/base-package/components/ui/textarea.tsx +18 -0
- package/base-package/components/ui/toggle-group.tsx +73 -0
- package/base-package/components/ui/toggle.tsx +47 -0
- package/base-package/components/ui/tooltip.tsx +61 -0
- package/base-package/components.json +21 -0
- package/base-package/eslint.config.mjs +16 -0
- package/base-package/lib/utils.ts +6 -0
- package/base-package/middleware.ts +12 -0
- package/base-package/next.config.ts +27 -0
- package/base-package/package.json +49 -0
- package/base-package/postcss.config.mjs +5 -0
- package/base-package/public/favicon.svg +4 -0
- package/base-package/tailwind.config.ts +89 -0
- package/base-package/tsconfig.json +27 -0
- package/dist/index.js +1858 -956
- package/docs-template/README.md +74 -0
- package/features/ai-chat/README.md +316 -0
- package/features/ai-chat/app/api/chat/route.ts +16 -0
- package/features/ai-chat/app/dashboard/_components/chatbot.tsx +39 -0
- package/features/ai-chat/app/dashboard/chat/page.tsx +73 -0
- package/features/ai-chat/feature.config.json +22 -0
- package/features/analytics/README.md +364 -0
- package/features/analytics/feature.config.json +20 -0
- package/features/analytics/lib/posthog.ts +36 -0
- package/features/auth/README.md +409 -0
- package/features/auth/app/api/auth/[...all]/route.ts +4 -0
- package/features/auth/app/dashboard/layout.tsx +15 -0
- package/features/auth/app/dashboard/page.tsx +140 -0
- package/features/auth/app/sign-in/page.tsx +228 -0
- package/features/auth/app/sign-up/page.tsx +243 -0
- package/features/auth/auth-schema.ts +47 -0
- package/features/auth/components/auth/setup-instructions.tsx +123 -0
- package/features/auth/feature.config.json +33 -0
- package/features/auth/lib/auth-client.ts +8 -0
- package/features/auth/lib/auth.ts +295 -0
- package/features/auth/lib/email-stub.ts +55 -0
- package/features/auth/lib/email.ts +47 -0
- package/features/auth/middleware.patch.ts +43 -0
- package/features/database/README.md +312 -0
- package/features/database/db/drizzle.ts +48 -0
- package/features/database/db/schema.ts +21 -0
- package/features/database/drizzle.config.ts +13 -0
- package/features/database/feature.config.json +30 -0
- package/features/email/README.md +341 -0
- package/features/email/emails/components/layout.tsx +181 -0
- package/features/email/emails/password-reset.tsx +67 -0
- package/features/email/emails/payment-failed.tsx +167 -0
- package/features/email/emails/subscription-confirmation.tsx +129 -0
- package/features/email/emails/welcome.tsx +100 -0
- package/features/email/feature.config.json +22 -0
- package/features/email/lib/email.ts +118 -0
- package/features/file-upload/README.md +329 -0
- package/features/file-upload/app/api/upload-image/route.ts +64 -0
- package/features/file-upload/app/dashboard/upload/page.tsx +324 -0
- package/features/file-upload/feature.config.json +23 -0
- package/features/file-upload/lib/upload-image.ts +28 -0
- package/features/marketing-landing/README.md +333 -0
- package/features/marketing-landing/app/page.tsx +25 -0
- package/features/marketing-landing/components/homepage/cli-workflow-section.tsx +231 -0
- package/features/marketing-landing/components/homepage/features-section.tsx +152 -0
- package/features/marketing-landing/components/homepage/footer.tsx +53 -0
- package/features/marketing-landing/components/homepage/hero-section.tsx +112 -0
- package/features/marketing-landing/components/homepage/integrations.tsx +124 -0
- package/features/marketing-landing/components/homepage/navigation.tsx +116 -0
- package/features/marketing-landing/components/homepage/news-section.tsx +82 -0
- package/features/marketing-landing/components/homepage/pricing-section.tsx +98 -0
- package/features/marketing-landing/components/homepage/testimonials-section.tsx +34 -0
- package/features/marketing-landing/components/logos/BetterAuth.tsx +21 -0
- package/features/marketing-landing/components/logos/NeonPostgres.tsx +41 -0
- package/features/marketing-landing/components/logos/Nextjs.tsx +72 -0
- package/features/marketing-landing/components/logos/Polar.tsx +7 -0
- package/features/marketing-landing/components/logos/TailwindCSS.tsx +27 -0
- package/features/marketing-landing/components/logos/index.ts +6 -0
- package/features/marketing-landing/components/logos/shadcnui.tsx +8 -0
- package/features/marketing-landing/feature.config.json +23 -0
- package/features/payments/README.md +375 -0
- package/features/payments/app/api/subscription/route.ts +25 -0
- package/features/payments/app/dashboard/payment/_components/manage-subscription.tsx +22 -0
- package/features/payments/app/dashboard/payment/page.tsx +126 -0
- package/features/payments/app/success/page.tsx +123 -0
- package/features/payments/feature.config.json +31 -0
- package/features/payments/lib/polar-products.ts +49 -0
- package/features/payments/lib/subscription.ts +148 -0
- package/features/payments/payments-schema.ts +30 -0
- package/features/seo/README.md +302 -0
- package/features/seo/app/blog/[slug]/page.tsx +314 -0
- package/features/seo/app/blog/page.tsx +107 -0
- package/features/seo/app/robots.txt +13 -0
- package/features/seo/app/sitemap.ts +70 -0
- package/features/seo/feature.config.json +19 -0
- package/features/seo/lib/seo-utils.ts +163 -0
- package/package.json +3 -1
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
# Marketing Landing Module - Integration Guide
|
|
2
|
+
|
|
3
|
+
**Module Version:** 1.0.0
|
|
4
|
+
**Last Updated:** 2025-12-22
|
|
5
|
+
**Standalone:** ✅ Yes (includes all dependencies)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This module adds a complete, production-ready marketing landing page to your Next.js application. It includes a beautiful hero section, features showcase, CLI workflow demonstration, integrations display, testimonials, news section, pricing table, and footer.
|
|
12
|
+
|
|
13
|
+
**Key Features:**
|
|
14
|
+
- Modern hero section with animated gradients
|
|
15
|
+
- Features table showcasing all available options
|
|
16
|
+
- Interactive CLI workflow demonstration
|
|
17
|
+
- Technology integrations showcase
|
|
18
|
+
- Testimonials section
|
|
19
|
+
- News/blog section
|
|
20
|
+
- Static pricing table (no payment integration required)
|
|
21
|
+
- Responsive navigation with mobile menu
|
|
22
|
+
- Professional footer with links
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Files Added
|
|
27
|
+
|
|
28
|
+
### Pages/Routes
|
|
29
|
+
- `app/page.tsx` - Main landing page that assembles all marketing sections
|
|
30
|
+
|
|
31
|
+
### Components
|
|
32
|
+
- `components/homepage/navigation.tsx` - Fixed header navigation with mobile menu
|
|
33
|
+
- `components/homepage/hero-section.tsx` - Hero section with CTA buttons
|
|
34
|
+
- `components/homepage/cli-workflow-section.tsx` - Interactive CLI demonstration
|
|
35
|
+
- `components/homepage/features-section.tsx` - Features table with implementation status
|
|
36
|
+
- `components/homepage/testimonials-section.tsx` - Testimonials display
|
|
37
|
+
- `components/homepage/news-section.tsx` - News/blog section
|
|
38
|
+
- `components/homepage/integrations.tsx` - Technology stack showcase
|
|
39
|
+
- `components/homepage/pricing-section.tsx` - Static pricing table
|
|
40
|
+
- `components/homepage/footer.tsx` - Footer with links and copyright
|
|
41
|
+
|
|
42
|
+
### Logo Components
|
|
43
|
+
- `components/logos/BetterAuth.tsx` - Better Auth logo component
|
|
44
|
+
- `components/logos/NeonPostgres.tsx` - Neon Postgres logo component
|
|
45
|
+
- `components/logos/Nextjs.tsx` - Next.js logo component
|
|
46
|
+
- `components/logos/Polar.tsx` - Polar.sh logo component
|
|
47
|
+
- `components/logos/TailwindCSS.tsx` - Tailwind CSS logo component
|
|
48
|
+
- `components/logos/shadcnui.tsx` - shadcn/ui logo component
|
|
49
|
+
- `components/logos/index.ts` - Logo components export
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Dependencies
|
|
54
|
+
|
|
55
|
+
### Package Dependencies
|
|
56
|
+
This module uses dependencies already included in the base package:
|
|
57
|
+
- `next` - Next.js framework
|
|
58
|
+
- `react` & `react-dom` - React library
|
|
59
|
+
- `lucide-react` - Icons (already in base)
|
|
60
|
+
- UI components from base package (`components/ui/*`)
|
|
61
|
+
|
|
62
|
+
**No additional dependencies required!** This module is designed to work with the base package.
|
|
63
|
+
|
|
64
|
+
### Included Components
|
|
65
|
+
This module uses UI components from the base package:
|
|
66
|
+
- ✅ `components/ui/button.tsx` - For CTA buttons
|
|
67
|
+
- ✅ `components/ui/card.tsx` - For feature cards
|
|
68
|
+
- ✅ `components/ui/badge.tsx` - For status badges
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Environment Variables
|
|
73
|
+
|
|
74
|
+
No environment variables required for this module.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Manual Integration Steps
|
|
79
|
+
|
|
80
|
+
If you're appending this module to an existing project, follow these steps:
|
|
81
|
+
|
|
82
|
+
### Step 1: Verify Files Were Added
|
|
83
|
+
|
|
84
|
+
Check that the following directories exist:
|
|
85
|
+
- `app/page.tsx` - Should be the new landing page (or check if it already existed)
|
|
86
|
+
- `components/homepage/` - Should contain all marketing components
|
|
87
|
+
- `components/logos/` - Should contain logo components
|
|
88
|
+
|
|
89
|
+
**Note:** If `app/page.tsx` already exists, the append command will skip it. You'll need to manually merge the landing page content.
|
|
90
|
+
|
|
91
|
+
### Step 2: Access the Landing Page
|
|
92
|
+
|
|
93
|
+
1. Start your dev server: `npm run dev`
|
|
94
|
+
2. Visit `http://localhost:3000` in your browser
|
|
95
|
+
3. You should see the complete marketing landing page
|
|
96
|
+
|
|
97
|
+
### Step 3: Customize Content
|
|
98
|
+
|
|
99
|
+
#### Update Navigation Links
|
|
100
|
+
Edit `components/homepage/navigation.tsx`:
|
|
101
|
+
```typescript
|
|
102
|
+
const navLinks = [
|
|
103
|
+
{ name: "Features", href: "#features" },
|
|
104
|
+
{ name: "Pricing", href: "#pricing" },
|
|
105
|
+
// Add your own links
|
|
106
|
+
];
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### Update Hero Section
|
|
110
|
+
Edit `components/homepage/hero-section.tsx`:
|
|
111
|
+
- Change heading text
|
|
112
|
+
- Update CTA button links
|
|
113
|
+
- Modify feature pills
|
|
114
|
+
|
|
115
|
+
#### Update Features Table
|
|
116
|
+
Edit `components/homepage/features-section.tsx`:
|
|
117
|
+
- Modify the `features` array to reflect your actual features
|
|
118
|
+
- Update implementation status
|
|
119
|
+
- Add/remove categories
|
|
120
|
+
|
|
121
|
+
#### Update Pricing
|
|
122
|
+
Edit `components/homepage/pricing-section.tsx`:
|
|
123
|
+
- Modify the `plans` array
|
|
124
|
+
- Update pricing tiers
|
|
125
|
+
- Change feature highlights
|
|
126
|
+
|
|
127
|
+
#### Update Footer
|
|
128
|
+
Edit `components/homepage/footer.tsx`:
|
|
129
|
+
- Update links array
|
|
130
|
+
- Change copyright text
|
|
131
|
+
- Modify social links
|
|
132
|
+
|
|
133
|
+
### Step 4: Customize Styling
|
|
134
|
+
|
|
135
|
+
The landing page uses a dark theme with orange accent colors (`#ff5722`). To customize:
|
|
136
|
+
- Edit component files in `components/homepage/`
|
|
137
|
+
- Modify Tailwind classes directly
|
|
138
|
+
- Change color scheme by replacing `#ff5722` with your brand color
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Usage Examples
|
|
143
|
+
|
|
144
|
+
### Basic Landing Page
|
|
145
|
+
|
|
146
|
+
The landing page is automatically assembled in `app/page.tsx`:
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
import Navigation from "@/components/homepage/navigation";
|
|
150
|
+
import HeroSection from "@/components/homepage/hero-section";
|
|
151
|
+
// ... other imports
|
|
152
|
+
|
|
153
|
+
export default function Home() {
|
|
154
|
+
return (
|
|
155
|
+
<>
|
|
156
|
+
<Navigation />
|
|
157
|
+
<HeroSection />
|
|
158
|
+
{/* ... other sections */}
|
|
159
|
+
<FooterSection />
|
|
160
|
+
</>
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Custom Section Order
|
|
166
|
+
|
|
167
|
+
You can reorder or remove sections:
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
export default function Home() {
|
|
171
|
+
return (
|
|
172
|
+
<>
|
|
173
|
+
<Navigation />
|
|
174
|
+
<HeroSection />
|
|
175
|
+
<FeaturesSection />
|
|
176
|
+
{/* Skip CLI workflow section */}
|
|
177
|
+
<Integrations />
|
|
178
|
+
<PricingSection />
|
|
179
|
+
<FooterSection />
|
|
180
|
+
</>
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Customization
|
|
188
|
+
|
|
189
|
+
### Styling
|
|
190
|
+
- All components use Tailwind CSS
|
|
191
|
+
- Dark theme with orange accent (`#ff5722`)
|
|
192
|
+
- Responsive design (mobile-first)
|
|
193
|
+
- Customize by editing component files directly
|
|
194
|
+
|
|
195
|
+
### Content
|
|
196
|
+
- Edit component files to change text content
|
|
197
|
+
- Update logo components in `components/logos/`
|
|
198
|
+
- Modify navigation structure in `navigation.tsx`
|
|
199
|
+
|
|
200
|
+
### Branding
|
|
201
|
+
- Replace logo in navigation component
|
|
202
|
+
- Update color scheme (search for `#ff5722` and replace)
|
|
203
|
+
- Customize footer links and copyright
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Troubleshooting
|
|
208
|
+
|
|
209
|
+
### Common Issues
|
|
210
|
+
|
|
211
|
+
**Issue:** Landing page shows blank or errors
|
|
212
|
+
**Solution:**
|
|
213
|
+
- Verify `app/page.tsx` exists and imports all components correctly
|
|
214
|
+
- Check that all component files were copied
|
|
215
|
+
- Ensure base UI components exist (`components/ui/*`)
|
|
216
|
+
- Restart dev server
|
|
217
|
+
|
|
218
|
+
**Issue:** Navigation links don't work
|
|
219
|
+
**Solution:**
|
|
220
|
+
- Verify anchor links match section IDs (e.g., `#features`, `#pricing`)
|
|
221
|
+
- Check that sections have correct IDs in their components
|
|
222
|
+
- Ensure Next.js Link component is used correctly
|
|
223
|
+
|
|
224
|
+
**Issue:** Components not found
|
|
225
|
+
**Solution:**
|
|
226
|
+
- Verify `components/homepage/` directory exists
|
|
227
|
+
- Check import paths use `@/` alias (configured in `tsconfig.json`)
|
|
228
|
+
- Ensure all logo components are in `components/logos/`
|
|
229
|
+
|
|
230
|
+
**Issue:** Styling looks broken
|
|
231
|
+
**Solution:**
|
|
232
|
+
- Verify Tailwind CSS is configured in `tailwind.config.ts`
|
|
233
|
+
- Check that `app/globals.css` includes Tailwind directives
|
|
234
|
+
- Ensure base package UI components are present
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Next Steps
|
|
239
|
+
|
|
240
|
+
After installing this module:
|
|
241
|
+
|
|
242
|
+
1. ✅ Visit `/` to see your landing page
|
|
243
|
+
2. ✅ Customize hero section with your brand messaging
|
|
244
|
+
3. ✅ Update features table to reflect your actual features
|
|
245
|
+
4. ✅ Modify pricing section (or integrate with payments module)
|
|
246
|
+
5. ✅ Update footer with your links and copyright
|
|
247
|
+
6. ✅ Customize color scheme to match your brand
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Related Modules
|
|
252
|
+
|
|
253
|
+
This module works well with:
|
|
254
|
+
- **Authentication Module** - Add sign-in/sign-up links to navigation
|
|
255
|
+
- **Payments Module** - Replace static pricing with dynamic subscription pricing
|
|
256
|
+
- **Docs Module** - Add documentation link to navigation
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Module Status
|
|
261
|
+
|
|
262
|
+
✅ **Standalone Package** - All components included
|
|
263
|
+
✅ **No Missing Dependencies** - Uses base package dependencies
|
|
264
|
+
✅ **Ready to Use** - Works immediately after append
|
|
265
|
+
✅ **Well Documented** - Comprehensive integration guide
|
|
266
|
+
✅ **Smart Deduplication** - Won't overwrite existing `app/page.tsx`
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## AI Integration Prompt
|
|
271
|
+
|
|
272
|
+
**For AI Assistants:** Use this prompt to understand and integrate the Marketing Landing Page module into an existing Next.js application.
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
The Marketing Landing Page module has been appended to this Next.js project. Your task is to ensure it's properly integrated and functional.
|
|
276
|
+
|
|
277
|
+
**Installed Packages:**
|
|
278
|
+
- No additional packages (uses base package dependencies: @radix-ui components, lucide-react, tailwindcss)
|
|
279
|
+
|
|
280
|
+
**Files Added:**
|
|
281
|
+
- app/page.tsx - Full marketing landing page (replaces base page.tsx)
|
|
282
|
+
- components/homepage/hero-section.tsx - Hero section with CTA buttons
|
|
283
|
+
- components/homepage/navigation.tsx - Site navigation header
|
|
284
|
+
- components/homepage/features-section.tsx - Features table/grid
|
|
285
|
+
- components/homepage/cli-workflow-section.tsx - CLI workflow demonstration
|
|
286
|
+
- components/homepage/testimonials-section.tsx - Stats/testimonials section
|
|
287
|
+
- components/homepage/integrations.tsx - Technology logos/integrations
|
|
288
|
+
- components/homepage/news-section.tsx - Blog/news preview section
|
|
289
|
+
- components/homepage/pricing-section.tsx - Pricing section (if not using payments module)
|
|
290
|
+
- components/homepage/footer.tsx - Site footer
|
|
291
|
+
- components/logos/*.tsx - Technology logo components (BetterAuth, Next.js, Polar, etc.)
|
|
292
|
+
|
|
293
|
+
**Environment Variables Required:**
|
|
294
|
+
- None (module is self-contained)
|
|
295
|
+
|
|
296
|
+
**Integration Steps:**
|
|
297
|
+
1. Verify app/page.tsx exists and imports all homepage components
|
|
298
|
+
2. Check that components/homepage/ directory exists with all section components
|
|
299
|
+
3. Verify components/logos/ directory exists with logo components
|
|
300
|
+
4. Check that navigation links point to correct routes (/sign-up, /sign-in, /docs, etc.)
|
|
301
|
+
5. Test landing page: Visit / (root route)
|
|
302
|
+
6. If auth module installed: Verify sign-in/sign-up links work
|
|
303
|
+
7. If payments module installed: Replace static pricing with dynamic pricing component
|
|
304
|
+
|
|
305
|
+
**Key Integration Points:**
|
|
306
|
+
- Homepage: app/page.tsx is the main landing page (replaces base minimal page)
|
|
307
|
+
- Navigation: components/homepage/navigation.tsx should link to /sign-up, /sign-in, /docs, etc.
|
|
308
|
+
- CTA buttons: Hero section links to /sign-up and #cli-workflow
|
|
309
|
+
- Smart deduplication: If app/page.tsx already exists, it won't be overwritten (manual merge needed)
|
|
310
|
+
- Logo components: Technology logos are in components/logos/ directory
|
|
311
|
+
- Styling: Uses Tailwind CSS with sunset orange (#ff5722) color scheme
|
|
312
|
+
|
|
313
|
+
**Dependencies:**
|
|
314
|
+
- OPTIONAL: Auth module (for sign-in/sign-up links in navigation)
|
|
315
|
+
- OPTIONAL: Payments module (for dynamic pricing section)
|
|
316
|
+
- OPTIONAL: Docs module (for documentation link in navigation)
|
|
317
|
+
- No hard dependencies - works standalone
|
|
318
|
+
|
|
319
|
+
**Common Issues to Check:**
|
|
320
|
+
- If homepage not showing: Check app/page.tsx exists and imports components correctly
|
|
321
|
+
- If components not found: Verify components/homepage/ directory structure
|
|
322
|
+
- If navigation links broken: Update href attributes in navigation.tsx
|
|
323
|
+
- If styling broken: Ensure Tailwind CSS is configured and base package components exist
|
|
324
|
+
|
|
325
|
+
**Next Steps After Integration:**
|
|
326
|
+
- Customize hero text and CTA buttons in hero-section.tsx
|
|
327
|
+
- Update navigation links in navigation.tsx
|
|
328
|
+
- Customize features list in features-section.tsx
|
|
329
|
+
- Update testimonials/stats in testimonials-section.tsx
|
|
330
|
+
- Replace logo components with your own if needed
|
|
331
|
+
- Add links to auth pages if auth module installed
|
|
332
|
+
- Integrate dynamic pricing if payments module installed
|
|
333
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import Navigation from "@/components/homepage/navigation";
|
|
2
|
+
import HeroSection from "@/components/homepage/hero-section";
|
|
3
|
+
import CliWorkflowSection from "@/components/homepage/cli-workflow-section";
|
|
4
|
+
import FeaturesSection from "@/components/homepage/features-section";
|
|
5
|
+
import TestimonialsSection from "@/components/homepage/testimonials-section";
|
|
6
|
+
import NewsSection from "@/components/homepage/news-section";
|
|
7
|
+
import Integrations from "@/components/homepage/integrations";
|
|
8
|
+
import PricingSection from "@/components/homepage/pricing-section";
|
|
9
|
+
import FooterSection from "@/components/homepage/footer";
|
|
10
|
+
|
|
11
|
+
export default function Home() {
|
|
12
|
+
return (
|
|
13
|
+
<>
|
|
14
|
+
<Navigation />
|
|
15
|
+
<HeroSection />
|
|
16
|
+
<CliWorkflowSection />
|
|
17
|
+
<FeaturesSection />
|
|
18
|
+
<TestimonialsSection />
|
|
19
|
+
<Integrations />
|
|
20
|
+
<NewsSection />
|
|
21
|
+
<PricingSection />
|
|
22
|
+
<FooterSection />
|
|
23
|
+
</>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
|
|
5
|
+
export default function CliWorkflowSection() {
|
|
6
|
+
const [mounted, setMounted] = useState(false);
|
|
7
|
+
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
setMounted(true);
|
|
10
|
+
}, []);
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<section className="relative min-h-[60vh] bg-black overflow-visible py-16">
|
|
14
|
+
{/* Background gradient continuation */}
|
|
15
|
+
<div className="absolute inset-0 bg-gradient-to-b from-black via-[#ff5722]/5 to-black" />
|
|
16
|
+
|
|
17
|
+
<div className="relative z-10 mx-auto max-w-6xl px-6 lg:px-8">
|
|
18
|
+
{/* Section Header */}
|
|
19
|
+
<div className="text-center mb-12">
|
|
20
|
+
<h2 className="text-3xl md:text-4xl font-bold mb-4 bg-gradient-to-r from-white to-gray-400 bg-clip-text text-transparent">
|
|
21
|
+
Works for New & Existing Projects
|
|
22
|
+
</h2>
|
|
23
|
+
<p className="text-gray-400 text-lg max-w-2xl mx-auto">
|
|
24
|
+
Start from scratch or add features to your existing Next.js app. Both workflows are seamless.
|
|
25
|
+
</p>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div className="grid md:grid-cols-2 gap-6">
|
|
29
|
+
{/* Terminal 1: New Project */}
|
|
30
|
+
<div
|
|
31
|
+
className={`transition-all duration-700 ${
|
|
32
|
+
mounted ? "opacity-100 scale-100" : "opacity-0 scale-95"
|
|
33
|
+
}`}
|
|
34
|
+
>
|
|
35
|
+
<div className="relative group">
|
|
36
|
+
<div className="absolute -inset-1 bg-gradient-to-r from-[#ff5722] to-[#d84315] rounded-lg blur opacity-30 group-hover:opacity-60 transition duration-1000" />
|
|
37
|
+
<div className="relative w-full bg-black/90 backdrop-blur-xl rounded-lg border border-[#ff5722]/20 overflow-hidden">
|
|
38
|
+
<div className="flex items-center gap-2 px-6 py-4 border-b border-[#ff5722]/10">
|
|
39
|
+
<div className="flex gap-1.5">
|
|
40
|
+
<div className="w-3 h-3 rounded-full bg-red-500/80" />
|
|
41
|
+
<div className="w-3 h-3 rounded-full bg-yellow-500/80" />
|
|
42
|
+
<div className="w-3 h-3 rounded-full bg-green-500/80" />
|
|
43
|
+
</div>
|
|
44
|
+
<span className="text-xs text-gray-400 ml-2">New Project</span>
|
|
45
|
+
</div>
|
|
46
|
+
<div className="p-6 font-mono text-sm space-y-3">
|
|
47
|
+
{/* Step 1: Run CLI */}
|
|
48
|
+
<div>
|
|
49
|
+
<div className="flex items-center">
|
|
50
|
+
<span className="text-green-400">$</span>
|
|
51
|
+
<span className="text-[#ff7043] ml-2">npx</span>
|
|
52
|
+
<span className="text-[#ff5722] ml-2">shipd</span>
|
|
53
|
+
<span className="text-white ml-2">init</span>
|
|
54
|
+
<span className="text-gray-400 ml-2">my-saas-app</span>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
{/* Step 2: Cargo Ship + Choose name */}
|
|
59
|
+
<div className="pt-4 space-y-2">
|
|
60
|
+
<pre className="text-[#ff7043] text-[9px] leading-tight overflow-x-auto">
|
|
61
|
+
{` # # ( )
|
|
62
|
+
___#_#___|__
|
|
63
|
+
_ |____________| _
|
|
64
|
+
_=====| | | | | |==== _
|
|
65
|
+
=====| |.---------------------------. | |====
|
|
66
|
+
<---------------------------' '----------------/
|
|
67
|
+
\\ .d8888. db db d888888b d8888b. d8888b. /
|
|
68
|
+
\\ 88' YP 88 88 \\\`88' 88 \\\`8D 88 \\\`8D /
|
|
69
|
+
\\ \\\`8bo. 88ooo88 88 88oodD' 88 88 /
|
|
70
|
+
\\ \\\`Y8b. 88~~~88 88 88~~~ 88 88 /
|
|
71
|
+
\\ db 8D 88 88 .88. 88 88 .8D /
|
|
72
|
+
\\\`8888Y' YP YP Y888888P 88 Y8888D' /
|
|
73
|
+
\\_____________________________________________________________________ /
|
|
74
|
+
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
|
|
75
|
+
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
|
|
76
|
+
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww`}
|
|
77
|
+
</pre>
|
|
78
|
+
<div className="text-gray-400 pt-2">
|
|
79
|
+
? What is your project name?{" "}
|
|
80
|
+
<span className="text-white">my-saas-app</span>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
{/* Step 3: Choose functionality */}
|
|
85
|
+
<div className="pt-4 space-y-2">
|
|
86
|
+
<div className="text-gray-400">
|
|
87
|
+
? Select features for your app:
|
|
88
|
+
</div>
|
|
89
|
+
<div className="pl-4 space-y-1">
|
|
90
|
+
<div className="text-gray-400">
|
|
91
|
+
<span className="text-green-400">◉</span> Authentication
|
|
92
|
+
</div>
|
|
93
|
+
<div className="text-gray-400">
|
|
94
|
+
<span className="text-green-400">◉</span> Billing &
|
|
95
|
+
Subscriptions
|
|
96
|
+
</div>
|
|
97
|
+
<div className="text-gray-400">
|
|
98
|
+
<span className="text-green-400">◉</span> Dashboard
|
|
99
|
+
</div>
|
|
100
|
+
<div className="text-gray-400">
|
|
101
|
+
<span className="text-green-400">◉</span> Email
|
|
102
|
+
Integration
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
{/* Step 4: Build */}
|
|
108
|
+
<div className="pt-4 space-y-2">
|
|
109
|
+
<div className="text-gray-400">
|
|
110
|
+
<span className="text-green-400">✓</span> Creating project
|
|
111
|
+
structure...
|
|
112
|
+
</div>
|
|
113
|
+
<div className="text-gray-400">
|
|
114
|
+
<span className="text-green-400">✓</span> Installing
|
|
115
|
+
dependencies...
|
|
116
|
+
</div>
|
|
117
|
+
<div className="text-gray-400">
|
|
118
|
+
<span className="text-green-400">✓</span> Configuring
|
|
119
|
+
features...
|
|
120
|
+
</div>
|
|
121
|
+
<div className="text-gray-400">
|
|
122
|
+
<span className="text-green-400">✓</span> Building
|
|
123
|
+
application...
|
|
124
|
+
</div>
|
|
125
|
+
<div className="text-green-400 pt-2">
|
|
126
|
+
🎉 Done! Your SaaS app is ready.
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
{/* Final command */}
|
|
131
|
+
<div className="pt-4 border-t border-[#ff5722]/10">
|
|
132
|
+
<div className="flex items-center">
|
|
133
|
+
<span className="text-green-400">$</span>
|
|
134
|
+
<span className="text-white ml-2">cd my-saas-app</span>
|
|
135
|
+
</div>
|
|
136
|
+
<div className="flex items-center mt-2">
|
|
137
|
+
<span className="text-green-400">$</span>
|
|
138
|
+
<span className="text-white ml-2">npm run dev</span>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
{/* Terminal 2: Existing Project */}
|
|
147
|
+
<div
|
|
148
|
+
className={`transition-all duration-700 delay-200 ${
|
|
149
|
+
mounted ? "opacity-100 scale-100" : "opacity-0 scale-95"
|
|
150
|
+
}`}
|
|
151
|
+
>
|
|
152
|
+
<div className="relative group">
|
|
153
|
+
<div className="absolute -inset-1 bg-gradient-to-r from-[#ff5722] to-[#d84315] rounded-lg blur opacity-30 group-hover:opacity-60 transition duration-1000" />
|
|
154
|
+
<div className="relative w-full bg-black/90 backdrop-blur-xl rounded-lg border border-[#ff5722]/20 overflow-hidden">
|
|
155
|
+
<div className="flex items-center gap-2 px-6 py-4 border-b border-[#ff5722]/10">
|
|
156
|
+
<div className="flex gap-1.5">
|
|
157
|
+
<div className="w-3 h-3 rounded-full bg-red-500/80" />
|
|
158
|
+
<div className="w-3 h-3 rounded-full bg-yellow-500/80" />
|
|
159
|
+
<div className="w-3 h-3 rounded-full bg-green-500/80" />
|
|
160
|
+
</div>
|
|
161
|
+
<span className="text-xs text-gray-400 ml-2">Existing Project</span>
|
|
162
|
+
</div>
|
|
163
|
+
<div className="p-6 font-mono text-sm space-y-3">
|
|
164
|
+
{/* Step 1: Navigate to project */}
|
|
165
|
+
<div>
|
|
166
|
+
<div className="flex items-center">
|
|
167
|
+
<span className="text-green-400">$</span>
|
|
168
|
+
<span className="text-white ml-2">cd</span>
|
|
169
|
+
<span className="text-gray-400 ml-2">my-existing-app</span>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
|
|
173
|
+
{/* Step 2: Run append */}
|
|
174
|
+
<div className="pt-4 space-y-2">
|
|
175
|
+
<div className="flex items-center">
|
|
176
|
+
<span className="text-green-400">$</span>
|
|
177
|
+
<span className="text-[#ff7043] ml-2">npx</span>
|
|
178
|
+
<span className="text-[#ff5722] ml-2">shipd</span>
|
|
179
|
+
<span className="text-white ml-2">append</span>
|
|
180
|
+
</div>
|
|
181
|
+
<div className="text-gray-400 pt-2">
|
|
182
|
+
? Select features to add:
|
|
183
|
+
</div>
|
|
184
|
+
<div className="pl-4 space-y-1">
|
|
185
|
+
<div className="text-gray-400">
|
|
186
|
+
<span className="text-green-400">◉</span> Authentication
|
|
187
|
+
</div>
|
|
188
|
+
<div className="text-gray-400">
|
|
189
|
+
<span className="text-green-400">◉</span> Payments
|
|
190
|
+
</div>
|
|
191
|
+
<div className="text-gray-400">
|
|
192
|
+
<span className="text-green-400">◉</span> Email
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
|
|
197
|
+
{/* Step 3: Features added */}
|
|
198
|
+
<div className="pt-4 space-y-2">
|
|
199
|
+
<div className="text-gray-400">
|
|
200
|
+
<span className="text-green-400">✓</span> Adding features...
|
|
201
|
+
</div>
|
|
202
|
+
<div className="text-gray-400">
|
|
203
|
+
<span className="text-green-400">✓</span> Installing dependencies...
|
|
204
|
+
</div>
|
|
205
|
+
<div className="text-gray-400">
|
|
206
|
+
<span className="text-green-400">✓</span> Configuring modules...
|
|
207
|
+
</div>
|
|
208
|
+
<div className="text-green-400 pt-2">
|
|
209
|
+
✨ Features added successfully!
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
{/* Final command */}
|
|
214
|
+
<div className="pt-4 border-t border-[#ff5722]/10">
|
|
215
|
+
<div className="flex items-center">
|
|
216
|
+
<span className="text-green-400">$</span>
|
|
217
|
+
<span className="text-white ml-2">npm run dev</span>
|
|
218
|
+
</div>
|
|
219
|
+
<div className="text-gray-500 text-xs mt-2">
|
|
220
|
+
→ Your existing app now has new features!
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
</section>
|
|
230
|
+
);
|
|
231
|
+
}
|