Seed & Source CLI - Production-ready SaaS scaffolding for Rails, Python, React, Astro, and more
Project description
Seed & Source CLI (sscli)
The unified scaffold tool for the Seed & Source template library. Pick a base, bolt on features, ship faster.
🎯 What is sscli?
sscli is a code-generation CLI that pulls production-ready project templates and injects optional premium modules into them. Every template is a complete, opinionated starting point — not a toy boilerplate.
- ✅ Production-ready bases — Rails API, Python SaaS, React, Astro, mobile, and more
- ✅ Optional feature injection — Commerce, Auth, Admin, Tunnels, and others added at scaffold time
- ✅ Clean architecture — Hexagonal (Python), standard Rails conventions, functional React
- ✅ Docker-first — Every template ships with a multi-stage production
Dockerfile
📦 Install
# Recommended
pipx install sscli
# Or via pip
pip install sscli
# Verify
sscli --version
🚀 Quick Start
# Interactive mode — guided setup with template picker
sscli interactive
# Or go direct
sscli new --template rails-api --name my-api
New to Seed & Source? Start here: ../../docs/public/GETTING_STARTED.md
🗂️ Templates
Run
sscli exploreto browse all templates interactively in your terminal.
🛤️ Rails API · rails-api · FREE
A production-grade JSON API built on Rails 8 — opinionated, deployable on day one.
app/
├── controllers/api/v1/ # Versioned JSON endpoints
├── models/ # ActiveRecord (PostgreSQL)
├── services/ # Business logic layer
└── serializers/ # JSON serialization
What's in the base:
- Rails 8.0 + PostgreSQL + Devise (authentication)
- RSpec test suite + FactoryBot
- HMAC webhook validation scaffolding
- Docker +
.envsecrets management - RuboCop enforced
sscli new --template rails-api --name my-api
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Shopify / Stripe adapter pattern, webhook infrastructure, commerce models |
--with-merchant-dashboard |
PRO | React order & analytics UI — requires --with-commerce |
--with-tunnel |
PRO | ngrok local tunnel config for webhook testing |
--with-auth |
PRO | Extended authentication flows (JWT, API key management) |
--with-landing |
PRO | Injects a companion Astro landing page alongside the API |
--with-admin |
PRO | NiceGUI-based admin panel |
Commerce example:
sscli new \
--template rails-api \
--name shopify-backend \
--with-commerce \
--with-tunnel
Request Flow:
Shopify Webhook → HMAC Validator → ShopifyAdapter
→ Provisioning::IssueResource → CommercialAgreement + SecurityToken
🐍 Python SaaS · python-saas · ALPHA
A Hexagonal Architecture Python service — ports and adapters enforced from project root.
src/
├── core/
│ ├── entities/ # Pure domain models (no I/O)
│ └── use_cases/ # Business logic (depends only on entities)
└── infrastructure/
├── adapters/ # DB, HTTP, external services
└── ui/ # FastAPI / Django routes
What's in the base:
- Python 3.11+ with FastAPI or Django
- SQLAlchemy ORM + Pydantic v2 validation
ruff+mypystrict mode enforced- Multi-tier secrets management (Dotenv, Doppler, Env-only)
- pytest with coverage gate (target 95% on codemods)
sscli new --template python-saas --name my-service
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Commerce adapter wired into the hexagonal ports |
--with-admin |
PRO | NiceGUI admin panel as a standalone service |
--with-sqlite |
ALPHA | Local SQLite persistence via SQLAlchemy + Alembic (dev/test) |
--with-ingestor |
PRO | Data Ingestor adapter pattern for raw data normalization |
--with-tunnel |
PRO | ngrok tunnel config for local webhook testing |
--with-auth |
PRO | Authentication flows injected into the use case layer |
sscli new \
--template python-saas \
--name data-service \
--with-ingestor \
--with-sqlite
🌐 Static Landing · static-landing · ALPHA
An Astro-powered static site built for SaaS marketing pages — multi-theme, blueprint-driven.
src/
├── components/ # Astro/React island components
├── pages/ # File-based routing
└── content/ # Markdown + JSON content layer
blueprint.json # Content & theme configuration file
What's in the base:
- Astro 5.0 + Tailwind CSS
- Multi-theme system (Emerging Emerald, Midnight Azure, Crimson Bloom, Vibrant Amber)
blueprint.jsonmanifest for content/theme customization- Static build → Nginx Docker image
- Playwright smoke tests
sscli new --template static-landing --name my-landing
# With custom content & theme
sscli new \
--template static-landing \
--name my-landing \
--content ./my-blueprint.json \
--theme midnight
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Storefront components (cart, product, checkout UI) |
--with-auth |
PRO | Auth-gated page sections |
⚛️ React Client · react-client · ALPHA
A React 18 + Vite frontend with the full modern stack, ready to connect to any of the backend templates.
src/
├── components/ # Functional components only
├── hooks/ # Custom hooks for all business logic
├── pages/ # Route-level components
└── api/ # React Query client bindings
What's in the base:
- React 18 + Vite + TypeScript
- React Query for server state
- Tailwind CSS
- ESLint + Prettier strict mode
- Jest + Playwright
sscli new --template react-client --name my-frontend
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Commerce UI components (cart, order flow) |
--with-merchant-dashboard |
PRO | Full merchant dashboard — orders, analytics, settings. Requires --with-commerce |
--with-auth |
PRO | Auth flows integrated with React Query |
sscli new \
--template react-client \
--name merchant-ui \
--with-commerce \
--with-merchant-dashboard
📊 Data Pipeline · data-pipeline · ALPHA
A dbt + Python data stack for SaaS analytics and data transformation pipelines.
sscli new --template data-pipeline --name my-pipeline
What's included (click to expand)
- dbt Core with modular transformation layers (staging → marts)
- Python ingestion scripts
- Docker orchestration
- Pre-configured profiles for PostgreSQL / BigQuery
📱 Mobile · ALPHA
| Template | Stack | Command |
|---|---|---|
mobile-android |
Kotlin + Jetpack Compose | sscli new --template mobile-android --name my-app |
mobile-ios |
Swift + SwiftUI | sscli new --template mobile-ios --name my-app |
🏗️ Infrastructure · ALPHA
| Template | Stack | Command |
|---|---|---|
terraform-infra |
Terraform multi-cloud IaC | sscli new --template terraform-infra --name my-infra |
wiring |
Docker Compose multi-service orchestration | sscli new --template wiring --name my-stack |
🔧 CLI Reference
| Command | Description |
|---|---|
sscli new |
Scaffold a new project from a template |
sscli setup |
Run setup scripts for templates |
sscli interactive animated |
Guided interactive setup with a robust animated experience |
sscli explore |
Browse all templates in an interactive tree view |
sscli verify |
Verify template integrity and run smoke tests |
sscli health |
Check configuration and template health |
sscli validate |
Run smoke test suite against a template |
sscli upgrade |
Upgrade a generated project to a newer template version using AST |
sscli auth login |
Authenticate with GitHub to unlock ALPHA/PRO templates |
sscli whoami |
Show current authenticated user and license tier |
sscli logout |
Clear local credentials |
sscli obs diff |
3-way diff between base template and current code |
sscli obs workspace |
Manage feature isolation workspaces |
Feature Flags for sscli new
| Flag | Templates | Tier |
|---|---|---|
--with-commerce |
rails-api, python-saas, react-client, static-landing | PRO |
--with-merchant-dashboard |
react-client | PRO |
--with-auth |
rails-api, python-saas, react-client, static-landing | PRO |
--with-admin |
rails-api, python-saas | PRO |
--with-tunnel |
rails-api, python-saas | PRO |
--with-landing |
rails-api, python-saas | PRO |
--with-ingestor |
python-saas | PRO |
--with-sqlite |
python-saas | ALPHA |
--secrets <strategy> |
all | FREE |
--use-ast-injection |
all (where supported) | ALPHA |
--content <file> |
static-landing | ALPHA |
--theme <name> |
static-landing | ALPHA |
--dry-run |
all | FREE |
--json |
all | FREE |
🔄 Updates
pipx upgrade sscli
# or
pip install --upgrade sscli
❓ Troubleshooting
Command not found after install
sscli --version
# If missing, reinstall via pipx
pipx uninstall sscli
pipx install sscli
Template not generating correctly
# Check template integrity first
sscli verify --template rails-api
# Preview without writing files
sscli new --template rails-api --name test --dry-run
📞 Support
- Docs: docs.seedsource.dev
- GitHub: seed-source/stack-cli
- Email: support@seedsource.dev
📄 License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sscli-3.1.3-py3-none-any.whl.
File metadata
- Download URL: sscli-3.1.3-py3-none-any.whl
- Upload date:
- Size: 180.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f947f3e4c28784dc5a638445d7116b28bdaa9a025fca9e518de31d6752eca0ff
|
|
| MD5 |
f3ee2ba0aba7f099d9e8cf8c54c20297
|
|
| BLAKE2b-256 |
7d5381653a49aead16f263297a15e1cf8d30377c4fd184419f266d25012a7efd
|