indiekit 0.0.2

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 ADDED
@@ -0,0 +1,54 @@
1
+ # Indie Kit CLI
2
+
3
+ The official CLI for [Indie Kit](https://indiekit.pro) - The ultimate Next.js SaaS Starter Kit.
4
+
5
+ Scaffold a new production-ready SaaS application in seconds.
6
+
7
+ ## Usage
8
+
9
+ You don't need to install anything. Just run:
10
+
11
+ ```bash
12
+ npx indiekit@latest
13
+ # or
14
+ pnpm create indiekit
15
+ # or
16
+ yarn create indiekit
17
+ ```
18
+
19
+ ## Features
20
+
21
+ - 🚀 **Instant Setup**: Scaffolds a Next.js 14+ project optimized for SaaS.
22
+ - 📦 **Smart Caching**: Uses `tiged` for fast, history-free cloning.
23
+ - 🛠 **Interactive Wizard**: Customized setup for your needs.
24
+ - 💎 **Version Selection**: Choose between the free Open Source version or the Pro Production Suite.
25
+
26
+ ## Versions
27
+
28
+ ### Lite (Open Source)
29
+ Free forever. Includes:
30
+ - Next.js 14 (App Router)
31
+ - Tailwind CSS & Shadcn UI
32
+ - Basic Authentication Setup
33
+ - Marketing Landing Page
34
+
35
+ ### Pro (Production SaaS)
36
+ Everything in Lite, plus:
37
+ - Stripe Payments & Subscriptions
38
+ - Admin Dashboard
39
+ - AI Integration
40
+ - Blog & Documentation Support
41
+ - Email Marketing Integration
42
+
43
+ ### Pro (B2B Multi-tenant)
44
+ Advanced features for B2B applications:
45
+ - Organization/Team Management
46
+ - Member Invites & Roles
47
+ - RBAC (Role-Based Access Control)
48
+ - Enterprise Features
49
+
50
+ [Get Indie Kit Pro](https://indiekit.pro)
51
+
52
+ ## License
53
+
54
+ ISC © [Indie Kit](https://indiekit.pro)
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import{Command as N}from"commander";import b from"path";import l from"fs-extra";import C from"tiged";import p from"ora";import{input as A,select as P,confirm as _}from"@inquirer/prompts";import{execa as m}from"execa";import $ from"open";import v from"picocolors";import y from"picocolors";var w=()=>{console.log(),console.log(y.cyan(`
3
+ \u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557
4
+ \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2551\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D
5
+ \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551
6
+ \u2588\u2588\u2551\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551
7
+ \u2588\u2588\u2551\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551
8
+ \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D
9
+ `)),console.log(y.dim(" Next.js SaaS Starter Kit CLI")),console.log()};import a from"picocolors";var i={success:e=>console.log(a.green(`\u2714 ${e}`)),error:e=>console.log(a.red(`\u2716 ${e}`)),info:e=>console.log(a.blue(`\u2139 ${e}`)),warn:e=>console.log(a.yellow(`\u26A0 ${e}`))};var x=async e=>{w();let r=e[0];r||(r=await A({message:"Where should we create your new project?",default:"my-saas"}));let o=b.resolve(process.cwd(),r);l.existsSync(o)&&l.readdirSync(o).length>0&&(i.error(`Directory ${r} is not empty.`),process.exit(1));let g=await P({message:"Which version would you like to use?",choices:[{name:"Lite (Open Source) - Free, basic features",value:"lite"},{name:"Pro (Production SaaS) - Payments, Auth, Admin, AI",value:"pro"},{name:"Pro (B2B Multi-tenant) - Organizations, Roles, Invites",value:"b2b"}]}),c="Indie-Kit/nextjs-saas-starter",s=!1,n="";if(g==="pro"?(c="indie-kit/indie-kit",n="https://github.com/indie-kit/indie-kit.git",s=!0):g==="b2b"&&(c="indie-kit/b2b-boilerplate",n="https://github.com/indie-kit/b2b-boilerplate.git",s=!0),s){let t=p("Checking repository access...").start();try{await m("git",["ls-remote",n],{env:{GIT_TERMINAL_PROMPT:"0"}}),t.succeed("Access verified.")}catch{t.fail("Access denied."),i.error("You do not have access to this repository."),i.info("Opening access page..."),await $("https://indiekit.pro/app/repo-access?ref=cli&utm_source=cli&utm_medium=terminal"),process.exit(0)}}let u=p("Downloading template...").start();try{s?(await m("git",["clone","--depth","1",n,o]),await l.remove(b.join(o,".git"))):await C(c,{disableCache:!0,force:!0}).clone(o),u.succeed("Template downloaded successfully.")}catch(t){u.fail("Failed to download template."),i.error(t.message),process.exit(1)}let f=await _({message:"Install dependencies now?",default:!0});if(f){let t=p("Installing dependencies...").start(),h=process.env.npm_config_user_agent||"",I=h.startsWith("yarn")?"yarn":h.startsWith("pnpm")?"pnpm":"npm";try{await m(I,["install"],{cwd:o}),t.succeed("Dependencies installed.")}catch(j){t.fail("Failed to install dependencies."),i.error(j.message)}}i.success(`Project created at ${v.green(o)}`),console.log(),console.log("Next steps:"),console.log(` cd ${r}`),f||console.log(" pnpm install"),console.log(" pnpm dev"),console.log(),console.log(v.yellow('AI Tip: "Open in Cursor/Claude and run /bootstrap"'))};var k={name:"indiekit",version:"0.0.2",description:"The AI-Native Next.js SaaS CLI",private:!1,homepage:"https://indiekit.pro",bugs:{url:"https://indiekit.pro/contact"},keywords:["nextjs","saas","boilerplate","starter","ai","cli"],type:"module",bin:{indiekit:"./dist/index.js"},scripts:{dev:"tsup --watch",build:"tsup",start:"node dist/index.js",release:"bumpp"},files:["dist"],publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/indie-kit/indie-cli.git"},dependencies:{"@inquirer/prompts":"^8.2.0",commander:"^14.0.3",execa:"^9.6.1","fs-extra":"^11.3.3",open:"^11.0.0",ora:"^9.3.0",picocolors:"^1.1.1",tiged:"^2.12.7"},devDependencies:{"@types/fs-extra":"^11.0.4","@types/node":"^25.2.2",bumpp:"^10.4.1",tsup:"^8.5.1",typescript:"^5.9.3"}};var S=()=>k.version;var d=new N;d.name("indiekit").description("CLI to scaffold Next.js SaaS applications").version(S());d.argument("[directory]","Directory to create the project in").action(e=>{x(e?[e]:[])});d.parse(process.argv);
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "indiekit",
3
+ "version": "0.0.2",
4
+ "description": "The AI-Native Next.js SaaS CLI",
5
+ "private": false,
6
+ "homepage": "https://indiekit.pro",
7
+ "bugs": {
8
+ "url": "https://indiekit.pro/contact"
9
+ },
10
+ "keywords": [
11
+ "nextjs",
12
+ "saas",
13
+ "boilerplate",
14
+ "starter",
15
+ "ai",
16
+ "cli"
17
+ ],
18
+ "type": "module",
19
+ "bin": {
20
+ "indiekit": "./dist/index.js"
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/indie-kit/indie-cli.git"
31
+ },
32
+ "dependencies": {
33
+ "@inquirer/prompts": "^8.2.0",
34
+ "commander": "^14.0.3",
35
+ "execa": "^9.6.1",
36
+ "fs-extra": "^11.3.3",
37
+ "open": "^11.0.0",
38
+ "ora": "^9.3.0",
39
+ "picocolors": "^1.1.1",
40
+ "tiged": "^2.12.7"
41
+ },
42
+ "devDependencies": {
43
+ "@types/fs-extra": "^11.0.4",
44
+ "@types/node": "^25.2.2",
45
+ "bumpp": "^10.4.1",
46
+ "tsup": "^8.5.1",
47
+ "typescript": "^5.9.3"
48
+ },
49
+ "scripts": {
50
+ "dev": "tsup --watch",
51
+ "build": "tsup",
52
+ "start": "node dist/index.js",
53
+ "release": "bumpp"
54
+ }
55
+ }