Modern service status dashboard — built with Next.js, Tailwind, Redux, and TypeScript.
Statify helps organizations transparently communicate service uptime, incidents, and maintenance windows to users. This frontend project powers the real-time dashboard and admin interface.
- 🔐 Login/Register + token handling (JWT)
- 🛠️ Admin dashboard for managing:
- Organizations
- Services (CRUD)
- Incidents & Maintenance
- 📊 Uptime visibility per service
- 🌍 Public status page
- 🔁 Real-time updates via WebSocket
- 🎨 Clean responsive UI (dark mode)
- ⚡ Fast SPA experience (Next.js App Router)
- 🧩 Modular folder structure for scale
- 🧪 Typesafe (TS + strict mode)
- 🧠 Local caching with Redux Toolkit
- 💅 Consistent UI with Tailwind + shadcn/ui
- 🌐 Axios + interceptors for secure API communication
src/
├── app/ # App router + layouts + pages
├── components/ # Reusable UI components
├── constants/ # Static config and enums
├── features/ # Redux slices (auth, orgs, services)
├── hooks/ # Custom React hooks
├── lib/ # Axios config, utils
├── styles/ # Tailwind globals
├── types/ # Global TypeScript types
| Tool | Purpose |
|---|---|
| Next.js | Frontend framework (App Router) |
| TypeScript | Static typing |
| Tailwind CSS | Utility-first styling |
| shadcn/ui | Headless UI components |
| Redux Toolkit | State management |
| Axios | HTTP requests + interceptors |
| ESLint + Prettier | Linting & formatting |
git clone https://github.com/priyans-hu/statify-frontend.git
cd statify-frontend
npm installCreate .env.local from template:
NEXT_PUBLIC_API_BASE_URL=http://localhost:8000
NEXT_PUBLIC_WEBSOCKET_URL=http://localhost:8000/wsnpm run devVisit http://localhost:3000
| Page | Path |
|---|---|
| 📋 Service List | /{org}/dashboard |
| 🆕 Create Incident | /{org}/incidents |
| 🆕 Incident history | /{org}/incidents/all |
| 🌐 Public Status Page + Active indidents | /{org}/status |
- App Router layout with separate
dashboardandpublicviews - Redux slices for:
auth,org,services,incidents - Axios wrapper in
lib/api.tshandles token injection & error handling hooks/useAuth,useOrg,useServiceabstract logic from UI- Data displayed using
shadcn/uicomponents + icon system - Dark mode enabled via Tailwind +
classstrategy
npm run dev # Start dev server
npm run build # Production build
npm run eslint # Run ESLint
npm run format # Prettify codeDeploy via:
- Vercel (recommended)
- Netlify
- Render static site (if decoupled)
Ensure NEXT_PUBLIC_API_BASE_URL & NEXT_PUBLIC_WEBSOCKET_URL is configured with backend URL.

