@stacksjs/launchpad
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

Social Card of this repo

npm version GitHub Actions Commitizen friendly

launchpad

A lightweight package manager built on top of pkgx to simplify package installation and management. Similar to Homebrew, but faster.

Features

Launchpad offers a streamlined approach to package management with these key features:

  • 📦 Package Management — Install and manage packages efficiently
  • 🔧 Auto-updates — Configure automatic updates
  • 🔌 PATH Integration — Automatically ensures installation directories are maintained in your PATH
  • 🔄 Executable Shims — Create executable shims for packages automatically
  • 💻 CLI & Library — Programmatically or manually manage your dependencies using the CLI or library
  • 🪟 Cross-platform — Full support for macOS, Linux, and Windows systems

Why Launchpad?

Traditional package managers like Homebrew have limitations:

  • Slow installations — Installing or updating can take minutes
  • Dependency chains — Updating one package triggers unwanted updates
  • Environment conflicts — Different projects need different versions
  • PATH management — Manual PATH configuration is error-prone
  • Platform inconsistency — Different systems need different approaches

Launchpad solves these by providing:

  • Fast installations — Leverage pkgx for efficient package management
  • Isolated packages — Install only what you need without conflicts
  • Automatic PATH management — Tools are available immediately
  • Consistent interface — Same commands work everywhere
  • Dev environments — Project-specific development environment support

Read more about why we created Launchpad

Installation

Launchpad is available through multiple package managers:

# Install with Bun (recommended)
bun add -g @stacksjs/launchpad

# Or with npm
npm install -g @stacksjs/launchpad

# Or with yarn
yarn global add @stacksjs/launchpad

# Or with pnpm
pnpm add -g @stacksjs/launchpad

See Installation Guide for more options.

Quick Start

Install packages

# Install packages
launchpad install node python

# Use the shorthand
launchpad i node@22

Create shims

# Create shims for executables
launchpad shim node@22 typescript@5.7

# Specify custom path
launchpad shim --path ~/bin node@22

Install pkgx

# Install pkgx itself
launchpad pkgx

# Force reinstall
launchpad pkgx --force

Install dev package

# Install the dev package
launchpad dev

# With customization
launchpad dev --path ~/bin

Install Bun

# Install Bun directly
launchpad bun

# Install specific version
launchpad bun --version 1.2.14

Configure auto-updates

# Check current auto-update status
launchpad autoupdate

# Enable auto-updates
launchpad autoupdate:enable

# Disable auto-updates
launchpad autoupdate:disable

List installed packages

# List all installed packages
launchpad list
# or
launchpad ls

Configuration

Launchpad can be configured via a config file (launchpad.config.ts, .launchpadrc, etc.) or through command-line options.

Example configuration:

import type { LaunchpadConfig } from '@stacksjs/launchpad'

const config: LaunchpadConfig = {
  // Enable verbose logging
  verbose: true,

  // Installation path for binaries
  installationPath: '/usr/local',

  // Auto-elevate with sudo when needed
  autoSudo: true,

  // Retry settings
  maxRetries: 3,
  timeout: 60000,

  // Version handling
  symlinkVersions: true,
  forceReinstall: false,

  // PATH management
  shimPath: '~/.local/bin',
  autoAddToPath: true,
}

export default config

See Configuration Guide for all options.

GitHub Action

Launchpad provides a GitHub Action for CI/CD workflows:

- name: Install Dependencies
  uses: stacksjs/launchpad-installer@v1
  with:
    packages: node@22 typescript@5.7 bun@1.2.14

See GitHub Action Documentation for details.

Advanced Usage

Explore advanced topics in our documentation:

Comparing to Alternatives

vs Homebrew

  • Speed: Significantly faster installations
  • Isolation: Changes to one package don't affect others
  • Less disk space: Only install what you need

vs Manual Installation

  • Simplicity: Single command to install complex tools
  • PATH management: No need to manually edit shell config files
  • Version control: Easily install specific versions
  • Consistency: Same experience across all platforms

Changelog

Please see our releases page for information on changes.

Contributing

Please see CONTRIBUTING for details.

Community

For help or discussion:

Postcardware

“Software that is free, but hopes for a postcard.” We love receiving postcards from around the world showing where Stacks is being used! We showcase them on our website too.

Our address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094, United States 🌎

Credits

Sponsors

We would like to extend our thanks to the following sponsors for funding Stacks development. If you are interested in becoming a sponsor, please reach out to us.

License

The MIT License (MIT). Please see LICENSE for more information.

Made with 💙

Package Sidebar

Install

npm i @stacksjs/launchpad

Version

0.1.2

License

MIT

Unpacked Size

734 kB

Total Files

28

Last publish

Collaborators

  • chrisbreuer