The official codebase for the Synapse 2026 Website.
First run the development server:
npm run devA Next.js web application powering the Synapse 2026 website. This repository contains the frontend application, admin interfaces, API routes, components, utilities, and integration code used to run and maintain the public site and admin panels.
Key goals: present event information, enable registrations and payments, manage artists and sponsors, and provide a small CMS for admins.
Tech stack (high level): Next.js, React, Tailwind CSS, Supabase, various React animation/3D libraries (GSAP, react-three), and TypeScript.
- Overview: project purpose and features
- Repository structure: high-level folder map
- Local setup: prerequisites, install, run
- Environment: required env variables (non-secret guidance)
- Development & build: scripts and commands
- Deployment & notes: tips for production,
- Contributing & license
Project status: actively used for Synapse 2026 event site and admin workflows.
- Install dependencies:
npm install- Start local development server:
npm run dev- Open http://localhost:3000 in your browser.
- dev: runs the app in development mode (
next dev) - build: builds the production app (
next build) - start: runs the built app (
next start) - lint: runs ESLint across the project
See package.json for the exact script definitions.
app/— Next.js App Router pages and layouts for the public site and admin sectionscomponents/— shared React components (UI, admin, pages, and utilities)components/admin/— admin-specific components and guardshooks/— custom React hooks (e.g.useAuth)lib/— helper libraries (e.g.checkAdmin,cors,utils)utils/supabase/— Supabase client setups and server helperspublic/— static assets (fonts, images)styles/— global design tokens and Tailwind configurationtypes/— shared TypeScript typesapp/api/— API route implementations for server actions
This repository follows a conventional Next.js layout with App Router routing and server/client components. The admin subtree contains routes and components used for administrative workflows (managing events, artists, sponsors, users, etc.).
- Recommended Node.js: 18 or newer.
- Package manager:
npmis used in examples;pnpmoryarncan also be used. - TypeScript is enabled; ensure your editor picks up the workspace
tsconfig.json.
Place environment variables in a .env.local file for local development. Example .env.local (never commit this file):
NEXT_PUBLIC_SUPABASE_URL=https://xyzcompany.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=public-anon-key
SUPABASE_SECRET_KEY=service-role-secret
- Auth flows are implemented under
app/authandapp/admin. Thecomponents/admin/AdminAuthGuard.tsxcomponent controls protected admin routes. lib/checkAdmin.tscontains helper logic for server-side admin checks.
- Tailwind CSS is used for styling. Custom tokens live in
styles/design-tokens.cssandtailwind.config.js. - Static images and fonts are in
public/organized by domain (home, events, merch, sponsors, etc.).
- Supabase for authentication and data
- GSAP and
react-threelibraries for animations and 3D visuals
- Create a production build:
npm run build- Start the production server (after build):
npm start- The project is compatible with Vercel (Next.js recommended), Netlify, or other Node.js hosts. If deploying to Vercel, set the environment variables in the project settings and enable any preview branch protections you need.
- Make sure server-only secrets (like
SUPABASE_SECRET_KEY) are stored only in secure environment settings and never exposed to client bundles.
- Fork the repo and open pull requests for changes.
- Keep UI and behavior consistent with existing components in
components/. - Run
npm run lintand fix lint errors before submitting PRs.
- Project maintainers and event leads typically manage this repo. For questions about deployment or admin access, contact the Synapse Commitee (contact details not stored in repo).
- See the
LICENSEfile at the repository root for license details.
app/layout.tsx— application-level layout and providersapp/page.tsx— public home page entryapp/admin/layout.tsx— admin-specific layout and middlewareutils/supabase/— Supabase client and server helpers ;;;