Skip to content

A collection of tools and packages for initializing, scaffolding, and managing project templates in TypeScript and JavaScript monorepos.

License

Notifications You must be signed in to change notification settings

pixpilot/scaffoldfy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

@pixpilot/scaffoldfy

Documentation

A flexible and powerful task automation utility for project setup, cleanup, and configuration tasks.

✨ Features

  • 💬 Interactive Prompts - Collect user input with various prompt types
  • 🧩 Configuration Inheritance - Extend base configs for code reuse
  • 🔍 Dry-Run Mode - Preview changes with detailed diffs before applying
  • 🔌 Plugin System - Create custom task types and lifecycle hooks
  • 📝 Handlebars Support - Advanced templating with conditionals, loops, and helpers
  • Type-Safe - Full TypeScript support with JSON schema validation

🚀 Quick Start

Installation

npm install @pixpilot/scaffoldfy

Usage

# Basic usage with default task file
scaffoldfy

# With custom tasks file
scaffoldfy --config ./config.json

# Preview changes (dry run)
scaffoldfy --dry-run

Or run without installing using npx:

# Basic usage with default task file
npx @pixpilot/scaffoldfy

# With custom tasks file
npx @pixpilot/scaffoldfy --config ./config.json

# Preview changes (dry run)
npx @pixpilot/scaffoldfy --dry-run

📚 Documentation

📦 Monorepo Structure

This is a TypeScript monorepo managed with pnpm and Turbo:

scaffoldfy/
├── packages/
│   └── scaffoldfy/        # Main package
├── docs/                  # Documentation
├── tooling/               # Shared configs (ESLint, TypeScript, etc.)
└── turbo/                 # Turbo generators

Development

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests
pnpm test

# Type check
pnpm typecheck

🚢 Releases

🤖 Automated Release (Recommended)

This monorepo uses the Changeset Autopilot GitHub Action for fully automated, dependency-aware versioning and publishing. It:

  • Detects conventional commits and generates changesets automatically
  • Handles branch-based release channels (main, next, beta, etc.)
  • Versions and publishes only changed packages to npm
  • Manages pre-releases and dist-tags
  • Runs entirely in CI for maximum reliability

How it works:

  • On every push to a release branch, the action analyzes commits, generates changesets, versions packages, and publishes to npm.
  • No manual steps are needed—just follow the conventional commit format and push to the correct branch.
  • See the Changeset Autopilot documentation for setup and configuration details.

📝 Manual Release

Manual releases are possible if needed (for example, for hotfixes or if CI is unavailable):

  1. Ensure you have an NPM_TOKEN with publish rights set in your environment (for CI/CD, set as a secret).
  2. Run the following commands from the root:
    pnpm changeset
    pnpm changeset version
    pnpm changeset publish
    This will version and publish only those workspace packages with relevant changes.
  • Each package is versioned independently.
  • Git tags are created in the format <package-name>-<version>.
  • See .changeset/config.json for configuration details.

For more, see the Changesets documentation.

🤝 Contributing

See CONTRIBUTING.md for guidelines.

📄 License

MIT

About

A collection of tools and packages for initializing, scaffolding, and managing project templates in TypeScript and JavaScript monorepos.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •