A modern, open-source status and monitoring platform for modern infrastructures. Built with Next.js and designed to provide real-time insights into your service health.
- Real-time Monitoring: Track service status with automatic health checks
- Beautiful Dashboard: Clean, responsive interface inspired by modern status pages
- Service Groups: Organize services into logical groups for better management
- Historical Data: View uptime statistics and incident history
- Dark Mode: Full dark mode support with system preference detection
- TypeScript: Fully typed for better development experience
- Mobile Responsive: Optimized for all device sizes
- Frontend: Next.js 16, React 19, TypeScript
- Styling: Tailwind CSS v4 with CSS variables
- Backend: Rust API (planned)
- Deployment: Vercel, Docker support
- Node.js 18+
- pnpm (recommended) or npm/yarn
- Clone the repository:
git clone https://github.com/skygenesisenterprise/aether-status.git
cd aether-status- Install dependencies:
pnpm install- Start the development server:
pnpm dev- Open http://localhost:3000 in your browser.
aether-status/
βββ app/ # Next.js App Router
β βββ components/ # React components
β β βββ OverallStatus.tsx
β β βββ ServiceCard.tsx
β β βββ ServiceGroup.tsx
β β βββ StatusBadge.tsx
β β βββ StatusPage.tsx
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions
β βββ types/ # TypeScript type definitions
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ api/ # Rust API backend
βββ public/ # Static assets
βββ .storybook/ # Storybook configuration
operational: Service is running normallydegraded: Service is running with performance issuespartial_outage: Some functionality is unavailablemajor_outage: Service is completely downmaintenance: Service is under maintenance
- StatusPage: Main dashboard component
- OverallStatus: Global status indicator
- ServiceGroup: Groups of related services
- ServiceCard: Individual service status display
- StatusBadge: Status indicator with color coding
Create a .env.local file in the root directory:
NEXT_PUBLIC_API_URL=http://localhost:8080
NEXT_PUBLIC_REFRESH_INTERVAL=30000Services are configured through the API. Each service requires:
{
id: string
name: string
description: string
status: ServiceStatus
url?: string
group?: string
lastChecked: Date
responseTime?: number
uptime?: number
}- Push your code to GitHub
- Connect your repository to Vercel
- Configure environment variables
- Deploy automatically
# Build the image
docker build -t aether-status .
# Run the container
docker run -p 3000:3000 aether-statuspnpm build
pnpm startThe frontend is designed to work with a REST API that provides:
GET /api/services: List all servicesGET /api/services/:id: Get service detailsGET /api/incidents: List recent incidentsGET /api/status: Get overall system status
The application uses CSS variables for theming. Override these in your CSS:
:root {
--primary-color: #3b82f6;
--background: #ffffff;
--foreground: #000000;
}Update the logo and branding in the StatusPage component:
<StatusPage
title="Your Status Page"
description="Monitor your services"
logo="/your-logo.png"
groups={serviceGroups}
/>We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
pnpm lint - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by modern status pages like Better Stack
- Built with Next.js and Tailwind CSS
- Icons and design patterns from the open-source community
- π§ Email: support@aether-status.com
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
Aether Status - Keeping your services transparent and reliable. π