CrowMate Intranet
Internal staff portal for CrowMate Studio — Headless Hazard.
Quick Start
npm install
npm run dev
The intranet runs on http://localhost:5174 (port 5174 to avoid conflicts with the public site on 5173).
Demo Accounts
| Account | Role | |
|---|---|---|
| Kestrel (Admin) | kestrel@crowmate.dev |
dev + admin |
| Vesper (Staff) | vesper@crowmate.dev |
com |
Regular user accounts are blocked from intranet access.
Project Structure
src/
App.tsx # Router (login + intranet routes)
main.tsx # Entry point
index.css # Design tokens & global styles
contexts/
AuthContext.tsx # Auth state (staff-only login)
components/
layout/
IntranetLayout.tsx # Sidebar + main content layout
shared/
ProtectedRoute.tsx # Route guard (auth + staff check)
PageLoader.tsx # Loading spinner
pages/
LoginPage.tsx # Staff login page
intranet/
IntranetDashboard.tsx # Overview stats & nav tiles
IntranetBugs.tsx # Bug triage (filter, assign, notes)
IntranetFeed.tsx # Staff-only activity feed
IntranetEvents.tsx # Create/manage events & polls
IntranetUsers.tsx # User management (promote/ban)
IntranetModeration.tsx # Forum moderation (pin/lock/delete)
data/
mockData.ts # All mock data
types/
index.ts # TypeScript interfaces
utils/
format.ts # Date formatting helpers
Scripts
npm run dev— Start dev servernpm run build— Type-check + production buildnpm run lint— Run ESLintnpm run preview— Preview production build