How I built AgePro backend from Auth to Webhooks

May 19, 2025

by Roop Krrish

We’re building a personalized biomarker offering — but before we even got into diagnostics and health insights, we had a much simpler challenge to solve: how do we onboard users with zero frontend bandwidth, zero app, and still make the experience feel thoughtful and seamless?


We knew one thing: our users were already on WhatsApp. So instead of pulling them into a new platform, we decided to meet them there.


Here’s what we built.

The User Flow (Simple by Design)

A user lands on our website from a marketing campaign — an ad, a link, a referral. The landing page asks for just one thing: their mobile number.


Once they enter it, we generate a one-time password (OTP) on our backend using FastAPI. We store that OTP, along with a timestamp, in our PostgreSQL database (hosted on an EC2 instance with a mounted volume).


Then we send that OTP directly to the user on WhatsApp, using WATI’s API. No SMS. No email. No app. Just a clean, familiar WhatsApp message.

When the user enters the OTP back on the site, we verify it against the stored data.


If it matches and hasn’t expired, we immediately send them another WhatsApp message: a link to a Tally form with 9 questions across 3 sections — designed to capture their health goals, lifestyle, and personal context.

Once they submit the form, Tally triggers a webhook that hits our backend.


We capture and store their responses in our Postgres database, queue it for internal review, and use a separate API endpoint to generate a personalized biomarker recommendation PDF.


Finally, we send the PDF back to them — yes, via WhatsApp again — using a simple POST request to WATI’s messaging API

The Stack (and the Scrappiness)

I’m a product designer by profession — but I built the backend myself using —

  • Python + FastAPI for all APIs

  • WATI API for WhatsApp-based OTP and messaging

  • Tally for form collection

  • PostgreSQL as our DB, hosted on an AWS EC2 instance

  • A mounted volume to persist the database

  • Custom webhook for tally + PDF generation + delivery flow


There’s no frontend application. No authentication service. No dashboard.

But the flow works — because each piece is doing just enough to move the user forward.

Why This Worked

We weren’t trying to build a product yet — we were trying to learn. We needed to validate interest, get real user data, and give back something personalized quickly.


Instead of investing weeks into frontend development, we created a WhatsApp-first experience that feels natural, fast, and complete. Users never have to download anything. The interaction happens in a space they already trust.


For us, it’s a backend-driven MVP that delivers real value — and proves there’s a user on the other side worth building for.

Now with an Updated Report

We’ve recently added an updated version of the biomarker report — cleaner, easier to read, and with more actionable insights based on user responses. It still gets delivered via WhatsApp, instantly and in PDF form, but now it’s designed to help users make better decisions about their next steps with even less effort.

Website will be revised in actual code soon

@ Roop Krrish 2025