A fast, modern website uptime and performance monitoring tool built with React, TypeScript, and Cloudflare Workers.
- β‘ Real-time Website Monitoring - Check any website's uptime and performance instantly
- π Performance Metrics - Get detailed insights including response time, TTFB, SSL status, and health scores
- π― Smart Classification - Automatic categorization of issues (DNS, SSL, timeouts, server errors, etc.)
- π Health Scoring - Comprehensive health scores based on multiple performance factors
- π Redirect Tracking - Full redirect chain analysis with detailed hop-by-hop information
- πΎ Recent Checks - Local storage of recent website checks for quick access
- π Dark Mode - Beautiful dark/light theme toggle
- π± Responsive Design - Works perfectly on desktop and mobile devices
- β‘ Edge Computing - Lightning-fast API powered by Cloudflare Workers
- π Caching - Smart caching for improved performance
βββββββββββββββββββ HTTP/HTTPS βββββββββββββββββββ
β β βββββββββΊ β β
β Frontend β β Cloudflare β
β (React/Vite) β βββββββββ β Workers API β
β β JSON β β
βββββββββββββββββββ βββββββββββββββββββ
- Frontend: React 18 + TypeScript + Vite + Tailwind CSS
- API: Cloudflare Workers with edge caching
- State Management: React hooks + Local Storage
- Styling: Tailwind CSS with dark mode support
- Icons: Lucide React for beautiful iconography
UpPing/
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ Header.tsx
β β β βββ Footer.tsx
β β β βββ ResultCard.tsx
β β β βββ RecentChecks.tsx
β β βββ hooks/ # Custom React hooks
β β β βββ useTheme.ts
β β β βββ useLocalStorage.ts
β β βββ lib/ # API client and utilities
β β β βββ api.ts
β β βββ pages/ # Page components
β β β βββ Home.tsx
β β β βββ Health.tsx
β β β βββ About.tsx
β β βββ App.tsx
β β βββ main.tsx
β βββ package.json
β βββ vite.config.ts
β βββ tailwind.config.js
βββ api/ # Cloudflare Workers API
β βββ src/
β β βββ index.js # Main worker script
β βββ package.json
β βββ wrangler.jsonc # Cloudflare Workers config
βββ README.md
- Node.js (v18 or higher)
- npm or yarn
- Wrangler CLI (for API deployment):
npm install -g wrangler
-
Clone the repository
git clone https://github.com/vxrachit/UpPing.git cd UpPing -
Install frontend dependencies
cd frontend npm install -
Configure environment variables
# Copy the example environment file cp .env.example .env # Edit .env and set your API base URL VITE_API_BASE_URL=https://your-worker-domain.workers.dev/
-
Start the development server
npm run dev
The frontend will be available at
http://localhost:5173
-
Install API dependencies
cd api npm install -
Start local development
npm run dev
The API will be available at
http://localhost:8787 -
Deploy to Cloudflare Workers (optional)
# Login to Cloudflare (first time only) wrangler login # Deploy the worker npm run deploy
GET /api/healthResponse:
{
"ok": true,
"version": "1.0.0",
"timestamp": "2025-11-13T10:30:00.000Z"
}GET /api/check?url={website}Parameters:
url- The website to check (with or without protocol)
Example:
GET /api/check?url=google.comResponse:
{
"requestedUrl": "https://google.com",
"finalUrl": "https://www.google.com/",
"redirected": true,
"redirectCount": 1,
"statusCode": 200,
"responseTime": 245,
"ttfb": 180,
"sslStatus": "valid",
"classification": "Success",
"reason": "Website is healthy and responding normally",
"advice": null,
"healthScore": 95,
"cached": false,
"checkedAt": "2025-11-13T10:30:00.000Z"
}- Success - Website is healthy and responding normally
- client_error - 4xx HTTP status codes
- server_error - 5xx HTTP status codes
- timeout - Request timeout or network timeout
- invalid_domain - DNS resolution failed or invalid domain
- dns_error - DNS lookup issues
- ssl_error - SSL/TLS certificate problems
- network_error - General network connectivity issues
- unknown_error - Unclassified errors
- Response Time - Total time to complete the request
- TTFB (Time to First Byte) - Server response latency
- Health Score - Composite score based on multiple factors
- SSL Status - SSL/TLS certificate validation
- Content Type - Response content type detection
The system automatically categorizes issues to help you quickly understand what's wrong:
- DNS resolution problems
- SSL certificate issues
- Server errors vs client errors
- Network timeouts
- Invalid domains
Get detailed information about redirect chains:
- Complete redirect path
- Number of redirects
- Final destination URL
- Performance impact of redirects
- Automatic saving of recent website checks
- Quick access to previously checked URLs
- Local storage for privacy
Frontend:
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run typecheck # TypeScript type checkingAPI:
npm run dev # Start local development
npm run deploy # Deploy to Cloudflare Workers
npm test # Run testsFrontend (.env):
VITE_API_BASE_URL=https://your-api-domain.workers.dev/Frontend:
- React 18 - Modern React with hooks and concurrent features
- TypeScript - Type safety and better developer experience
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- Axios - HTTP client for API requests
- Lucide React - Beautiful icon library
API:
- Cloudflare Workers - Edge computing platform
- Wrangler - Cloudflare Workers CLI and development tool
- Vitest - Fast unit test framework
Build the frontend for production:
cd frontend
npm run buildDeploy the dist/ folder to your preferred hosting platform:
- Vercel:
npx vercel --prod - Netlify: Drag and drop the
dist/folder - GitHub Pages: Use GitHub Actions
- Cloudflare Pages: Connect your repository
Deploy to Cloudflare Workers:
cd api
wrangler login # First time only
npm run deployWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow the existing code style
- Add TypeScript types for new features
- Test your changes thoroughly
- Update documentation as needed
- Keep commits focused and atomic
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help:
- π§ Email: mail@vxrachit.is-a.dev
- π Issues: GitHub Issues
Made with β€οΈ by vxrachit