Thanks to visit codestin.com
Credit goes to github.com

Skip to content

devotox/launchpad

Repository files navigation

title description
Launchpad CLI
The essential developer onboarding tool for any organization - your starting point into the organization and beyond

Launchpad CLI Cover Image

Launchpad CLI

Welcome to Launchpad - the comprehensive command-line interface designed to be every developer's starting point into the any organization organization and beyond.

What is Launchpad?

Launchpad CLI is the essential onboarding tool that streamlines the developer experience at any organization. Whether you're a new team member joining the organization or an existing developer exploring new projects, Launchpad provides you with the tools, resources, and guidance needed to get up and running quickly.

Launchpad is more than just a CLI tool - it's your gateway to the any organization developer ecosystem. It serves as:

  • Your First Step: The initial tool every developer uses when joining any organization
  • Project Bootstrap: Quick setup and initialization of new projects
  • Resource Hub: Access to documentation, best practices, and organizational standards
  • Development Environment: Streamlined setup of local development environments
  • Knowledge Base: Centralized access to team knowledge and processes

Why Choose Launchpad?

At any organization, we believe that great developer experiences lead to great products. Launchpad embodies this philosophy by:

  • Reducing Time to Productivity: Get new developers contributing to projects faster
  • Ensuring Consistency: Standardized setup processes across all teams using pnpm and Turbo
  • Sharing Knowledge: Centralized access to tribal knowledge and best practices
  • Supporting Growth: Resources for both new developers and experienced team members exploring new areas

🚀 Quick Onboarding

  • Automated development environment setup
  • Repository access and cloning
  • Dependency management and installation with pnpm
  • Configuration of essential tools and services
  • Turbo repo workspace setup

📚 Knowledge Integration

  • Access to organizational documentation
  • Best practice guidelines
  • Code standards and conventions
  • Team contact information and escalation paths

🛠️ Project Management

  • Project creation and scaffolding
  • Template selection and customization
  • Integration with existing any organization infrastructure
  • Automated CI/CD setup
  • Turbo repo integration for monorepo projects

🔧 Development Tools

  • Environment configuration
  • Service discovery and connection
  • Testing framework setup
  • Deployment pipeline integration

Installation

For Local Development (Current)

# Clone the repository and install locally
git clone <repository-url>
cd launchpad
pnpm install
pnpm run install:local

This will build the CLI and install it globally so you can use the launchpad command anywhere.

For Published Package (Future)

# Installation using pnpm (our preferred package manager)
pnpm install -g @any organization/launchpad-cli

Quick Start

Step 1: Development Environment Setup

First, set up your development environment (this installs essential tools like Homebrew, Git, Node.js via Volta, PNPM, and GitHub CLI):

# Set up essential development tools (recommended first step)
launchpad setup essential

# Or set up everything at once
launchpad setup all

# Check what's installed
launchpad setup status

Step 2: Configuration Setup

Next, download or configure the necessary configuration files:

# Option 1: Download existing configuration from a shared source
# Note: You'll need a GitHub personal access token for private gists/repos
launchpad admin config download --gist-id YOUR_GIST_ID --token YOUR_GITHUB_TOKEN

# Option 2: Set up configuration providers for your organization
launchpad admin config setup
launchpad admin config providers

# Option 3: Check what configuration files are available
launchpad admin info

GitHub Token Setup:

  1. Go to GitHub Settings > Personal Access Tokens
  2. Create a new token with gist scope (for Gist access) or repo scope (for repository access)
  3. Use the token in download/upload commands or save it in your provider configuration

Step 3: Initialize Your Workspace

Finally, initialize your developer workspace:

# Initialize your developer workspace
launchpad init

# Set up your development environment
launchpad setup all

# Explore available commands
launchpad help

# Start working with your team's repositories
launchpad app dev                       # Interactive selection of repositories
launchpad app dev --all                 # Start all repositories
launchpad app dev -r repo1 repo2        # Start specific repositories

Configuration Management

Launchpad uses a centralized configuration system for teams, setup components, and documentation. You can:

# Download configuration from GitHub Gist (requires token for private gists)
launchpad admin config download --gist-id abc123def456 --token YOUR_GITHUB_TOKEN

# Upload your local configuration to share with others (requires token)
launchpad admin config upload --token YOUR_GITHUB_TOKEN

# Backup your configuration locally (no token needed)
launchpad admin config backup

# Restore from a backup (no token needed)
launchpad admin config restore

# Manage sync providers (save tokens permanently to avoid repeated entry)
launchpad admin config providers

Pro Tip: Configure your sync providers once with launchpad admin config providers to save your tokens permanently. This way you won't need to provide --token on every command.

