GalleryBoard is a collaborative classroom whiteboard platform built with Next.js, Supabase, and shadcn/ui. Teachers can create rooms, students can join with a code, and everyone gets a real-time, private whiteboard. Teachers can view live previews of all student boards.
- Create and join classroom rooms with unique codes
- Real-time whiteboard for each student
- Live preview of student boards for teachers
- Anonymous name generation for students
- Responsive, modern UI with Tailwind CSS and shadcn/ui
- Cloudflare Turnstile for anti-bot protection
- Node.js (v18+ recommended)
- npm, yarn, or pnpm
- Supabase project (with tables:
classrooms,classroom_students,drawing_updates)
-
Clone the repository:
git clone https://github.com/yourusername/galleryboard.git cd galleryboard -
Install dependencies:
npm install # or yarn install # or pnpm install
-
Configure environment variables:
- Copy
.env.local.exampleto.env.localand fill in your Supabase and Turnstile keys. - Required variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYNEXT_PUBLIC_TURNSTILE_SITE_KEY
- Copy
-
Run the development server:
npm run dev # or yarn dev # or pnpm dev
-
Open the app: Visit http://localhost:3000 in your browser.
app/- Next.js app directory (pages, layouts, components)lib/- Supabase client and helperscomponents/- UI primitives and shared componentspublic/- Static assets (favicon, logo, etc.)
Deploy easily on Vercel or your preferred platform. See Next.js deployment docs.
MIT
Made by Alex Lautin, Andy Blumberg, and Jake Floch