Trivvio is a modern, real-time trivia application built with Nuxt 4 and Supabase. Host live games, join with friends, and compete on the leaderboard with a slick, engaging UI.
- Real-time Gameplay: Leveraging Supabase Realtime for instant state sync across all clients.
- Live Host Dashboard: Hosts can control the game flow, view live answer stats, and manage the lobby.
- Interactive Player Experience: Players join via Game PIN, answer questions in real-time, and see immediate feedback.
- Dynamic Leaderboard: Automatically calculated scores based on correctness and speed (
100 + TimeBonus). - Slick UI: Built with TailwindCSS, utilizing glassmorphism, animations, and a premium dark mode aesthetic.
- Guest Mode: Players can join without creating an account using a simple nickname.
- Framework: Nuxt 4 (Vue 3)
- Backend & Database: Supabase (PostgreSQL + Realtime)
- Styling: TailwindCSS
- Icons: Nuxt Icon (Material Symbols)
- Notifications: Vue Sonner
- Node.js (v18+)
- Supabase Project
-
Clone the repository:
git clone https://github.com/devadedeji/trivvio.git cd trivvio -
Install dependencies:
npm install
-
Supabase Setup:
- Create a new project on Supabase.com.
- Go to the SQL Editor in your Supabase dashboard.
- Open
supabase/schema.sqlfrom this repository, copy the entire content, and paste it into the SQL Editor. - Run the query to set up all tables, functions, and RLS policies.
- Go to Project Settings -> API, and copy your
Project URLandanonpublic key.
-
Environment Configuration: Create a
.envfile in the root directory:SUPABASE_URL=your_unique_project_url (e.g. https://xyz.supabase.co) SUPABASE_KEY=your_anon_public_key
-
Run Development Server:
npm run dev
Visit
http://localhost:8080in your browser.
app/components: Reusable UI components (Game, Lobby, Create flows).app/composables: Shared state logic (useGamePlay,useLobby,usePlayer).app/pages: Application routes/views.app/types: TypeScript definitions for Supabase schema.supabase/migrations: SQL migrations for database schema.
Contributions are welcome! Please feel free to submit a Pull Request.
