Absir Supervisor Platform
The web platform a volunteer team used every day to run a 14-day behavior change program.
I led this platform end to end: the requirements, the architecture and engineering decisions, testing every release, and deployment.
The problem
Absir (أَبصِر, “see clearly”) is a program that helps young people cut excessive phone use. Every participant checks in daily, and supervisors follow each one. The program runs 14 days; the pilot ran 13.
The team already ran the program from a Google Sheet. Supervisors needed one place, on their phones, to see who had reported, enter reports, and keep scores right, without breaking the sheet the whole team depended on.

Constraints
- A volunteer team with no budget, so everything runs on free tiers.
- The team already worked in Google Sheets and needed to keep doing so.
- Supervisors work from their phones, so mobile comes first.
- Participant data is sensitive: only pseudonyms leave the sheet, and only the team can sign in.
Decisions and why
Keep Google Sheets as the database. The team keeps its familiar tool and nothing has to migrate. The cost: a sheet has no transactions, so data integrity became the platform’s job.
Read columns by their header name, not their position. The team edits the sheet freely. Reordering columns doesn’t break the platform.
A version on every row. If two supervisors edit the same participant at the same time, the second save is rejected with a 409 instead of silently overwriting the first. Try it:
Supervisor A
Read at version 12
Yesterday's use 4:10
Google Sheet, row P04
4:40
version 12
Supervisor B
Read at version 12
Yesterday's use 5:05
Verify after every save, and log every write. If something goes wrong, it shows up right away and can be traced.
Sign in with Cloudflare Access. The team gets a one-time code by email, so there are no passwords to store or leak.
Sheets API through a service account, with the JWT signed (RS256) using WebCrypto inside the Worker, with no extra libraries.
An assistant built on the Gemini API that only ever sees pseudonyms, and switches to a fallback model automatically when the main one is under load.
The platform has six pages: Today, Participants, Tasks (a Gantt chart), Leaderboard, Closing and Assistant. 64 automated tests cover the logic.
Results, honestly
- The team adopted the platform officially on 1 October 2026 after a live trial.
- In the pilot, 12 of 13 participants completed the program, 152 of 156 daily reports came in (97%), and 11 of 12 would recommend it.
- Average daily phone use stayed almost flat: 7:02 before, 7:10 in the independence week. 3 of 12 cut an hour or more.
- The pilot proved the program runs well. It is too small to show it changes behavior.
What I learned
A spreadsheet works as a database until two people write at the same time. Most of the engineering went into the cases where things go wrong, not the happy path.