SynthGain is a niche marketplace for buying and selling vintage synthesizers. The product idea stays intentionally focused: a cleaner, more trustworthy experience for specialist gear than a generic classifieds site.
This repo keeps the original Rails marketplace stack and concept, but refactors the app toward a more polished standard:
- clearer buyer and seller flows
- stronger presentation of listings and seller profiles
- cleaner helper and controller responsibilities
- improved seed data for local demos
- a more intentional visual system for recruiters and collaborators reviewing the codebase
- Ruby on Rails 6.1
- PostgreSQL
- Webpacker 5
- Bootstrap 5
- Devise
- Ransack
- Active Storage
- Stripe Checkout
- RSpec
- browse the marketplace
- filter by title/description and category
- inspect seller profiles
- purchase listings through Stripe
- create a seller profile
- publish synth listings with metadata and imagery
- edit or remove existing listings
- track purchases through the orders page
app/controllers/listings_controller.rbMarketplace listings, seller ownership checks, and Stripe session creation.app/controllers/users_info_controller.rbSeller profile creation, editing, and public seller profile pages.app/views/pages/home.html.erbLanding page and recruiter-facing first impression.app/views/listings/Marketplace cards, listing detail, and listing form flow.app/assets/stylesheets/application.scssGlobal design system and page-level styling.
This repo now runs reliably on Apple Silicon/macOS with the following local baseline:
- Ruby
3.0.6 - Bundler
2.2.18 - PostgreSQL
- Node.js LTS recommended
- Yarn
1.22.x
If your shell has proxy variables configured, strip them for installs:
env -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy <command>Bootsnap can be unstable on newer macOS toolchains with this older Rails stack, so the setup commands below explicitly disable it.
Example flow:
env -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy \
PATH="$HOME/.asdf/installs/ruby/3.0.6/bin:$PATH" \
bundle _2.2.18_ install
env -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy \
corepack yarn install
env -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy \
DISABLE_BOOTSNAP=1 \
PATH="$HOME/.asdf/installs/ruby/3.0.6/bin:$PATH" \
bundle _2.2.18_ exec rails db:setup
env -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy \
DISABLE_BOOTSNAP=1 \
PATH="$HOME/.asdf/installs/ruby/3.0.6/bin:$PATH" \
bundle _2.2.18_ exec rails server -p 3001Then visit http://localhost:3001.
test@test.com/testingmrtest@test.com/testingmrstest@test.com/testing
- Checkout requires valid Stripe credentials in Rails credentials.
- Development uses local Active Storage so the app boots without S3.
- Seed data is designed to give the app a cleaner local demo without needing manual setup.
bin/webpackandbin/webpack-dev-serverset--openssl-legacy-providerautomatically so Webpacker 5 can still compile on modern Node/OpenSSL combinations.- Native gem build flags for
nio4r,msgpack, andffiare stored in.bundle/configfor repeatable local installs on current macOS toolchains.
SynthGain is useful as a portfolio project because it shows:
- full-stack Rails product work
- authentication and account flows
- marketplace domain modeling
- payments integration
- server-rendered UI design and refactoring discipline
- willingness to revisit older work and raise the engineering standard