Skip to content

Download the shape-up book as an html or epub.

License

Notifications You must be signed in to change notification settings

benjaminkitt/shape-up-downloader

Repository files navigation

Shape Up Book Downloader

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.

Features

  • 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

Installation

Choose the installation method that works best for your system:

macOS

Using Homebrew:

brew install benjaminkitt/tap/shape-up-downloader

Windows

Using Scoop:

scoop bucket add shape-up https://github.com/benjaminkitt/scoop-bucket
scoop install shape-up-downloader

Download Binary

Download the latest release for your platform from our releases page.

Using Nix

If you have Nix with flakes enabled, you can install directly with:

nix profile install github:benjaminkitt/shape-up-downloader

Build from Source

If you have Go installed:

go install github.com/benjaminkitt/shape-up-downloader@latest

Usage

To download and convert the book to an ePUB file:

shape-up --format epub

or to a single HTML file:

shape-up --format html

Why This Tool?

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.

Development

Prerequisites

  • Go 1.23.4 or higher
  • Git

Common Commands

# 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

Using Nix

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

Release Process

Releases are automated via GitHub Actions. To create a new release:

  1. Tag the version:
git tag -a v1.0.0 -m "Release version 1.0.0"
  1. 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

Contributing

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

MIT License

Acknowledgments

Disclaimer

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.

About

Download the shape-up book as an html or epub.

Resources

License

Stars

Watchers

Forks

Packages

No packages published