explaingit

antiwork/gumroad

9,072RubyAudience · developerComplexity · 4/5Setup · hard

TLDR

Gumroad is the publicly released source code for the Gumroad creator marketplace, a Ruby on Rails app that lets creators sell digital products directly to buyers with no traditional store setup needed.

Mindmap

mindmap
  root((Gumroad))
    What it does
      Creator marketplace
      Sell digital products
      Process payments
    Tech Stack
      Ruby on Rails
      MySQL
      Docker
    Use Cases
      Codebase study
      Fork to build marketplace
      Open source contributions
    Setup
      Docker required
      3-step startup
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run a local copy of the Gumroad platform to study how a production Rails e-commerce app is structured.

USE CASE 2

Fork the project to build your own creator marketplace starting from a proven production codebase.

USE CASE 3

Contribute bug fixes or new features to the open-source Gumroad application via pull requests.

USE CASE 4

Learn how subdomain routing, Stripe payments, and background jobs are wired together in a real Rails app.

Tech stack

RubyRuby on RailsJavaScriptMySQLDockerElasticsearchRedisSidekiq

Getting it running

Difficulty · hard Time to first run · 1h+

Requires Docker, a specific Ruby version, Node.js, MySQL 8, and media-processing libraries before the app will start.

In plain English

Gumroad is an e-commerce platform that lets creators sell products directly to buyers without needing a traditional online store setup. This repository contains the full source code for the Gumroad web application, which has been made publicly available by the company. The application is built with Ruby on Rails on the backend and uses JavaScript for the frontend build system. Running it locally requires several tools to be installed first: a specific version of Ruby, Node.js, Docker (used to run supporting services like the database and cache), MySQL 8, and a few media-processing libraries. The README walks through installing all of those prerequisites step by step for both Mac and Linux, with a separate guide for Windows. Once the setup is complete, starting the application involves three steps: launching the Docker services with a single make command, setting up the database with a Rails command, and then running the development server. The app then becomes available at localhost:3000. Seller-specific subdomains like seller.localhost:3000 also work automatically in modern browsers without any extra configuration. The setup includes some documented limitations in local development. Features like Apple Pay require a live HTTPS address rather than a local server, and cross-subdomain cookies behave differently on localhost compared to a real domain. The README explains workarounds for both of these situations. The project uses RSpec for its test suite. Running the full suite requires the Docker services to be running and a test database to be set up separately. Integration tests run in a real Chrome browser via a tool called Capybara and Selenium. The README also mentions an Elasticsearch dependency that needs its search indexes reset on occasion, and a Sidekiq background job worker that runs alongside the main Rails server.

Copy-paste prompts

Prompt 1
I'm exploring the Gumroad Rails codebase. Walk me through how the checkout flow works end to end, from adding an item to the cart through to payment confirmation.
Prompt 2
Write an RSpec test for a new Gumroad feature that applies a percentage-off discount code at checkout and validates the correct total.
Prompt 3
Help me add a new digital product type to my local Gumroad dev environment and wire up its creation form in the Rails backend.
Prompt 4
Explain the Sidekiq background jobs used in Gumroad and show me how to add a job that sends a follow-up email 24 hours after a successful purchase.
Prompt 5
Walk me through the full local Gumroad dev setup on a Mac: Docker services, database setup, and getting the app running at localhost:3000.
Open on GitHub → Explain another repo

← antiwork on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.