Tier Gist is a multiplayer tier-list party game. Players join a room, add items, rank each other's picks, and see the results round by round.
It can run locally without setup, or use Supabase for live deployed games.
- Room-code multiplayer
- Host lobby, topic collection, item submissions, ranking rounds, and results
- Group tier list mode with password-based player rejoin
- Safe-search Pixabay image suggestions for submitted items
- Shareable room links
- Local room sandbox for development
- Vite + React + TypeScript
- Tailwind CSS v4 via
@tailwindcss/vite - Supabase for auth, database, storage, and room state
- Vitest for game-logic tests
- Render static deployment via
render.yaml
npm install
npm run devWithout environment variables, the app uses a browser-local room sandbox. That makes it easy to test the game in multiple tabs.
npm run dev
npm run build
npm run test
npm run lintCopy .env.example to .env.local to enable integrations locally:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYVITE_PIXABAY_API_KEY
VITE_* variables are client-side config and can be visible in the built app. Do not put service-role keys, admin tokens, or deployment credentials in frontend env vars.
- Import the project into Render as a Static Site, or let Render detect
render.yaml. - Use
npm ci && npm run buildas the build command. - Use
distas the publish directory. - Add the two
VITE_SUPABASE_*env vars so the deployed app uses Supabase. - Add
VITE_PIXABAY_API_KEYif you want safe Pixabay image suggestions enabled. - Deploy.
render.yamlrewrites app routes toindex.htmland redirects/join/:codelinks to/room/:code.
Supabase schema changes live in supabase/migrations. Apply them to a Supabase project before running the deployed multiplayer mode.
Tier Gist is released under the MIT License.