The web dashboard for ReportBridge - network-wide Minecraft reporting and moderation. Built with Next.js (App Router), TypeScript and Tailwind CSS.
The dashboard is a pure frontend. It never touches a database directly - all data flows through the ReportBridge API over HTTPS:
Browser (this app) -> ReportBridge API -> Database
The browser stores only the website session JWT. Network API secrets and the Discord bot token never live in the browser.
web/
├── app/ # App Router pages (landing, auth, dashboard)
├── components/ # Reusable UI (Sidebar, StatusBadge, NetworkSwitcher)
├── lib/ # Client helpers (session storage)
├── services/ # API client
├── types/ # Shared types
├── public/ # Static assets
└── styles/ # (global styles live in app/globals.css)
/landing page/login,/register/dashboardoverview (stat cards + recent reports)/dashboard/reports,/dashboard/reports/[id]/dashboard/servers,/dashboard/network,/dashboard/staff/dashboard/discord,/dashboard/api,/dashboard/settings
npm install
cp .env.example .env.local # set NEXT_PUBLIC_API_URL
npm run devType-check without building:
npm run typecheckProduction build:
npm run build && npm start| Variable | Purpose |
|---|---|
NEXT_PUBLIC_API_URL |
Base URL of the ReportBridge API |
Never commit real secrets. Only the public API URL belongs in this app's env.