Back
Year
2026
Tech & Technique
Cloudflare Workers, Supabase, Server-Side Rendering, Zero-JS HTML & CSS, PWA, i18n / RTL
Description
A status monitor for the free-tier projects people put their name on: portfolio sites, graduation projects and first prototypes. It is built around one distinction — a slow free-tier wake-up is not an outage — so instead of a single red downtime number it names the state of each watched Supabase project or Render service in a sentence and shows the reading behind it.
Key Features:
Technical Highlights:
Key Features:
- 🚦 Seven-State Classification: Every service resolves to Working, Starting up, Paused by Supabase, Suspended by Render, Not responding, We couldn't check, or Waiting for first check
- ⏱️ Cold Start Separation: Days when a sleeping free service woke slowly are drawn with amber hatching and labeled Starting up, never written into downtime
- 🔍 Honest Unknowns: When a paused project and a broken database look identical from outside, it reports We couldn't check and falls back to the last confirmed reading
- ⏳ Instance-Hour Projection: A dashboard tile projects the month against Render's 750 free workspace hours, captioned as an estimate rather than a Render reading
- 🧮 Public Hours Calculator: An account-free page comparing 5, 15, 30, 60 and 120 minute intervals against the 750 hour allowance, calculated from the current month's real length
- 📊 Service Dashboard: Summary tiles for services watched, items needing attention and free instance-hours, above one card per service with state pill, host, latest response time and a 7 day chart
- 📈 24-Hour Timeline: One row per service across hour ticks, with a legend covering awake, asleep, woke slowly, stopped, suspended by Render, no record, and checks that could not tell
- 📄 Evidence Table: The target page lists raw readings as they came back, under When, State, Cause, Code and Elapsed columns
- 🔐 Least-Privilege Setup: A project is added with four values from one Supabase settings page using the publishable anon key — nothing installed, no repository access, and the service_role key explicitly refused
- 📧 Sentence-Based Alerts: The free tier includes email alerts describing what changed and when, with Telegram published on the site as planned
- 📜 Gap-Aware History: Recorded state changes each carry the cause captured at the time, with an explicit mark wherever nothing was being watched
- 🆓 Free-Tier Product: 3 projects, 5 minute checks, all seven states, 7 days of history and the hours projection, with no card fields anywhere and the paid tiers published as a plan
Technical Highlights:
- Built and deployed the entire application on Cloudflare Workers, server rendering every page
- Shipped the interface with zero client-side JavaScript, drawing the charts, timeline strips and state pills in HTML and inline CSS
- Created the response-time charts by hand on a logarithmic 0.1-60 s scale, without a charting library
- Implemented every Supabase check as a real one row database read, matching how Supabase decides to pause a project
- Scheduled checks every 5 minutes and exposed check freshness on the dashboard, with the exact UTC timestamp in the title attribute
- Developed a full English and Arabic interface with RTL layout, switched by a lang query parameter and a header toggle
- Made the app installable as a PWA, added a site-wide reduced motion preference, and published a health endpoint linked in the footer
- Hosted the tool's own database on a free Supabase project — the same plan and the same pause window it watches for its users
My Role
Full-Stack Developer (Own Product)
Designed, built and shipped the entire product:
Designed, built and shipped the entire product:
- 💡 Product Definition: Framed the product around one distinction, that a cold start is not an outage, and made Starting up a first-class state
- ☁️ Cloudflare Workers Build: Built and deployed the whole application on Cloudflare Workers, server rendering every page with no client-side JavaScript
- 🚦 State Model: Designed the seven-state classification, the cause recorded with every reading, and the rules for reporting an unknown state
- 🗄️ Data Layer: Built persistence on a free Supabase project and made every check a real one row database read
- 🔒 Accounts & Key Handling: Implemented sign-in, the signed-in dashboard and the add-target form that asks only for the publishable anon key
- 📊 Data Visualization: Hand-built the log-scale response charts, the 24-hour timeline strips and the state pills in HTML and inline CSS
- 🧮 Hours Engine: Wrote the instance-hour projection and the public hours calculator, calculated from the current month's real length
- 📄 Evidence Trail: Recorded the cause, status code and elapsed time of every check and surfaced them raw on the target page
- 🌍 Localization: Implemented the full English and Arabic experience with RTL layout and URL-driven language switching
- 📱 PWA & Accessibility: Made the app installable from the dashboard header and added the site-wide reduced motion preference
- 🎨 UI Design: Created the dark, high-contrast visual language with its lime accent
- 📝 Product Copy: Wrote every string in both languages, including the seven state names and the sentences that explain them