@victusvinceere/saas-cli
v0.1.7
Published
CLI tool for scaffolding SaaS Kit projects
Maintainers
Readme
@victusvinceere/saas-cli
CLI tool for scaffolding new SaaS projects using the VictusVinceere SaaS kit packages.
Installation
# Install globally
npm install -g @victusvinceere/saas-cli
# Or use npx
npx @victusvinceere/saas-cli initCommands
init - Create a new project
Creates a new SaaS project with all the boilerplate configured.
saas-cli init [project-name]Interactive prompts:
- Project name - Directory name (lowercase, hyphens only)
- Product name - Display name (e.g., "MySaaS")
- Description - Short product description
- Primary color - Brand color (green, blue, purple, orange, red, indigo)
- Modules - Select which packages to include:
- Landing Pages (
@victusvinceere/saas-landing) - Payments (
@victusvinceere/saas-payments) - Admin Panel (
@victusvinceere/saas-admin) - Blog (
@victusvinceere/saas-blog)
- Landing Pages (
- Auth providers - Google, GitHub, Magic Links
- Database - PostgreSQL, MySQL, or SQLite
Example:
$ saas-cli init my-awesome-app
🚀 Let's create your new SaaS project!
? What is your project name? my-awesome-app
? What is your product name? AwesomeApp
? Short description of your product: The best app for awesome things
? Choose your primary color: blue
? Which modules would you like to include? Landing Pages, Payments, Admin Panel
? Which auth providers do you want? Google, Email (Magic Links)
? Which database will you use? PostgreSQL
✓ Project created successfully!Generated Project Structure
my-awesome-app/
├── src/
│ ├── app/
│ │ ├── (auth)/
│ │ │ ├── login/page.tsx
│ │ │ ├── signup/page.tsx
│ │ │ └── signout/page.tsx
│ │ ├── api/
│ │ │ └── waitlist/route.ts
│ │ ├── dashboard/
│ │ │ ├── layout.tsx
│ │ │ └── page.tsx
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ │ └── ui/
│ ├── config/
│ │ └── site.ts # All content configuration
│ └── lib/
│ └── utils.ts
├── prisma/
│ └── schema.prisma
├── public/
├── .env.example
├── .gitignore
├── next.config.js
├── package.json
├── postcss.config.js
├── tailwind.config.js
└── tsconfig.jsonConfiguration
All site content is configured in src/config/site.ts:
export const siteConfig = {
// Branding
name: "AwesomeApp",
description: "The best app for awesome things",
// Theme
theme: {
primary: "blue",
},
// Navigation
navigation: [
{ label: "Features", href: "#features" },
{ label: "Pricing", href: "#pricing" },
{ label: "FAQ", href: "#faq" },
],
// Hero Section
hero: {
badge: "Now in Beta",
title: "Your Amazing Product",
highlight: "Headline",
description: "...",
cta: {
primary: { label: "Get Started", href: "#waitlist" },
secondary: { label: "Learn More", href: "#features" },
},
},
// Features, Pricing, FAQ, Testimonials, Waitlist, Footer...
};After Project Creation
# Navigate to project
cd my-awesome-app
# Install dependencies
pnpm install
# Set up environment
cp .env.example .env.local
# Edit .env.local with your credentials
# Push database schema
pnpm db:push
# Start development server
pnpm devEnvironment Variables
Configure these in .env.local:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
# NextAuth
AUTH_SECRET="your-secret-here"
NEXTAUTH_URL="http://localhost:3000"
# Google OAuth
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
# Email (Resend) - for magic links
AUTH_RESEND_KEY=""
EMAIL_FROM="[email protected]"
# Lemon Squeezy - for payments
LEMONSQUEEZY_API_KEY=""
LEMONSQUEEZY_STORE_ID=""
LEMONSQUEEZY_WEBHOOK_SECRET=""Packages Used
| Package | Description |
|---------|-------------|
| @victusvinceere/saas-core | Core utilities, auth, types |
| @victusvinceere/saas-landing | Landing page components (Hero, Features, Pricing, FAQ, Testimonials, Waitlist) |
| @victusvinceere/saas-admin | Admin dashboard components |
| @victusvinceere/saas-payments | Lemon Squeezy payment integration |
| @victusvinceere/saas-blog | MDX blog system |
Development
# Clone the monorepo
git clone https://github.com/victusvinceere/saas-kit.git
# Install dependencies
pnpm install
# Build CLI
cd packages/cli
pnpm build
# Link globally for testing
pnpm link --global
# Now you can use
saas-cli init test-projectLicense
MIT
