stickers/README.md
2026-03-16 15:45:13 -07:00

3.2 KiB

Hack Club flag

stickers.hackclub.com

Hack Club logo

The Svelte and Ruby codebase powering stickers.hackclub.com


Hack Club Stickers

Every Hack Clubber gets free, high-quality stickers. Completing programs and attending hackathons can earn more event-specific merch!

Features

  • Trade stickers with other Hack Clubbers
  • Browse an archive of all printed Hack Club stickers
  • Submit new sticker designs
  • Vote on your favourite designs
  • Hack to earn monthly sticker shipments
  • Use as an API for sticker designs

Contributing

To spin up the codebase

git clone https://github.com/hackclub/stickers
cp .env.example .env
pnpm install
pnpm run dev

In a separate terminal cd backend cp .env.example .env Edit .env bundle config set --local path 'vendor/bundle' bundle install bundle exec rackup config.ru -p 9292

API Usage

You can use stickers.hackclub.com/api/ to get a list of all Hack Club stickers in JSON. Please don't hammer it too hard — let us know what you're up to and we can help you coexist within the rate limit. Locally the backend runs on port 9292 and exposes the following endpoints:

Authentication

  • GET /auth/login - Redirects to OIDC provider for login
  • GET /auth/oidc/callback - OAuth callback handler
  • GET /auth/logout - Clears session and logs out
  • GET /auth/me - Returns current authenticated user (requires auth)

Stickers

  • GET /stickers - List all visible stickers
  • GET /stickers/:id - Get sticker details (requires auth)

Designs

  • GET /designs - List current user's designs (requires auth)
  • GET /designs/all - List all designs (requires auth)
  • POST /designs - Submit a new design (requires auth)
  • POST /designs/:id/vote - Toggle vote on a design (requires auth)

Shop

  • GET /shop - List all shop items
  • GET /shop/:id - Get shop item details

Our Airtable has no passwords or secrets — if you want a read-only personal access token scoped to the base we can provide it! In general we're happy to help you over DM, but please have a glance over the code first!

Made with <3 by nora, euan, and end.