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
| 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 |
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- Put your project folders in a single directory:
my-projects/
βββ portfolio-site/
βββ weather-app/
βββ blog-platform/
βββ api-server/
βββ ... (as many as you want)
- Run the deploy script:
cd my-projects
node automated_deploy_v3.js- 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
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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/ β β
β ββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
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.jsfor new deployments. Userepair_deployments.jsto fix any that failed.
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';Each project gets a .gitignore with:
node_modules
.env
.DS_Store
dist
build
coverage
.deploy_progress.json
If some Vercel or Netlify deployments failed (rate limits, network issues, etc.):
cd my-projects
node repair_deployments.jsThis scans the upload done/ folder and retries any incomplete Vercel/Netlify deployments.
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Add support for more platforms (AWS Amplify, Cloudflare Pages, etc.)
- Add a
--dry-runflag 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
This project is licensed under the MIT License β see the LICENSE file for details.
Ashraf Morningstar β @AshrafMorningstar
If this tool saved you time, give it a β!
Built with β€οΈ for developers who deploy a lot.