Real-time system status and uptime monitoring for Spendflo services, powered by GitHub Actions and Pages.
This status page monitors the availability and performance of Spendflo's critical services:
- V2 APIs - Core API endpoints
- V3 APIs - Next-generation API services
- Dashboard - Web application interface
- Hosting: GitHub Pages with custom CNAME domain
- Monitoring: Automated health checks via GitHub Actions (runs every 24 hours)
- Data Storage: Health check logs committed directly to the repository
- Incidents: Managed through GitHub Issues with the
incidentlabel - Tech Stack: Next.js 14, TypeScript, Tailwind CSS
- GitHub Actions workflow (
health-check.yml) runs on a scheduled basis - Each service URL is tested with up to 3 retry attempts
- Response status and response time are logged
- Results are committed to
public/status/{service}_report.log - Frontend displays the last 90 days of uptime data
Services are defined in public/urls.cfg:
V2-Apis=https://api-v2.spendflo.com/health
V3-Apis=https://api-v2.spendflo.com/v3/q/health
Dashboard=https://app.spendflo.com/
Adjust the cron schedule in .github/workflows/health-check.yml:
on:
schedule:
- cron: "0 0 * * *" # Daily at midnight UTCThe application fetches data from this repository. URLs are configured in:
src/incidents/hooks/useIncidents.tsx- GitHub Issues APIsrc/services/hooks/useServices.tsx- Status log filessrc/services/hooks/useSystemStatus.tsx- Status log files
Current configuration: https://github.com/spendflo/fettle
- Go to the Issues tab
- Create a new issue describing the incident
- Add the
incidentlabel - The incident will automatically appear on the status page
Close the issue when the incident is resolved. Closed incidents are still displayed in the incident history.
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Lint code
npm run lintThe status page automatically deploys via GitHub Actions when changes are pushed to the main branch. The workflow builds the Next.js static site and publishes it to GitHub Pages.
This project is based on Fettle, an open-source status page solution.