Application Management

Launchpad includes a powerful application management system that allows you to run commands across multiple repositories with ease. This is perfect for managing microservices, monorepos, or any multi-repository development workflow.

Quick Start with App Commands

# Start all repositories in development mode
launchpad app dev --all

# Start specific repositories
launchpad app dev -r aurora mmb

# Check status of running processes
launchpad app status

# View logs from a specific repository
launchpad app logs -r aurora --follow

# Stop all running processes
launchpad app stop --all

Available App Commands

  • launchpad app dev - Start development mode for repositories
  • launchpad app start - Start development servers
  • launchpad app build - Build repositories (supports dev/prod environments)
  • launchpad app test - Run tests (supports watch mode)
  • launchpad app lint - Run linting (supports auto-fix)
  • launchpad app status - Show status of running processes
  • launchpad app logs - View logs from running processes
  • launchpad app stop - Stop running processes gracefully
  • launchpad app down - Stop and remove Docker Compose containers (use --volumes to remove volumes)
  • launchpad app kill - Force kill all processes

Convenient Root Scripts

For quick access, use these root-level scripts:

pnpm app:dev      # Start all repos in dev mode
pnpm app:start    # Start all repos
pnpm app:build    # Build all repos
pnpm app:test     # Test all repos
pnpm app:status   # Show process status
pnpm app:stop     # Stop all processes
pnpm app:down     # Stop and remove Docker containers
pnpm app:kill     # Kill all processes

Features

  • Process Management: Track, monitor, and control running processes
  • Log Management: Centralized logging with real-time viewing
  • Parallel/Sequential Execution: Choose execution mode based on needs
  • Interactive Mode: Select repositories when none specified
  • Environment Support: Different commands for dev/prod environments
  • Error Handling: Graceful error handling and recovery
  • Docker Compose Support: Automatic detection and proper handling of containerized applications

Docker Compose Support

Launchpad automatically detects Docker Compose applications and uses the appropriate commands:

  • Automatic Detection: Looks for docker-compose.yml, compose.yml, and other common compose file names
  • NPM Script Detection: Detects when npm scripts use Docker Compose commands (e.g., "dev": "docker-compose up")
  • Smart Commands: Uses docker compose up for dev/start, docker compose stop for graceful shutdown
  • Proper Cleanup: The down command removes containers, networks, and optionally volumes
  • Container Logs: Shows Docker container logs instead of process logs for compose applications

Docker Compose Commands

# Start Docker Compose services in development mode
launchpad app dev -r my-docker-app

# Stop Docker Compose services gracefully
launchpad app stop -r my-docker-app

# Stop and remove containers, networks (use for cleanup)
launchpad app down -r my-docker-app

# Stop and remove everything including volumes
launchpad app down -r my-docker-app --volumes

# View container logs
launchpad app logs -r my-docker-app --follow

NPM Scripts with Docker Compose

Launchpad also detects when your npm scripts use Docker Compose commands:

{
  "scripts": {
    "dev": "docker-compose up --build",
    "start": "docker compose -f docker-compose.prod.yml up -d",
    "test": "docker-compose run --rm app npm test"
  }
}

When you run launchpad app dev, it will:

  1. Execute the npm script as usual
  2. Detect that it uses Docker Compose
  3. Track the Docker services that are started
  4. Use proper Docker Compose commands when stopping (instead of just killing the npm process)

For detailed documentation, see APP_COMMANDS.md.

Development Environment Setup

Launchpad automates the installation of all development tools you need for any organization.

# Set up everything you need
launchpad setup all

# Essential tools only (recommended for quick start)
launchpad setup essential

# Check what's installed
launchpad setup status

For the complete setup command reference, see SETUP_COMMANDS.md.

CLI Development

For contributors working on the CLI itself:

# Run directly from source (fastest for development)
pnpm cli --help
pnpm cli init

# Watch mode - auto-restart on changes
pnpm dev:cli

# Build and test production version
pnpm cli:build
pnpm cli:built --help

Local Development

Installing for Development

# Clone, build, and install globally
git clone <repository-url>
cd launchpad
pnpm install
pnpm run install:local

Now you can use launchpad anywhere on your system.

Quick Development

For rapid iteration while developing the CLI:

# Run directly from source (no build needed)
pnpm cli --help
pnpm cli init

# Or watch mode (auto-restart on changes)
pnpm dev:cli

Uninstalling

pnpm run uninstall:local

Vision

Launchpad represents our commitment to developer experience excellence. As the organization grows and evolves, Launchpad grows with it, continuously incorporating new tools, processes, and knowledge to ensure every developer has what they need to succeed.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages