Inspiration
My father had diabetes since his teenage years.
Then over the last couple of years an aunt was diagnosed, and then an uncle, both type 2, and what had been a fact about my family turned into a question about me. How much of this do I get handed? Would I even notice if it had started?
I had no reason to think I was fine except that I felt fine.
The job doesn't help. I write backend code, so I sit down in the morning and some days I don't really get up. On-call weeks are worse: awake at 3am for a page, whatever food arrives fastest, no walking at all.
I thought about booking a blood test for about eighteen months. I never booked it. What I did instead was open twenty tabs of research papers.

That's a Harvard team's analysis of India's National Family Health Survey, three quarters of a million people. [1] (The 42% is from the 2015–16 round; later work puts it anywhere from 25% to 53% depending on method. [3][4] All of them are millions of people.)
I expected the next page to tell me these were people too poor or too far from a hospital in india. It said the opposite.

Nearly half already had care or insurance sitting there unused. Where I live, in the south, access is better than average and the undiagnosed rate is higher.
They could have gone. Nothing made them go. Which was my own situation, described back to me in a table.
Nobody wakes up and decides to ignore their health. You just have a week, and then another one, and nothing in any of them says today's the day.
Somewhere around tab fourteen I found the part that was already solved, published in 2005, a few kilometres from where I live.

Four questions. No blood, no fasting, no appointment. [2] Two of the four inputs were the exact things I'd been worrying about, which is a strange feeling to get from a PDF.

