"What if every command you've ever needed was just a
make it
away?"
curl -sSL instll.sh/inem/rocks/init.sh | bash
Non-destructive. Just adds two files to your current folder.
Welcome to a new paradigm in developer experience. This isn't just another toolโit's a movement toward effortless automation, collective knowledge sharing, and the elimination of context switching.
Picture this: You're deep in flow, building something amazing. Then you need to deploy. Or run tests. Or check the database. Suddenly you're:
- ๐ค Googling commands you've used 100 times before
- ๐ Copy-pasting from old projects or documentation
- ๐ Context switching between your IDE, terminal, and browser
- ๐ค Losing momentum while figuring out project-specific tooling
Every broken command is a broken flow state.
What if the entire developer community shared a living, breathing repository of commands? What if failing fast became succeeding faster?
make deploy # โ Command not found
make it # โจ Magic happens - command appears
make deploy # โ
Now it works perfectly
This is make-driven development: where your tools adapt to you, not the other way around.
# 1. Initialize the magic
curl -sSL instll.sh/inem/rocks/init.sh | bash
# 2. Try any command (it will fail)
make deploy
# 3. Watch the magic happen
make it
# 4. Now it works!
make deploy
That's it. You now have access to hundreds of battle-tested commands.
Every failed command is an opportunity. When make deploy
doesn't exist, make it
finds it, installs it, and you're back to building.
Why should everyone figure out Docker deployment separately? One person writes make deploy
, everyone benefits.
Stay in your terminal. Stay in your flow. Let the tools adapt to your rhythm.
make unknown-command
# Target 'unknown-command' not found. Try: make it
make it
# ๐ฅ Failed command: make unknown-command
# ๐ฅ Fetching latest makefiles...
# ๐ Searching for 'unknown-command' command...
# โ
Found 'unknown-command' command in: make-docker
# ๐ Adding to local Makefile...
make rock git # Download git commands module
make rock rails # Download rails commands module
make rock docker # Download docker commands module
Commands are organized in rocks (modules) that you can pick and mix:
- ๐ง
make-git
: Git workflows (push
,pull
,branch
,merge-to
) - ๐
make-rails
: Rails development (console
,test
,migrate
) - ๐ณ
make-docker
: Container operations (build
,run
,deploy
) - ๐ฎ
make-engine
: The core system (auto-installed)
When you run make rock git
twice:
โ ๏ธ make-git.mk exists, will add new commands in 9s...
Press Ctrl+C to cancel
๐ Adding new commands...
โ Adding command: branch-reset
โ Adding command: uncommit
โ
Added 2 new commands to make-git.mk
Your customizations are preserved. Only new commands are added.
This system teaches you by doing:
Every project gets smart defaults:
make info
# EMAIL: [email protected]
# GITHUB_USER: yourusername
# GIT_REPO: yourusername/yourproject
# REGISTRY: ghcr.io/yourusername/yourproject
# IMAGE_NAME: yourusername-yourproject
# Git workflows
make develop # Switch to develop branch
make main # Switch to main branch
make push # Push current branch
make pull! # Force pull with rebase
# Docker patterns
make build # Build with auto-detected registry
make run # Run with proper port mapping
make logs # Follow container logs
# Rails conventions
make c # Rails console (no autocomplete)
make test # Run test suite
make migrate # Run pending migrations
Start simple, grow complex:
# Beginner: Just works
make deploy
# Intermediate: Understand the pattern
make build push deploy
# Advanced: Customize for your needs
REGISTRY=my-registry.com make deploy
# New team member, first day
git clone company/awesome-project
cd awesome-project
# They try the obvious thing
make test
# โ Target 'test' not found. Try: make it
make it
# โ
Found 'test' command in: make-rails
# ๐ Added to local Makefile
make test
# ๐ Tests are running!
Zero documentation needed. The system teaches itself.
# You're coding, need to deploy quickly
make deploy
# Works instantly - no googling, no copy-pasting
# Need to check logs?
make logs
# Streaming immediately
# Quick database check?
make console
# You're in, ready to debug
Flow state preserved. Momentum maintained.
# You discover a better way to do something
vim rocks/make-rails
# Add your improved command
git push
# Now everyone on every project benefits
Individual learning becomes collective wisdom.
# Your local Makefile
include make-*.mk
# Override defaults
REGISTRY = my-private-registry.com
# Add project-specific commands
setup:
make migrate
make seed
make test
deploy-staging:
ENVIRONMENT=staging make deploy
make rock nonexistent
# โ Failed to download make-nonexistent (not found in rocks/)
make it! # Execute immediately after finding
# ๐ Executing command: deploy
# [command runs immediately]
# Works with your existing tools
make build # Builds Docker image
make test # Runs your test suite
make deploy # Deploys to configured environment
# Composes beautifully
make build test deploy
This isn't just about commands. It's about removing friction from the creative process:
Idea โ Google โ StackOverflow โ Copy-paste โ Debug โ Modify โ Finally works
Idea โ make it โ Works
- Individual: You save time and stay in flow
- Team: Shared knowledge, consistent workflows
- Community: Battle-tested patterns, continuous improvement
- Industry: Elevated baseline for developer experience
curl -sSL instll.sh/inem/rocks/init.sh | bash
This creates:
- โ
Makefile
withinclude make-*.mk
- โ
make-engine.mk
with core functionality - โ Smart defaults for your project
make info # See your project variables
make rock git # Add git commands
make rock rails # Add rails commands (if applicable)
make deploy # Let it fail, then...
make it # Watch the magic
# 1. Fork the repository
# 2. Add commands to appropriate rocks/make-* file
# 3. Submit PR
# Example: Adding to rocks/make-git
troubleshoot:
git log --oneline -10
git status
git diff --stat
# Create rocks/make-kubernetes
build-manifests:
kustomize build . > manifests.yaml
deploy-k8s:
kubectl apply -f manifests.yaml
- Commands should be memorable (
make deploy
, notmake deploy-to-production-with-rollback
) - Embrace convention over configuration (smart defaults)
- Optimize for flow state (no prompts, no confirmations in common paths)
- Make it teachable (commands should be self-explanatory)
Imagine a world where:
- โจ Every project has instant, discoverable commands
- ๐ง Collective intelligence eliminates repetitive learning
- ๐ Flow state is the default developer experience
- ๐ Automation is effortless and shareable
This is just the beginning. Make was created in 1976. It's time for an upgrade.
- ๐ Live Demo - See it in action
- ๐ฟ Rock Collection - Browse available modules
- ๐ฌ Discussions - Share patterns and ideas
- ๐ Issues - Report bugs or request features
"The best tools are invisible. They get out of your way and let you create."
Join the revolution. Make commands, not barriers.
curl -sSL instll.sh/inem/rocks/init.sh | bash
๐ค Built by annoyed developers โ for annoyed developers.