Inspiration
Living in Cyprus comes with a unique set of weather realities: blazing Mediterranean sunshine, rapid shifts between coastal humidity and Troodos mountain chills at 1,700 meters, seasonal dust storms blowing in from the Sahara and Middle East, and extreme summer UV indices.
Yet, most people living on or visiting the island are stuck between two frustrating extremes:
- Generic global weather apps (Apple Weather, AccuWeather, Google) that treat Cyprus as a single uniform climate, blur mountain elevations with coastal resorts, and offer vague percentage probabilities rather than answers.
- Outdated official portals that are clunky on mobile devices, difficult to navigate, and often limited to a single language.
Furthermore, Cyprus is home to a diverse, multilingual community—Greeks, Turks, English-speaking residents, and international expats. I wanted to build Ο Καιρός (okairos.cy): a fast, beautiful, and transparent weather service designed specifically for everyday life in Cyprus. We set out to treat the entire island as one cohesive geographic environment, while turning raw meteorological data into immediate, practical answers for residents.
What it does
Ο Καιρός is a Cyprus-focused weather utility that helps residents and visitors make everyday decisions in under five seconds.
Key capabilities include:
- Whole-Island Coverage with Elevation Honesty: Covers 11 primary launch locations across Cyprus (Nicosia, Limassol, Larnaca, Paphos, Famagusta, Kyrenia, Troodos at ~1,700m, Ayia Napa, Protaras, Paralimni, and Polis). Each location is tied to an exact disclosed forecast point and elevation, preventing generic citywide assumptions.
- Deterministic, Explainable Activity Guidance:
- Car Wash Verdict: A strict binary
Yes/Noanswer. AYesguarantees a suitable wash window followed by at least 24 consecutive hours free of rain or airborne dust risk. - Beach Window: Identifies safe, continuous daylight windows while excluding dangerous periods with an Extreme UV Index (11+).
- Sun Protection Windows: Clear hourly intervals indicating when UV exposure requires protective action under cited health guidelines.
- Car Wash Verdict: A strict binary
- Radical Honesty: Station Observations vs. Model Estimates: Unlike commercial apps that disguise algorithmic simulations as "live readings," Ο Καιρός strictly distinguishes between verified physical ground station measurements (from the Cyprus Department of Meteorology) and model-derived estimates (Open-Meteo).
- Authoritative Severe Weather Warnings: Direct integration with MeteoAlarm, preserving official severity levels, valid time windows, affected areas, and official government wording without unverified machine translations.
How I built it
Ο Καιρός is architected for maximum speed, high reliability, and zero visual layout shifts:
- Frontend & SSR Framework: Built using Astro configured for server-side rendering (SSR).
- Edge Storage & Caching Layer:
- Cloudflare Workers KV: Powers instant edge reads for current forecast snapshots, normalized station observations, and active official warnings.
- Cloudflare D1: Serves as an immutable audit log and historical archive. Every forecast ingest creates an immutable "Forecast Edition", recording exactly what was predicted at that point in time for future verification against physical station data.
- Cloudflare Scheduled Triggers (Cron): Orchestrates background ingestion workflows—checking official warnings and station observations every 10 minutes, and refreshing upstream numerical weather prediction models every 3 hours.
- Data Sources:
- Forecast, hourly intervals, UV radiation, and Saharan dust forecasts from Open-Meteo.
- Ground station observations and metadata catalog from the Cyprus Department of Meteorology via the Cyprus National Open Data Portal
- Severe weather alerts from MeteoAlarm.
- Design & Typography ("Mediterranean Glass"):
- A bespoke design system inspired by the Cyprus landscape: limestone paper surfaces, sea-ink typography, and sun-warmed copper accents.
Challenges I ran into
- Matching Ground Stations with Forecast Points: Physical weather stations in Cyprus have differing elevations, microclimates, and reporting frequencies. I had to develop strict heuristics for distance, elevation delta, and freshness. If a physical station is too far, at a substantially different altitude, or stale, the app transparently downgrades to a clearly labeled "Current Estimate" rather than displaying inaccurate station data.
- Handling Extreme Regional Microclimates: The elevation change between coastal Limassol and Mount Olympus in Troodos (0m to nearly 1,950m) causes dramatic temperature drops (lapse rates) and distinct precipitation patterns. Disclosing exact coordinates and elevations rather than generic regional averages was essential to keep forecasts trustworthy.
Accomplishments that I'm proud of
- Sub-Second Edge Performance: Delivering full server-rendered pages directly from Cloudflare's edge network in tens of milliseconds, with a lightweight footprint and stellar Core Web Vitals.
- Explainable, Actionable Advice: Transforming raw meteorological tables into answers to everyday resident questions ("Can I wash my car today?", "When is the beach safe from burning UV?").
- Distinctive Visual Identity: Crafting the "Mediterranean Glass" design token system that feels atmospheric, clean, and unmistakably tied to Cyprus without relying on heavy frontend UI libraries or downloaded fonts.
What I learned
- Edge Database Patterns: Gained deep hands-on experience combining Cloudflare Workers KV (for sub-millisecond edge caching) with Cloudflare D1 (for relational, transactional audit history) inside scheduled cron tasks.
- Meteorological Nuances of the Eastern Mediterranean: Learned how Mediterranean depressions, seasonal heatwaves, thermal inversions, and Saharan dust plumes interact with Cyprus's topography.
What's next for OKairos CY
- Web Push Notifications: Opt-in alerts for critical MeteoAlarm warnings and severe Saharan dust events.
- Organic Search Growth: Continuing to establish search authority across Cyprus to become the definitive destination for anyone searching
καιρός.
Built With
- astro
- openmeteo


Log in or sign up for Devpost to join the conversation.