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.
{
"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