It flags plenty of people who turn out fine, and I've come to think that's the point. If a screening tool has to be wrong, you want it sending someone for a test they didn't need rather than telling them they're fine when they aren't.
Validated, free, used in camps across the country, and sitting in a journal where nobody who needs it will ever see it.
I still didn't want to ship a quiz. A score with no next step is just anxiety with a number on it, and I knew that one from the inside. So: every result has to lead somewhere. To a doctor and a blood test if the band warrants it, and to ninety days of habits either way.
What it does
You answer four things you already know about yourself. Two minutes later you get your number, your band, and which answers drove it, so it's something you understand rather than a verdict. If the band warrants it, the app tells you to see a doctor and get a confirmatory blood test. That part is free and always will be.
If you want to act on it, there's a ninety-day plan built from your own answers, with daily tasks and milestones at 30, 60 and 90. You tick habits off and let Health Connect fill in the walking and sleep. At day 90 you retake it and see both results side by side.
.png)
The article and video library wasn't in my plan. It went in because I kept meeting people who weren't ready to be screened at all — they'd heard the word diabetes their whole life and still couldn't tell you what a risk factor is, or that you can be thin and still be at risk. They needed someone to explain it first, calmly. So it's free, and it's there whether or not you take the questionnaire.
The score is free and stays free. The plan is free for two weeks, then ₹499 every three months.
Glux isn't a medical device and the questionnaire isn't a test. It's not a substitute for a blood test either. It's the thing that tells you a blood test is worth your afternoon.
How I built it
Nights and weekends, alongside a full-time job. I built the product; Meena ran growth. React Native and Expo on Android, Cloud Run behind it, Firestore and Cloud SQL, Vertex AI writing the plan.
The decision I care most about: the score is never model-generated. The IDRS is a published scoring table, computed on the server and returned exactly as the instrument defines it.
$$S = A + W + P + F, \qquad S \in [0, 100]$$
The model shapes the plan. It never touches the number. If something has to be deterministic, don't let a model near it.
Health Connect sync is read-only and opt-in, and with background permission it keeps reading while the app is closed so a milestone notification fires when you actually hit 5,000 steps. That notification is assembled on your phone and goes nowhere.
Billing is RevenueCat: one product, ₹499 every three months, two-week trial on the same SKU, and the renewal costs exactly what the first period cost. Notifications go through OneSignal. Android freezes a channel's sound when the channel is created, which I found out after changing it and hearing the old one for three days, so channels are versioned now (habits-v1).
Challenges I ran into
I built the wrong product first, and it was good. The first version read your lab report. Upload the PDF, pull out the HbA1c, explain it in plain English. All on the phone, no backend, no account, and a line I was proud of: your report never leaves your phone.
A few weeks in, it landed on me. A product that reads your lab report only reaches people who already went and got one. They've done the hard part. The people I'd spent a month reading about hadn't thought about it once. My elegant, private app was solving the easy half beautifully.
Rebuilding around the questionnaire meant a server, an account, an LLM, and killing that privacy line. I rewrote every surface, grepped the built site for each dead phrase to make sure none survived, and then spent a while earning back a smaller, truer version of the claim: your health data stays in India, and it's never sold.
Two hundred people installed it. Not one signed up. I put ₹1,000 into Google Ads to see if anyone outside my contacts would care. Installs came in at about five rupees each, and I felt great for roughly four hours.
Then I checked accounts created. Zero. Not a low number. Zero.
Every one of them stopped at the welcome or login screen. When I finally opened my own app the way a stranger would, I could see why. Someone taps an ad, waits out a download, opens it, and the first thing I do is hand them a form. Name, email, password, now go check your inbox for a code. For an app they'd heard of four seconds ago, about a disease they're a bit afraid of. Of course they left. I would have left.
The fix was almost entirely deleting things: one line explaining what this is, a Sign in with Google button, nothing else.
The paywall I kept re-litigating. The obvious move here is to show someone a worrying number and charge for the response to it. It's also the most profitable shape this product could take, which is why I circled it for a week. In the end, the score screen is complete on its own, doctor prompt included, before a purchase decision appears anywhere. If I ever sell someone the way out of a worry I created, the whole thing was pointless.
Saying what I mean without saying what I can't. Internally, this is a prediabetes prevention coach. In public, it can't say prevent, reverse, diagnose, detect, or even test. Google Play's health policy applies, and review teams read your marketing site too. I kept a banned-and-approved phrase table open and wrote against it every time. It was the most frustrating part of the build, and the copy came out better for it.
Reminders that reached exactly the wrong people. A 90-day plan only works if people are still opening it on day 60, so reminders matter more here than almost anywhere. My first campaigns targeted tags like "day 42 of the plan." Then I looked at the dashboard: 33 of my 36 push subscribers hadn't opened the app in two days.
The app can only update a tag while it's open. So everyone who'd drifted away was frozen at whatever day they last opened it. A "day 42" campaign would reach the three people who opened the app that morning, the ones who didn't need a nudge, and miss the 33 who did. It would have worked perfectly in testing and failed at the only job it had.
The fix was to tag facts instead of countdowns. The app writes the date a plan started, once, and the server does the arithmetic: "day 90 today" means "started 89 days ago." A date is as true on a phone last opened three weeks ago as on one opened this morning.
Everything else. Reminders that survive Xiaomi and Oppo battery optimisation. Android's notification permission dialog, which pops up in the first second after login, right on top of the questionnaire's entrance animation, and froze a question mid-fade, unreadable. A DPDP-aligned privacy policy, terms, a brand book, the store listing, screenshots and ads. Meena took on the content, the Instagram and the ads, which is the only reason any of this got done by September 30. I did the rest after work.
What I learned
Build for the people who haven't gone yet, not the ones who already went. That mistake cost a month and was worth it.
Keep the deterministic part deterministic. People trust the score because it's a published table and enjoy the plan because it's generated for them.
And the ₹1,000 lesson, which isn't about a login screen. People give you about four seconds for something they're quietly afraid of. Every extra field is you spending those four seconds on yourself instead of on them.
I can't do anything about my dad. This is the version of doing something that was available to me.
What's next
An in-app assistant for plan questions. More awareness content, in Tamil as well as English, because the people I most want to reach aren't reading health articles in English. And a dietitian-reviewed tier, where a registered dietitian adjusts the plan and checks in at milestones.
References
- Claypool KT, Chung M-K, Deonarine A, Gregg EW, Patel CJ. Characteristics of undiagnosed diabetes in men and women under the age of 50 years in the Indian subcontinent: NFHS-4/DHS 2015–2016. BMJ Open Diabetes Research & Care 2020;8(1):e000965. doi:10.1136/bmjdrc-2019-000965 — https://pubmed.ncbi.nlm.nih.gov/32098896/
- Mohan V, Deepa R, Deepa M, Somannavar S, Datta M. A simplified Indian Diabetes Risk Score for screening for undiagnosed diabetic subjects. Journal of the Association of Physicians of India (JAPI) 2005;53:759–763. Madras Diabetes Research Foundation, Chennai. — PubMed: https://pubmed.ncbi.nlm.nih.gov/16334618/ · Full text (PDF): http://repository.ias.ac.in/80170/1/80170.pdf
- Prevalence and risk factors associated with undiagnosed diabetes in India: insights from NFHS-5. Journal of Global Health 2023;13:04135. — https://jogh.org/2023/jogh-13-04135
- International Diabetes Federation. IDF Diabetes Atlas, 10th edition. Brussels, 2021.
Built With
- aws-ses
- cloud-build
- cloud-run
- docker
- expo.io
- firestore
- gcp
- golang
- one-signal
- postgresql
- react-native
- redis
Log in or sign up for Devpost to join the conversation.