Platform · Community + marketplace · 2026

VHQ: a social platform and marketplace for vinyl collectors

Scan a barcode, import from Discogs or MusicBrainz, show your collection, sell what you don't play. One API behind the feed, the marketplace and the subscriptions.

Client code is private. This describes the engineering
VHQ, Platform · Community + marketplace
Client
Confidential (music platform)
Industry
Music and collectibles
My role
Backend engineer
Year
2026

Overview

The API for a vinyl-record community: an album catalog that imports from Discogs and MusicBrainz or a barcode scan, a social feed with posts, likes, comments and follows, personal collections with tier limits, wishlists, a marketplace with listings, saves and sold states, direct messaging, merch and a stores directory, and Stripe subscriptions that unlock the higher tiers.

The problem

Three products that usually live apart (a catalog, a social network and a marketplace) had to share one identity, one set of permissions and one subscription state, without the feed slowing down when the catalog grew or a listing appearing under the wrong account.

What I built

  • Album catalog with external import: search Discogs and MusicBrainz, import a release, or look a record up by barcode from the scanner.
  • Feed with algorithmic and chronological modes, posts with up to four images, comments and replies, reports, and a follow graph.
  • Collections with tier enforcement, wishlists, and a marketplace with listings (up to eight images), featured items, saved items and mark-as-sold.
  • Messaging over Socket.IO with an HTTP fallback, unread counts and read receipts; merch and a curated stores directory for admins.
  • Stripe subscriptions and a web-subscription flow with webhooks; admin endpoints for moderation, upgrades and deactivation.

Outcome

3

Products on one API: catalog, community, marketplace

2

External catalogs: Discogs, MusicBrainz

Stripe

Subscription tiers with webhooks

Engineering decisions

  • One permission model across catalog, social and marketplace
  • External catalog import behind a local canonical album
  • Tier limits enforced in the service layer, not the UI