Projects / 01
Absense
Attendance intelligence for a campus of students
- Users
- 1,500+
- Daily active users
- 300+
- My role
- App engineering · Team contribution
- Scope
- Offline-first Android app
- Built with
- React Native · Expo · TypeScript · TanStack Query · NativeWind
- Platform
- Android · EAS Build
- Repository
- Private
Owned significant parts of the app. Built with others.
A note on the work,
and the choices behind it.
How it started
I found security flaws in my college’s student records system and reported them to the administration through a responsible disclosure.
After that, I reverse engineered the undocumented records API the system exposed, which made a real attendance client possible.
The product problem
Every student already had access to an attendance percentage. Nobody had an answer to the question they actually asked: could they skip tomorrow?
Absense reframes the number as a budget. Per subject, it shows how many classes you can still miss. If you are already below the line, it shows the minimum number of classes needed to recover.
Engineering
The app uses React Native 0.81 on Expo 54 with TypeScript and NativeWind. React Navigation 7 handles routing.
TanStack Query with AsyncStorage persistence makes it offline-first. That matters because campus Wi-Fi is unreliable and students open the app between classes.
Credentials sit in Expo SecureStore. FlashList and Flash Calendar keep long lists and the calendar view smooth, while Fuse.js handles subject search.
Expo Notifications provides reminders, PostHog supports product analytics, and React Native Stallion delivers OTA updates so fixes reach users without a store round trip. EAS Build handles Android releases.
Layer by layer
React Native 0.81 on Expo 54
TypeScript and NativeWind
React Navigation 7
Routing
TanStack Query with AsyncStorage persistence
Offline-first data
Expo SecureStore
Credentials
FlashList and Flash Calendar
Long lists and the calendar view
Expo Notifications, PostHog, React Native Stallion
Reminders, product analytics, and OTA updates
EAS Build
Android releases