create-solostack 1.0.0 → 1.0.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/README.md +52 -0
- package/package.json +1 -1
- package/src/index.js +3 -3
package/README.md
CHANGED
|
@@ -22,6 +22,58 @@ Generate a production-ready Next.js 15 SaaS application with authentication, pay
|
|
|
22
22
|
|
|
23
23
|
🔒 **Type-Safe** - Full TypeScript support
|
|
24
24
|
|
|
25
|
+
## Workflows & Architecture
|
|
26
|
+
|
|
27
|
+
### System Architecture
|
|
28
|
+
```mermaid
|
|
29
|
+
graph TD
|
|
30
|
+
User[User / Browser] -->|HTTPS| CDN[CDN / Edge]
|
|
31
|
+
CDN -->|Request| App[Next.js 15 App]
|
|
32
|
+
|
|
33
|
+
subgraph "Application Layer"
|
|
34
|
+
App -->|Auth| Auth[NextAuth.js]
|
|
35
|
+
App -->|API| Routes[API Routes]
|
|
36
|
+
App -->|Pages| UI[shadcn/ui Components]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
subgraph "Data Layer"
|
|
40
|
+
Routes -->|Query| Prisma[Prisma ORM]
|
|
41
|
+
Prisma -->|SQL| DB[(PostgreSQL)]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
subgraph "External Services"
|
|
45
|
+
Auth -->|OAuth| Providers[Google / GitHub]
|
|
46
|
+
Routes -->|Payments| Stripe[Stripe API]
|
|
47
|
+
Routes -->|Emails| Resend[Resend API]
|
|
48
|
+
Stripe -->|Webhooks| Routes
|
|
49
|
+
end
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Authentication & Payment Flow
|
|
53
|
+
```mermaid
|
|
54
|
+
sequenceDiagram
|
|
55
|
+
participant U as User
|
|
56
|
+
participant A as App
|
|
57
|
+
participant S as Stripe
|
|
58
|
+
participant D as Database
|
|
59
|
+
participant E as Resend
|
|
60
|
+
|
|
61
|
+
U->>A: Sign Up
|
|
62
|
+
A->>S: Create Customer
|
|
63
|
+
S-->>A: Customer ID
|
|
64
|
+
A->>D: Create User (with Stripe ID)
|
|
65
|
+
A->>E: Send Verification Email
|
|
66
|
+
E-->>U: Email Delivered
|
|
67
|
+
|
|
68
|
+
U->>A: Upgrade to Pro
|
|
69
|
+
A->>S: Create Checkout Session
|
|
70
|
+
S-->>U: Redirect to Checkout
|
|
71
|
+
U->>S: Complete Payment
|
|
72
|
+
S->>A: Webhook (checkout.completed)
|
|
73
|
+
A->>D: Update Subscription Status
|
|
74
|
+
A-->>U: Access Granted
|
|
75
|
+
```
|
|
76
|
+
|
|
25
77
|
## Installation
|
|
26
78
|
|
|
27
79
|
```bash
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import ora from 'ora';
|
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { validateProjectName } from './utils/validate.js';
|
|
7
7
|
import { printSuccess, printError } from './utils/logger.js';
|
|
8
|
-
import { ensureDir } from './utils/files.js';
|
|
8
|
+
import { ensureDir, writeFile } from './utils/files.js';
|
|
9
9
|
import { installPackages } from './utils/packages.js';
|
|
10
10
|
import { initGit } from './utils/git.js';
|
|
11
11
|
import { generateBase } from './generators/base.js';
|
|
@@ -328,8 +328,8 @@ async function runSetupWizard(projectPath) {
|
|
|
328
328
|
console.log(chalk.gray('💡 Google: console.cloud.google.com/apis/credentials'));
|
|
329
329
|
console.log(chalk.gray('💡 GitHub: github.com/settings/developers\n'));
|
|
330
330
|
|
|
331
|
+
|
|
331
332
|
// Write to .env file
|
|
332
|
-
const fs = await import('fs-extra');
|
|
333
333
|
const envPath = path.join(projectPath, '.env');
|
|
334
334
|
|
|
335
335
|
const envContent = `# Database
|
|
@@ -361,7 +361,7 @@ GITHUB_CLIENT_SECRET="${githubClientSecret}"` : `
|
|
|
361
361
|
# GITHUB_CLIENT_SECRET=""`}
|
|
362
362
|
`;
|
|
363
363
|
|
|
364
|
-
await
|
|
364
|
+
await writeFile(envPath, envContent);
|
|
365
365
|
|
|
366
366
|
console.log(chalk.green('✅ Environment configured!'));
|
|
367
367
|
console.log(chalk.green('✅ Wrote to .env file\n'));
|