antiwork /gumroad

See what sticks

★ 10,131⑂ 2,117👁 105⑃ 7,678● 0▤ 1,000◈ 0
RubyMITCreated 2025-04-03gumroad.com
TA的项目
10,131
stars
+11
2,117
forks
105
watchers
7,678
prs
0
issues
1,000
releases
0
discussions

README

See what sticks.



  Gumroad is an e-commerce platform that enables creators to sell products directly to consumers. This repository contains the source code for the Gumroad web application.



  
    
  


 Contributing

We don't run an inbound review queue on this repo. To contribute a change: fork the repo, open the pull request on your own fork, then email [email protected] with a link to it. We read every submission and merge the ones we want on our side, keeping your authorship — though we can't promise a reply to each one or a timeline.

Your PR still has to meet the same bar as our own work — visual evidence for anything user-facing, QA steps, test results, and an AI disclosure naming the model. See CONTRIBUTING.md for the full guidelines and the substitutions that apply when working from a fork.

 Table of Contents

- Contributing
- Getting Started
  - Prerequisites
  - Installation
  - Configuration
  - Running Locally
- Testing
  - Dependencies
  - Integration tests
- Development
  - Logging in
  - Resetting Elasticsearch indices
  - Push Notifications
  - Common Development Tasks
  - Linting

 Getting Started

 Prerequisites

 💡 If you're on Windows, follow our Windows setup guide instead.

Before you begin, ensure you have the following installed:

 Ruby

- https://www.ruby-lang.org/en/documentation/installation/
- Install the version listed in the .ruby-version file

 Node.js

- https://nodejs.org/en/download
- Install the version listed in the .node-version file

 Docker

We use Docker to setup the services for development environment.

- For MacOS: Download the Docker app from the Docker website
- For Linux:

bash
sudo wget -qO- https://get.docker.com/ | sh
sudo usermod -aG docker $(whoami)


 MySQL & Percona Toolkit

Install a local version of MySQL 8.4.x to match the version running in production.

The local version of MySQL is a dependency of the Ruby mysql2 gem. You do not need to start an instance of the MySQL service locally. The app will connect to a MySQL instance running in the Docker container.

- For MacOS:

bash
brew install [email protected] percona-toolkit
brew link --force [email protected]

 to use Homebrew's openssl:
brew install openssl
bundle config --global build.mysql2 --with-opt-dir="$(brew --prefix openssl)"

 ensure MySQL is not running as a service
brew services stop [email protected]


- For Linux:
  - MySQL:
    - https://dev.mysql.com/doc/refman/8.4/en/linux-installation.html
    - apt install libmysqlclient-dev
  - Percona Toolkit: https://www.percona.com/doc/percona-toolkit/LATEST/installation.html

 ImageMagick

We use imagemagick for preview editing.

- For MacOS: brew install imagemagick
- For Linux: sudo apt-get install imagemagick

 FFmpeg

We use ffprobe that comes with FFmpeg package to fetch metadata from video files.

- For MacOS: brew install ffmpeg
- For Linux: sudo apt-get install ffmpeg

 PDFtk

We use pdftk to stamp PDF files with the Gumroad logo and the buyers' emails.

- For MacOS: Download from here
  - 

Latest release

v2026.11.08.11 v2026.11.08.11 2026-11-08
What's Changed
 Internal
 Let sellers set profile sections and Discover category before publishing by @gumclaw in https://github.com/antiwork/gumroad/pull/9043


Full Changelog: https://github.com/antiwork/gumroad/compare/v2026.11.08.10...v2026.11.08.11

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON