Skip to content

Repository files navigation

πŸš€ bulk-deploy-cli

Deploy all your projects to GitHub + Vercel + Netlify in one command

Node.js License: MIT Platform PRs Welcome

Stop deploying projects one by one. Drop all your project folders in a directory, run one command, and watch them fly to GitHub, Vercel, and Netlify β€” automatically.

Features Β· Quick Start Β· How It Works Β· Configuration Β· Contributing


✨ Features

Feature Description
πŸ”„ Bulk Processing Deploy unlimited projects in a single run
🌐 Multi-Platform GitHub + Vercel + Netlify β€” all at once
πŸ” Smart Retry Auto-retries on locked files, name conflicts, and transient errors
πŸ“Š Progress Tracking Saves deployment state per-project so you can resume anytime
πŸ”§ Self-Healing Built-in repair script to fix failed Vercel/Netlify deploys
🏷️ Auto-Naming Sanitizes folder names into valid repo/site names
πŸ“ Auto-Organize Moves completed projects to an upload done/ folder
πŸ” Auth Check Validates GitHub, Vercel, and Netlify login before starting

πŸš€ Quick Start

Prerequisites

Make sure these CLIs are installed and authenticated:

# GitHub CLI
gh auth login

# Vercel CLI
npm i -g vercel
vercel login

# Netlify CLI
npm i -g netlify-cli
netlify login

Usage

  1. Put your project folders in a single directory:
my-projects/
β”œβ”€β”€ portfolio-site/
β”œβ”€β”€ weather-app/
β”œβ”€β”€ blog-platform/
β”œβ”€β”€ api-server/
└── ... (as many as you want)
  1. Run the deploy script:
cd my-projects
node automated_deploy_v3.js
  1. Sit back and watch. Each folder will be:
    • βœ… Git initialized & committed
    • βœ… Pushed to a new public GitHub repo
    • βœ… Deployed to Vercel (production)
    • βœ… Deployed to Netlify (production)
    • βœ… Moved to upload done/ when complete

πŸ”„ How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   YOUR PROJECTS DIR                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚  β”‚ Project1 β”‚ β”‚ Project2 β”‚ β”‚ Project3 β”‚  ...        β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜            β”‚
β”‚       β”‚             β”‚            β”‚                  β”‚
β”‚       β–Ό             β–Ό            β–Ό                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚  β”‚        bulk-deploy-cli              β”‚            β”‚
β”‚  β”‚                                     β”‚            β”‚
β”‚  β”‚  1. πŸ” Check Auth (GH/Vercel/NF)   β”‚            β”‚
β”‚  β”‚  2. πŸ“¦ Git Init + Commit           β”‚            β”‚
β”‚  β”‚  3. πŸ™ Create GitHub Repo + Push   β”‚            β”‚
β”‚  β”‚  4. β–²  Deploy to Vercel --prod     β”‚            β”‚
β”‚  β”‚  5. 🌐 Deploy to Netlify --prod    β”‚            β”‚
β”‚  β”‚  6. πŸ“ Move to "upload done/"      β”‚            β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚
β”‚                                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
β”‚  β”‚    upload done/       β”‚  ← Completed projects    β”‚
β”‚  β”‚  β”œβ”€β”€ Project1/        β”‚                          β”‚
β”‚  β”‚  β”œβ”€β”€ Project2/        β”‚                          β”‚
β”‚  β”‚  └── Project3/        β”‚                          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‚ Script Versions

This project includes multiple script versions, each building on the last:

Script Description
automate_deploy.js v1 β€” Basic bulk deploy (GitHub + Vercel + Netlify)
automated_deploy.js v1.5 β€” Adds auth checking and auto-login prompts
automated_deploy_v2.js v2 β€” Adds smart repo renaming on name conflicts
automated_deploy_v3.js v3 (Latest) β€” Adds progress tracking (.deploy_progress.json), resume support, and smarter error handling
repair_deployments.js Repair Tool β€” Scans upload done/ and re-deploys any failed Vercel/Netlify deployments

πŸ’‘ Recommendation: Use automated_deploy_v3.js for new deployments. Use repair_deployments.js to fix any that failed.


βš™οΈ Configuration

Edit the constants at the top of the script to match your setup:

// Path to GitHub CLI (update if installed elsewhere)
const GH_CMD = '"C:\\Program Files\\GitHub CLI\\gh.exe"';

// Vercel & Netlify (assumes they're in PATH)
const VERCEL_CMD = 'vercel';
const NETLIFY_CMD = 'netlify';

Auto-Generated .gitignore

Each project gets a .gitignore with:

node_modules
.env
.DS_Store
dist
build
coverage
.deploy_progress.json

πŸ› οΈ Repair Failed Deployments

If some Vercel or Netlify deployments failed (rate limits, network issues, etc.):

cd my-projects
node repair_deployments.js

This scans the upload done/ folder and retries any incomplete Vercel/Netlify deployments.


🀝 Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Ideas for Contributions

  • Add support for more platforms (AWS Amplify, Cloudflare Pages, etc.)
  • Add a --dry-run flag to preview without deploying
  • Add parallel deployment support for speed
  • Create a cross-platform version (Linux/macOS support)
  • Add a web dashboard to track deployment status

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ‘€ Author

Ashraf Morningstar β€” @AshrafMorningstar


If this tool saved you time, give it a ⭐!

Built with ❀️ for developers who deploy a lot.

About

Bulk deploy all your projects to GitHub + Vercel + Netlify in one command.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages