A Go-based tool to download and convert Basecamp's Shape Up book into formats suitable for e-readers and offline reading. If you're looking for a PDF version, Basecamp already provides one, as well as a Print edition.
- Downloads the complete Shape Up book content
- Converts to multiple formats:
- Single HTML file with embedded images
- EPUB format for e-readers
- Includes table of contents
- Embeds all images
Choose the installation method that works best for your system:
Using Homebrew:
brew install benjaminkitt/tap/shape-up-downloader
Using Scoop:
scoop bucket add shape-up https://github.com/benjaminkitt/scoop-bucket
scoop install shape-up-downloader
Download the latest release for your platform from our releases page.
If you have Nix with flakes enabled, you can install directly with:
nix profile install github:benjaminkitt/shape-up-downloader
If you have Go installed:
go install github.com/benjaminkitt/shape-up-downloader@latest
To download and convert the book to an ePUB file:
shape-up --format epub
or to a single HTML file:
shape-up --format html
While Shape Up is freely available online and as a PDF, these formats aren't ideal for e-readers or offline reading. This tool creates versions optimized for digital reading while preserving the book's content and structure.
- Go 1.23.4 or higher
- Git
# Run all tests with coverage
make test
# Run linting checks
make lint
# Build the application
make build
# Clean build artifacts
make clean
# Run all quality checks (lint + test)
make check
You can optionally use Nix to manage your Go environment. This will ensure you have the correct version of Go and other dependencies installed. Once you have Nix installed, you can run:
nix develop
This provides a consistent development environment with:
Go compiler and tools gopls language server golangci-lint delve debugger goreleaser
Releases are automated via GitHub Actions. To create a new release:
- Tag the version:
git tag -a v1.0.0 -m "Release version 1.0.0"
- Push the tag:
git push origin v1.0.0
This will trigger the release workflow which:
Builds binaries for all supported platforms Creates a GitHub release Updates the Homebrew formula
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Inspired by Johannes Hertenstein's shape-up-downloader
- Thanks to Basecamp for making Shape Up freely available
- Original book by Ryan Singer
- Built with assistance from Cody
This tool is meant for personal use only. The Shape Up book content is owned by Basecamp. Please respect their copyright and terms of use.