Never miss a service again.

A powerful development environment manager that helps you run and manage multiple processes and services in your development workflow.

⚡️

Zero to Productive

Get new developers up and running instantly with just two commands: spin fetch and spin up.

🛠

Simple Yet Powerful

Leverages Docker and Tmux behind the scenes, but keeps the developer experience clean and simple.

🤝

Team Consistency

Ensure every developer runs the same configuration. Eliminate "works on my machine" issues.

🔄

Multi-Project Ready

Perfect for microservice architectures or full-stack development with separate repositories.

spin.config.json
{
  "name": "test_rails",
  "version": "1.0.0",
  "type": "rails",
  "repository": {
    "organization": "afomera",
    "name": "test_rails"
  },
  "dependencies": {
    "services": ["sqlite3"],
    "tools": ["ruby", "bundler"]
  },
  "scripts": {
    "setup": {
      "command": "bundle install",
      "description": "Install dependencies",
      "hooks": {
        "pre": {
          "command": "asdf install ruby",
          "description": "Install Ruby version",
          "env": {
            "RUBY_VERSION": "3.2.2"
          }
        },
        "post": {
          "command": "bundle exec rails db:setup",
          "description": "Set up database"
        }
      }
    },
    "test": {
      "command": "bundle exec rspec",
      "description": "Run tests",
      "hooks": {
        "pre": {
          "command": "bundle exec rails db:test:prepare",
          "description": "Prepare test database"
        }
      }
    }
  },
  "env": {
    "development": {}
  },
  "rails": {
    "ruby": {
      "version": "3.4.1"
    },
    "database": {
      "type": "sqlite3",
      "settings": {
        "database": "storage/development.sqlite3"
      }
    },
    "rails": {
      "version": "8.0.1"
    }
  }
}

Quick Start

Download and install Spin from GitHub: here
# Initialize a new project
spin init
# Start your development environment
spin up