Professional website monitoring and status checking platform built with modern web technologies.
Monitor your websites and APIs with real-time status checking, downtime alerts, and performance analytics. Aurora Status Checker provides enterprise-grade monitoring in a clean, intuitive interface.
๐ Live Demo: status.alvinchang.dev
- Real-time Status Checking - Monitor websites, APIs, and services
- Response Time Tracking - Track performance metrics over time
- Uptime/Downtime Detection - Automatic incident detection and recovery
- Category Organization - Group monitors by service, environment, or team
- Filtering & Search - Find monitors quickly with smart filtering
- Apple-inspired Design - Clean, professional, minimalist UI
- Real-time Updates - Live status updates without page refresh
- Responsive Design - Perfect experience on desktop and mobile
- Dark/Light Mode - Adaptive theming (coming soon)
- Status Indicators - Clear visual feedback with color-coded statuses
- Next.js 15 App Router - Latest React server components
- TypeScript - Full type safety throughout the application
- Tailwind CSS v4 - Modern, config-free styling
- Prisma ORM - Type-safe database operations
- React Query - Optimistic updates and intelligent caching
- Supabase Auth - Secure authentication and user management
- Sub-3s Page Loads - Optimized for speed
- Database Indexing - Efficient queries for large datasets
- API Caching - Smart caching with invalidation
- Background Jobs - Automated monitoring without UI blocking
Category | Technology | Purpose |
---|---|---|
Framework | Next.js 15 | Full-stack React framework with App Router |
Language | TypeScript | Type-safe development |
Styling | Tailwind CSS v4 | Utility-first CSS framework |
Database | PostgreSQL + Prisma | Relational database with type-safe ORM |
Authentication | Supabase Auth | User management and session handling |
State Management | React Query | Server state and caching |
Deployment | Vercel | Edge-optimized hosting |
- Node.js 18+
- PostgreSQL database
- Supabase account
git clone https://github.com/yourusername/aurora-status-checker.git
cd aurora-status-checker
npm install
Copy the example environment file and configure your variables:
cp .env.example .env.local
Fill in your environment variables:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/aurora_status"
# Supabase
NEXT_PUBLIC_SUPABASE_URL="your-supabase-url"
NEXT_PUBLIC_SUPABASE_ANON_KEY="your-supabase-anon-key"
SUPABASE_SERVICE_ROLE_KEY="your-service-role-key"
# Optional
GOOGLE_SITE_VERIFICATION="your-google-verification-code"
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate deploy
# (Optional) Seed with sample data
npx prisma db seed
npm run dev
Open http://localhost:3000 to see the application.
aurora-status-checker/
โโโ app/ # Next.js App Router
โ โโโ (auth)/ # Authentication routes
โ โโโ (dashboard)/ # Protected dashboard routes
โ โโโ api/ # API endpoints
โ โโโ globals.css # Global styles
โโโ components/ # React components
โ โโโ ui/ # Base UI components
โ โโโ auth/ # Authentication components
โ โโโ monitors/ # Monitor-specific components
โโโ lib/ # Utility libraries
โ โโโ auth.ts # Authentication helpers
โ โโโ prisma.ts # Database client
โ โโโ hooks/ # Custom React hooks
โโโ prisma/ # Database schema and migrations
โโโ public/ # Static assets
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
# Code Quality
npm run lint # Run ESLint
npm run typecheck # Run TypeScript checks
npm run check # Run both lint and typecheck
# Database
npx prisma generate # Generate Prisma client
npx prisma migrate dev # Create and apply migration
npx prisma studio # Open database browser
model User {
id String @id @default(cuid())
email String @unique
monitors Monitor[]
}
model Monitor {
id String @id @default(cuid())
name String
url String
userId String
categoryId String?
checks Check[]
category Category? @relation(fields: [categoryId], references: [id])
user User @relation(fields: [userId], references: [id])
}
model Check {
id String @id @default(cuid())
monitorId String
status CheckStatus
statusCode Int?
responseTime Int?
checkedAt DateTime @default(now())
monitor Monitor @relation(fields: [monitorId], references: [id])
}
- RESTful endpoints for CRUD operations
- Server-side authentication with Supabase
- User-scoped data for security
- Optimistic updates for better UX
- Connect your GitHub repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically on every push to main
# Build the application
npm run build
# Start production server
npm run start
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow TypeScript strict mode
- Use conventional commit messages
- Ensure all tests pass
- Update documentation for new features
- Real-time monitoring
- Category filtering
- Performance optimization
- Mobile responsiveness
- Email notifications
- Slack/Discord integrations
- Custom monitoring intervals
- Historical analytics
- Status page generation
- Multi-user teams
- API rate limiting
- Export capabilities
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Next.js
- Styled with Tailwind CSS
- Data management by Prisma
- Authentication by Supabase
- Deployed on Vercel
Aurora Status Checker - Professional monitoring made simple.