Skip to content

Octane

A fuel-price intelligence platform for Sri Lanka — a decade of price revisions, trip-cost tools, embeddable widgets, and a no-auth public API, all kept current by automation that runs itself.

octane-smoky.vercel.app
octane-smoky.vercel.app

Live demo

Octane

Ten years of a country's fuel prices, with a free API on top.

FastAPIPostgreSQLReact 18

The Problem

Fuel prices in Sri Lanka move with policy and currency, and everyone — commuters, delivery businesses, small fleets — feels every revision. But the history is scattered across news reports and press releases. There's no single place to see the trend, compare, or plan a trip's cost.

Octane turns a stream of one-off announcements into queryable, historical, reusable data — and then gives it away through an open API so anyone else can build on it too.

The measure of a data product isn't the dashboard. It's whether the data stays correct when nobody's watching it.

The System

A FastAPI backend on Fly.io keeps a Postgres record of every price revision; a React front end on Vercel renders history, a trip-cost calculator, global comparisons, and email alerts. The whole thing stays current through fully automated operations: a daily GitHub Actions run scrapes the latest prices, dispatches alerts, and updates the record — no human in the loop.

Fig. 1 — Automated daily pipeline, from source to public API.

GitHub Actionsdaily 8am
Scrape + storeFastAPI · Postgres
Alertsemail dispatch
Public API + widgetsno key needed

The Build

Automation is the product, not a chore around it. Because scraping, alerting, and CI all run in GitHub Actions, the operational cost is effectively zero and the data can't silently go stale — the pipeline either runs and updates, or fails loudly.

The Proof

Fig. 2What's live and public.
10 yrs
price revisions
0
API keys required
daily
automated scrape
LIVE
on Vercel

Up to a decade of revision events with delta indicators, a free REST API and embeddable widget, and a daily automated pipeline — Octane is featured on Suven's profile as a working reference for how he builds data products: reliable data first, kept honest by CI.

Margin Notes

  • What broke first: brittle scraping. Source formats change without warning; the pipeline needed to fail loudly and skip a bad day rather than write garbage into a ten-year record.
  • What I'd redo: version the API from day one. A public, keyless API is a contract — the moment someone embeds a widget, the response shape is frozen.
  • What shipped anyway: the free API. It would have been easier to keep the data private; making it open is what turns a dashboard into infrastructure.

Next — 04

Dinaya