back to home

antiwork / gumroad

Sell stuff and see what sticks

8,643 stars
1,812 forks
50 issues
RubyTypeScriptHTML

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing antiwork/gumroad in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/antiwork/gumroad)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Sell your stuff. 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. Table of Contents • Getting Started • Prerequisites • Installation • Configuration • Running Locally • 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: MySQL & Percona Toolkit Install a local version of MySQL 8.0.x to match the version running in production. The local version of MySQL is a dependency of the Ruby 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: • For Linux: • MySQL: • https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html • - Percona Toolkit: https://www.percona.com/doc/percona-toolkit/LATEST/installation.html Image Processing Libraries ImageMagick We use for preview editing. • For MacOS: • For Linux: libvips For newer image formats we use for image processing with ActiveStorage. • For MacOS: • For Linux: FFmpeg We use that comes with package to fetch metadata from video files. • For MacOS: • For Linux: PDFtk We use pdftk to stamp PDF files with the Gumroad logo and the buyers' emails. • For MacOS: Download from here • **Note:** pdftk may be blocked by Apple's firewall. If this happens, go to Settings > Privacy & Security and click "Open Anyways" to allow the installation. • For Linux: wkhtmltopdf While generating invoices, to convert HTML to PDF, PDFKit expects wkhtmltopdf to be installed on your system. Download and install the version 0.12.6 for your platform. • **Note** similar to pdftk, this may also be blocked by Apple's firewall on MacOS. Follow a similar process as above. Installation Bundler and gems We use Bundler to install Ruby gems. Install gems: Also make sure to install as it is required for some console commands: npm and Node.js dependencies Make sure the correct version of is enabled: Install dependencies: Configuration Set up Custom credentials App can be booted without any custom credentials. But if you would like to use services that require custom credentials (e.g. S3, Stripe, Resend, etc.), you can copy the file to and fill in the values. Running Locally Start Docker services If you installed Docker Desktop (on a Mac or Windows machine), you can run the following command to start the Docker services: If you are on Linux, or installed Docker via a package manager on a mac, you may have to manually give docker superuser access to open ports 80 and 443. To do that, use instead. This command will not terminate. You run this in one tab and start the application in another tab. If you want to run Docker services in the background, use instead. Set up the database For Linux (Debian / Ubuntu) you might need the following: • Start the application This starts the Rails server, the JavaScript build system, and a Sidekiq worker. You can now access the application at . Development Logging in You can log in with the username and the password . The two-factor authentication code is . Read more about logging in as a user with a different team role at Users & authentication. Resetting Elasticsearch indices You will need to explicitly reindex Elasticsearch to populate the indices after setup, otherwise you will see errors when you visit the dev application. You can reset them using: Push Notifications To send push notifications: Common Development Tasks Rails console: Rake tasks: Linting We use ESLint for JS, and Rubocop for Ruby. Your editor should support displaying and fixing issues reported by these inline, and CI will automatically check and fix (if possible) these. If you'd like, you can run to check for these locally when committing. Common Issues macOS Error When Running Tests (Related to ) This issue occurs on macOS due to how the system call interacts with multithreaded Objective-C applications—commonly triggered when Spring is enabled during testing. How to Fix: Temporarily disable Spring before running your tests to avoid this error. This will disable Spring for the current session, allowing the tests to run without triggering the -related crash.