You insure people who get dengue in Bali and crash scooters in Thailand. Those are the exact moments when someone is on a borrowed phone, on a network that barely works, filing a claim that actually matters.
I am Cyril. I build products end to end, design and code, from Buea in Cameroon. For six years my constraint has been the one your users hit occasionally and mine hit daily: the connection is not there, and the software still has to work. So rather than describe it, here it is.
Go offline, file two or three with a receipt, then reload this page. They are still there. Then go poor and watch them fight their way through.
Every claim gets its id on the device before the network is involved. That id is the idempotency key, so a retry can never create a second claim.
Claims and their photos are written to IndexedDB on the device. Close the tab, lose the phone signal, reload. Nothing is in memory that would die with the page.
Poor mode makes requests slow and half of them fail, which is what a roadside in Thailand feels like. Each failure backs off and retries with the same key. The page also listens to the real online and offline events.
Oldest first, one at a time. Queued and received are different words on screen because they are different truths, and a person who filed three claims sees three claims in the order they lived them.
I designed and built eStudyUniverse, an e-learning platform and mobile app used by more than 10,000 students in real schools here. It had to work fully offline on cheap Android phones, because students here lose connectivity for days at a time, not minutes. That single requirement shaped nearly every architecture decision in the product, and I lived with those decisions for years afterwards rather than handing them over.
I also built ClarioScore, a rent reporting platform, from an empty repository to paying customers. Identity verification, monthly submissions, a landlord portal, bureau reporting and subscriptions. And I run Cyprograms, a small studio that has delivered more than 100 products, which is where I learned that the architecture you choose is the architecture you support at 2am.
I should be straight about the gaps rather than let you find them. Astro and SCSS Modules I have not shipped; my front end is React, Next.js, TypeScript and Tailwind. GraphQL I have consumed but my API work is mostly REST. Cloudflare and Railway are new to me; I deploy on Vercel, Google Cloud and AWS. None of those are conceptual leaps, but they are real, and you should price them in.
I am in Buea, Cameroon, working from CET, which is UTC+1. That covers European hours with a clean overlap into US mornings. I can be engaged as a contractor or through an EOR, so there is no entity setup on your side.
cyrilkimbi@gmail.com
github.com/KimTechpreneur
cyprogram.com