BEACON is a modern disaster relief product showcase and dashboard built by Team ZeroLatency.
The experience demonstrates how communication can continue during infrastructure outages using offline mesh principles, clear incident visibility, and resilient operational tooling.
- Product landing page with structured storytelling: problem, solution, features, stack, impact.
- Responsive dashboard concept for emergency operations monitoring.
- Supabase-powered authentication with a practical two-step flow:
- Login with email/password.
- If account does not exist, redirect to registration with prefilled email/password.
- Framework: Next.js (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- Icons: Lucide React
- Motion: Framer Motion
- Auth + Data: Supabase
app/
components/ # Reusable landing and UI components
dashboard/page.tsx # Protected dashboard experience
login/page.tsx # Email/password login page
registration/page.tsx # Registration page with prefilled values
page.tsx # Main BEACON landing page
lib/
supabase/client.ts # Supabase browser client
supabase/
schema.sql # SQL bootstrap for profiles + RLS + triggers
- Hero with mission-first messaging
- Problem framing for disaster-time communication breakdowns
- Offline mesh solution explanation
- Feature and engineering stack cards
- Impact section with network-growth visualization
- Fully responsive navigation and sections
- User enters email + password on login.
- If credentials are valid, user is signed in and redirected to dashboard.
- If user is not found, app redirects to registration.
- Registration page preloads email/password from login attempt.
- User adds full name and completes account creation.
- Session-aware entry (redirect to login if not authenticated)
- Operational KPI cards
- Incident feed mock
- Quick action controls
- Sign out support
Create .env.local in the project root.
Required:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY=your_supabase_publishable_keyNote:
- The app also accepts
NEXT_PUBLIC_SUPABASE_ANON_KEYas an alternative key name.
- Create a Supabase project.
- Copy project URL and publishable key into
.env.local. - Open Supabase SQL Editor.
- Run the SQL in
supabase/schema.sql.
What the SQL sets up:
public.profilestable linked toauth.users- automatic profile creation trigger on new auth users
- update timestamp trigger
- Row Level Security policies for per-user access
Install dependencies:
npm installRun development server:
npm run devOpen:
Lint:
npm run lintBuild for production:
npm run build
npm run start- Recommended host: Vercel.
- Add the same environment variables in your deployment environment.
- Ensure Supabase Auth redirect settings allow your deployed domain.
This project is intentionally optimized for demos and presentations:
- high-contrast emergency visual language
- clear narrative flow from crisis to solution
- dashboard-first operational framing
Built by Team ZeroLatency.
"Because communication should not die first."