create-whop-kit 0.9.8 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-whop-kit
2
2
 
3
- Scaffold and manage [Whop](https://whop.com)-powered apps with [whop-kit](https://www.npmjs.com/package/whop-kit).
3
+ Scaffold, deploy, and manage [Whop](https://whop.com)-powered apps with [whop-kit](https://www.npmjs.com/package/whop-kit).
4
4
 
5
5
  ## Create a new project
6
6
 
@@ -8,26 +8,60 @@ Scaffold and manage [Whop](https://whop.com)-powered apps with [whop-kit](https:
8
8
  npx create-whop-kit my-app
9
9
  ```
10
10
 
11
- Interactive prompts guide you through:
11
+ The CLI walks you through:
12
12
 
13
- 1. **What are you building?** — SaaS (full dashboard + billing) or Blank (just auth + webhooks)
13
+ 1. **What are you building?** — SaaS or Blank (just auth + webhooks)
14
14
  2. **Which framework?** — Next.js or Astro
15
- 3. **Which database?** — Neon (auto-provisioned), Prisma Postgres (instant), Supabase, manual URL, or skip
16
- 4. **Whop credentials** App ID, API key, webhook secret (optional, can use setup wizard later)
15
+ 3. **Which database?** — Neon, Supabase, Prisma Postgres (all auto-provisioned)
16
+ 4. **Deploy?**Push to GitHub + deploy to Vercel, or develop locally first
17
17
 
18
- The CLI clones a template, provisions your database, writes `.env.local`, installs dependencies, and initializes git.
18
+ ## What happens when you deploy
19
19
 
20
- ### Non-interactive mode
20
+ ```
21
+ ── GitHub ──────────────────────────────
22
+ ◇ Private repo created
23
+ ◇ Code pushed
24
+
25
+ ── Vercel ──────────────────────────────
26
+ ◇ Connected to GitHub (auto-deploy on push)
27
+ ◇ Environment variables configured
28
+ ◇ Deployed to https://my-app.vercel.app
29
+
30
+ ── Whop ────────────────────────────────
31
+ ◇ OAuth app created automatically
32
+ ◇ Webhook endpoint configured
33
+ ◇ All credentials pushed to Vercel
34
+ ◇ Redeployed with full configuration
35
+ ```
36
+
37
+ One command, one API key paste — fully deployed app. Every future `git push` auto-deploys.
38
+
39
+ ## Manage your project
21
40
 
22
41
  ```bash
23
- # Skip all prompts
24
- npx create-whop-kit my-app --framework nextjs --type saas --db neon --yes
42
+ npx whop-kit status # project health check
43
+ npx whop-kit add email # add Resend or SendGrid
44
+ npx whop-kit add analytics # add PostHog, GA, or Plausible
45
+ npx whop-kit add webhook-event # scaffold a new event handler
46
+ npx whop-kit deploy # deploy (or redeploy) to Vercel + Whop
47
+ npx whop-kit env # view env vars (masked)
48
+ npx whop-kit env --reveal # show actual values
49
+ npx whop-kit catalog # list all available services
50
+ npx whop-kit open whop # open Whop dashboard
51
+ npx whop-kit upgrade # update whop-kit to latest
52
+ ```
53
+
54
+ ## Non-interactive mode
25
55
 
26
- # With credentials
27
- npx create-whop-kit my-app --framework nextjs --db later --app-id "app_xxx" --api-key "apik_xxx"
56
+ ```bash
57
+ # Full auto skip all prompts
58
+ npx create-whop-kit my-app --framework nextjs --db neon --yes
28
59
 
29
- # Preview without creating files
60
+ # Preview what would be created
30
61
  npx create-whop-kit my-app --framework nextjs --db later --dry-run
62
+
63
+ # Skip deployment
64
+ npx create-whop-kit my-app --framework nextjs --db neon --skip-deploy --yes
31
65
  ```
32
66
 
33
67
  ### All flags
@@ -37,68 +71,38 @@ npx create-whop-kit my-app --framework nextjs --db later --dry-run
37
71
  | `--framework` | `nextjs` or `astro` |
38
72
  | `--type` | `saas` or `blank` (default: `saas`) |
39
73
  | `--db` | `neon`, `prisma-postgres`, `supabase`, `manual`, `later` |
40
- | `--db-url` | PostgreSQL connection URL (skips DB provisioning) |
41
- | `--app-id` | Whop App ID |
42
- | `--api-key` | Whop API Key |
43
- | `--webhook-secret` | Whop webhook secret |
74
+ | `--db-url` | PostgreSQL connection URL (skips provisioning) |
75
+ | `--skip-deploy` | Skip GitHub/Vercel deployment |
76
+ | `--whop-company-key` | Whop Company API key (skips interactive prompt) |
44
77
  | `-y, --yes` | Skip optional prompts |
45
78
  | `--dry-run` | Show what would be created |
46
- | `--verbose` | Detailed output |
47
-
48
- ## Manage your project
49
-
50
- After creating a project, use `whop-kit` to add features and check status:
51
-
52
- ```bash
53
- # Check project health
54
- npx whop-kit status
55
-
56
- # Add email (Resend or SendGrid)
57
- npx whop-kit add email
58
-
59
- # Add analytics (PostHog, Google Analytics, or Plausible)
60
- npx whop-kit add analytics
61
-
62
- # Add a webhook event handler
63
- npx whop-kit add webhook-event
64
-
65
- # Open provider dashboards
66
- npx whop-kit open whop
67
- npx whop-kit open neon
68
- npx whop-kit open vercel
69
-
70
- # Update whop-kit to latest
71
- npx whop-kit upgrade
72
- ```
73
79
 
74
80
  ## Database provisioning
75
81
 
76
- The CLI can provision databases automatically — no need to leave the terminal:
82
+ All three database providers are auto-provisioned — no need to leave the terminal:
77
83
 
78
84
  | Provider | How it works |
79
85
  |----------|-------------|
80
- | **Neon** | Installs `neonctl` → authenticates (browser) → creates project → gets connection string |
86
+ | **Neon** | Installs `neonctl` → authenticates → creates project → gets connection string |
87
+ | **Supabase** | Installs CLI → authenticates → creates project → guides connection string |
81
88
  | **Prisma Postgres** | Runs `npx create-db` → instant database, no account needed |
82
- | **Supabase** | Installs CLI → authenticates → creates project → guides you to get connection string |
83
89
 
84
90
  ## Templates
85
91
 
86
- | App Type | Framework | Template | Status |
87
- |----------|-----------|----------|--------|
88
- | SaaS | Next.js | Full dashboard, pricing, billing, docs | Available |
89
- | SaaS | Astro | Auth, payments, webhooks | Available |
90
- | Blank | Next.js | Just auth + webhooks — build anything | Available |
91
- | Course | — | — | Coming soon |
92
- | Community | — | — | Coming soon |
92
+ | App Type | Framework | Description |
93
+ |----------|-----------|-------------|
94
+ | SaaS | Next.js | Full dashboard, pricing, billing, docs |
95
+ | SaaS | Astro | Auth, payments, webhooks |
96
+ | Blank | Next.js | Just auth + webhooks — build anything |
93
97
 
94
98
  ## How it works
95
99
 
96
- 1. **Template** — clones a starter repo from GitHub
97
- 2. **Database** — optionally provisions via provider CLI
98
- 3. **Environment** — writes `.env.local` from the template's `.env.example`
99
- 4. **Manifest** — creates `.whop/config.json` tracking your project state
100
- 5. **Dependencies** — installs with your preferred package manager
101
- 6. **Git** — initializes a fresh repo
100
+ 1. **Scaffold** — clone a starter template
101
+ 2. **Database** — auto-provision via provider CLI
102
+ 3. **GitHub** — create private repo, push code
103
+ 4. **Vercel** — connect GitHub, set env vars, deploy
104
+ 5. **Whop** — create OAuth app + webhook via API
105
+ 6. **Agent skills** — install provider skills for AI coding assistants
102
106
 
103
107
  ## License
104
108
 
@@ -77,9 +77,8 @@ async function vercelDeploy(projectDir) {
77
77
  s.stop("Vercel deployment failed");
78
78
  const errorOutput = result.stderr || result.stdout;
79
79
  if (errorOutput) {
80
- p.log.error("Build output:");
81
80
  const trimmed = errorOutput.length > 600 ? "..." + errorOutput.slice(-600) : errorOutput;
82
- console.log(pc.dim(trimmed));
81
+ p.log.error(pc.dim(trimmed));
83
82
  }
84
83
  return null;
85
84
  }
@@ -189,19 +188,21 @@ async function createGitHubRepo(projectDir, projectName) {
189
188
  }
190
189
  s = p2.spinner();
191
190
  s.start("Pushing code to GitHub...");
191
+ const branchResult = exec("git branch --show-current", projectDir);
192
+ const branch = branchResult.success ? branchResult.stdout.trim() : "main";
192
193
  let pushOk = false;
193
- for (const delay of [0, 5e3, 1e4]) {
194
+ for (const delay of [0, 3e3, 7e3]) {
194
195
  if (delay > 0) {
195
- s.stop(`Waiting for GitHub to propagate (${delay / 1e3}s)...`);
196
+ s.stop(`Waiting for GitHub to propagate...`);
196
197
  await new Promise((r) => setTimeout(r, delay));
197
198
  s = p2.spinner();
198
199
  s.start("Pushing code to GitHub...");
199
200
  }
200
- pushOk = exec("git push -u origin main", projectDir, 3e4).success;
201
+ pushOk = exec(`git push -u origin ${branch}`, projectDir, 3e4).success;
201
202
  if (pushOk) break;
202
203
  }
203
204
  if (!pushOk) {
204
- s.stop("Could not push (push manually with: git push -u origin main)");
205
+ s.stop(`Could not push (try manually: git push -u origin ${branch})`);
205
206
  } else {
206
207
  s.stop("Code pushed to GitHub");
207
208
  }
@@ -346,6 +346,7 @@ function updatePackageName(projectDir, name) {
346
346
  }
347
347
  function initGit(projectDir) {
348
348
  exec("git init", projectDir);
349
+ exec("git branch -m main", projectDir);
349
350
  exec("git add -A", projectDir);
350
351
  exec('git commit -m "initial: scaffolded with create-whop-kit"', projectDir);
351
352
  }
@@ -389,7 +390,7 @@ function isCancelled(value) {
389
390
  var init_default = defineCommand({
390
391
  meta: {
391
392
  name: "create-whop-kit",
392
- version: "0.2.0",
393
+ version: "1.0.0",
393
394
  description: "Scaffold a new Whop-powered app with whop-kit"
394
395
  },
395
396
  args: {
@@ -683,7 +684,7 @@ var init_default = defineCommand({
683
684
  });
684
685
  if (!isCancelled(deployChoice) && deployChoice === "deploy") {
685
686
  deployAttempted = true;
686
- const { runDeployPipeline } = await import("./deploy-S2AJPM54.js");
687
+ const { runDeployPipeline } = await import("./deploy-4OQC445A.js");
687
688
  deployResult = await runDeployPipeline({
688
689
  projectDir,
689
690
  projectName,
package/dist/cli-kit.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-HOQ5QQ2M.js";
10
10
  import {
11
11
  runDeployPipeline
12
- } from "./chunk-YPPQ4WEI.js";
12
+ } from "./chunk-BQZUZXDZ.js";
13
13
  import {
14
14
  detectPackageManager,
15
15
  exec
@@ -602,7 +602,7 @@ var upgrade_default = defineCommand7({
602
602
  var main = defineCommand8({
603
603
  meta: {
604
604
  name: "whop-kit",
605
- version: "0.6.0",
605
+ version: "1.0.0",
606
606
  description: "Manage your Whop project"
607
607
  },
608
608
  subCommands: {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDeployPipeline
4
- } from "./chunk-YPPQ4WEI.js";
4
+ } from "./chunk-BQZUZXDZ.js";
5
5
  import "./chunk-42L7PRMT.js";
6
6
  export {
7
7
  runDeployPipeline
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-whop-kit",
3
- "version": "0.9.8",
3
+ "version": "1.0.1",
4
4
  "description": "Scaffold and manage Whop-powered apps with whop-kit",
5
5
  "type": "module",
6
6
  "license": "MIT",