Skip to content
/ rocks Public

โšก๐Ÿ—ฟ Make-driven development: package manager and lazy command discovery. Never google same command twice again. Just make it.

Notifications You must be signed in to change notification settings

inem/rocks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

56 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—ฟ Makefile Rocks

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

๐ŸŽฏ The Problem We're Solving

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.

๐Ÿ’ก The Solution: Collective Command Intelligence

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.

๐Ÿš€ Quick Start: From Zero to Hero in 30 Seconds

# 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.

๐Ÿ—๏ธ Core Philosophy: The Three Pillars

1. Fail Fast, Succeed Faster

Every failed command is an opportunity. When make deploy doesn't exist, make it finds it, installs it, and you're back to building.

2. Collective Intelligence

Why should everyone figure out Docker deployment separately? One person writes make deploy, everyone benefits.

3. Zero Context Switching

Stay in your terminal. Stay in your flow. Let the tools adapt to your rhythm.

๐ŸŽช The Magic Behind the Curtain

Intelligent Command Discovery

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

Smart Module System

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)

Intelligent Merging

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.

๐Ÿง  Learning Through Usage

This system teaches you by doing:

Universal Variables

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

Battle-Tested Patterns

# 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

Progressive Enhancement

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

๐ŸŒŸ Real-World Usage Stories

The Onboarding Experience

# 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.

The Context Switch Killer

# 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.

The Knowledge Multiplier

# 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.

๐Ÿ”ง Advanced Patterns

Project-Specific Customization

# 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

Smart Error Handling

make rock nonexistent
# โŒ Failed to download make-nonexistent (not found in rocks/)

make it!  # Execute immediately after finding
# ๐Ÿš€ Executing command: deploy
# [command runs immediately]

Integration with Modern Workflow

# 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

๐ŸŒ The Bigger Picture: Developer Experience Revolution

This isn't just about commands. It's about removing friction from the creative process:

Before Makefiles

Idea โ†’ Google โ†’ StackOverflow โ†’ Copy-paste โ†’ Debug โ†’ Modify โ†’ Finally works

After Makefiles

Idea โ†’ make it โ†’ Works

The Network Effect

  • 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

๐Ÿš€ Installation & Getting Started

One-Line Setup

curl -sSL instll.sh/inem/rocks/init.sh | bash

This creates:

  • โœ… Makefile with include make-*.mk
  • โœ… make-engine.mk with core functionality
  • โœ… Smart defaults for your project

First Commands to Try

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

๐Ÿค Contributing: Join the Movement

Adding Commands

# 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

Creating New Modules

# Create rocks/make-kubernetes
build-manifests:
	kustomize build . > manifests.yaml

deploy-k8s:
	kubectl apply -f manifests.yaml

Philosophy Guidelines

  • Commands should be memorable (make deploy, not make 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)

๐Ÿ”ฎ Future Vision

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.

๐Ÿ“š Learn More


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

About

โšก๐Ÿ—ฟ Make-driven development: package manager and lazy command discovery. Never google same command twice again. Just make it.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •