All work

Prayer Times LK

Prayer times from ACJU, turned from monthly posters into dependable structured data.

Kind
Product
Role
Solo: pipeline, data model, web app
Period
2026
Status
Live
Stack
TypeScript, Cheerio, Vite, Cloudflare Workers

Where do official prayer times come from, and how do you turn published posters into data people can rely on?

Sri Lanka Prayer Times: the next prayer in large type, today's six times, and the month's timetable beneath.
Prayer Times LK2026

The source problem

ACJU publishes prayer times the traditional way: thirteen zone posters per month, each as an image and a PDF. That is authoritative but not machine-readable, and a wrong table sends people to prayer at the wrong time.

Pipeline

The project treats the posters as the source of truth and builds a pipeline around them: scrape the live page and extract each zone’s table, cross-check values, reconcile disagreements, and sync the result into the web app’s data.

The web app builds with Vite and deploys to Cloudflare Workers, so there is no server to babysit and the numbers shown are exactly what the pipeline last verified.

Posters are the source of truth

Rather than trusting a third-party API of unclear provenance, the pipeline reads ACJU’s own published material and keeps the mapping from zone to source file visible.

More parsing work every month, but the data lineage is defensible.

Want something like this built?

Email me