2026 - Present
CRLO: giving shared reminders a backend owner
Moving a shared vehicle logbook from device-local notification schedules to backend-owned reminders, recipients and retry state.
React Native · Expo · Convex · Clerk · Nativewind
Visit projectProblem
A service or insurance reminder can concern several people in a shared garage. A schedule created by one phone could not represent that shared state, and depended on a device observing each change.
My role
I designed and built CRLO, a shared vehicle logbook for households, and rebuilt its reminders as a backend workflow.
Decision
I moved due-time evaluation, recipient selection and delivery state to the backend. Devices retained permission handling, push-token registration and navigation. Delivery records preserve the unresolved recipients and tokens so retries do not repeat successful work.
Result
The documented workflow records delivery status and attempts, resolves recipients from current garage membership, and cancels queued work when the underlying reminder changes. Overdue reminders follow a day 1, 3, 7, then weekly cadence rather than a daily local repeat.
Further reading
Based on the architecture article published 19 July 2026. An accepted push ticket is not proof of device delivery; the article identifies push-receipt reconciliation as remaining work.