Website and API monitoring platform with real-time uptime tracking
Features • Tech Stack • Architecture • Getting Started • Development • Roadmap • Contributing
UptimeCheck is a robust monitoring solution that continuously tracks and reports the uptime status of websites and APIs. It provides real-time monitoring, detailed analytics, and instant alerts for downtime detection, ensuring seamless application health tracking.
- 🔄 24/7 Real-time Monitoring – Continuously checks website and API availability
- 📊 Intuitive Dashboard – Clear visualization of monitored services with performance metrics
- 🚨 Instant Alerts – Get notified via email, Slack, or webhook integrations
- 📈 Advanced Analytics – Track response time, uptime percentage, and historical trends
- 🌍 Distributed Architecture – Deploy validators across multiple regions for global monitoring
- 🔌 WebSocket Communication – Enables real-time status updates between validators and the hub
- 🔒 Secure Authentication – Uses Clerk for seamless user management
- Next.js 14 with React 19
- Tailwind CSS for modern UI styling
- Framer Motion for animations and transitions
- Shadcn UI for beautiful components
- Clerk for authentication and user management
- Bun – High-performance JavaScript runtime
- Express.js – API server handling requests
- Prisma – Database ORM
- PostgreSQL – Scalable relational database
- WebSockets – Real-time communication between services
UptimeCheck follows a microservices architecture to ensure modularity and scalability.
uptimecheck/
├── apps/
│ ├── api/ # REST API service for client operations
│ ├── frontend/ # Next.js web application
│ ├── hub/ # Central hub for validators and data aggregation
│ └── validator/ # Service responsible for uptime checks
└── packages/
├── common/ # Shared types and utilities
├── db/ # Database client and schema
├── eslint-config/ # Shared ESLint configurations
└── tsconfig/ # Shared TypeScript configurations
- Node.js 18+
- Bun 1.0+
- PostgreSQL database
- Clerk account for authentication
# Clone the repository
git clone https://github.com/AAYUSH412/uptimecheck.git
cd uptimecheck
# Install dependencies
bun install
# Set up environment variables
cp .env.example .env
# Initialize the database
cd packages/db
bunx prisma migrate dev
bun run seed
# Start the development servers
cd ../..
bun run dev
Visit http://localhost:3000
to view the application.
# Start the frontend
bun run dev --filter=frontend
# Start the API server
bun run dev --filter=api
# Start the validator
bun run dev --filter=validator
# Start the hub
bun run dev --filter=hub
- Navigate to the Dashboard
- Click the "Add Website" button
- Enter the website URL and configuration details
- Save to begin monitoring
- ✅ Initial version with core features
- 🚧 Mobile app for on-the-go monitoring
- 🚧 Integration with more notification channels (Slack, PagerDuty, OpsGenie)
- 🚧 Advanced SSL certificate monitoring
- 🚧 Custom webhook support
- 🚧 User roles and team collaboration
- 🚧 API documentation with Swagger
We welcome contributions! Follow these steps to contribute:
- Fork the repository
- Create a new feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add some amazing feature'
- Push to your branch:
git push origin feature/amazing-feature
- Open a Pull Request
See our contributing guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to the following technologies that made this project possible:
- Next.js – React framework for web applications
- Clerk – Authentication as a service
- Prisma – ORM for PostgreSQL
- TailwindCSS – Utility-first CSS framework
- Bun – JavaScript runtime for high-performance applications
Thanks for checking out UptimeCheck! If you like this project, consider giving it a ⭐ on GitHub! 🚀