mobile-appLiveFeatured

PregnancyPal

com.aoneahsan.pregnancypal

PregnancyPal is a maternal-wellness and pregnancy-support platform β€” week-by-week tracking, nutrition, prenatal exercise, vitals/symptoms/mood, period & fertility, appointments, community and a blog β€” delivered across web and a Capacitor Android app, built entirely on the Firebase free tier with zero Cloud Functions, 9-language i18n, AI-search-ready prerendered content, and a compliance-grade medical-disclaimer system on every health surface.

2025-09 β†’ PresentCommunity Project

At a glance

Category
mobile-app
Status
Live
Started
Sep 2025
Last updated
4 days ago

Identifier

com.aoneahsan.pregnancypal

Preview

Take a look before you go

The still below is painted first, then the running site loads behind it β€” so the dialog is never an empty rectangle waiting on a network round trip. Where a site allows framing the live app takes over; where it refuses, the still stays and says so. Nothing is requested until you press.

PregnancyPal, as its brand card renders

About

What this actually is

PregnancyPal keeps a record, week by week. That is the plain description of it, and it is first on this page on purpose.

Software in this area slides very easily into sounding like a clinician.

This does not, and the line is drawn in what the application actually does rather than in a disclaimer at the bottom of a screen. It records, and it shows back what it recorded.

Day to day, that is vitals, symptoms and mood.

Around those sit week-by-week pregnancy tracking, appointment management, nutrition and prenatal exercise sections, a community module and a blog. Period and fertility tracking is there as well, covering ovulation, the fertile window and basal body temperature.

Appointments are the part people underestimate. A pregnancy generates a run of them, each with its own date and place and its own reason for being booked. A diary sitting in the same application as the entries is easier to keep straight than one spread across a phone calendar and a paper card.

None of it interprets anything.

The application does not decide whether a reading is expected. It does not identify a symptom, and it does not tell you what any of the numbers mean.

That reading belongs to the person looking after you.

Which is what the export is for. A health report comes out as a PDF, so a record can arrive at an appointment as a document rather than as something recalled in the room, and the charts behind it are drawn with D3.

The architecture is strictly zero-cost.

Logic runs client-side. Firebase's free tier holds the data and uploads go through FilesHub, with no Cloud Functions and no Cloud Storage anywhere in the design.

That constraint has a second effect worth naming.

A product with no server code of its own has fewer places for anybody's records to sit, and on an application holding entries about a pregnancy that is worth more than the money it saves.

Later work hardened the interface rather than lengthening the feature list.

A theme customiser with a full dark mode is available signed in and signed out, and a boot loader removes the flash of the wrong theme before the first paint. Both are small changes, and both matter most on a screen somebody is reading in a dark room.

Build-time prerendering arrived in the same pass.

14 routes and 10 blog posts emit crawler-facing static HTML with per-page JSON-LD, so a search engine or an answer engine reads real content without executing any JavaScript at all.

A page a crawler reads as empty is a page nobody finds.

What it cost is the ability to tell you anything.

An application that interprets is a different product carrying a different set of obligations, and building one would mean making claims this work is not in a position to make. So it stays on the side of the line where it records, and the clinic stays on the other side of it.

That is a limit. It is the correct one here.

It is at pregnancypal.aoneahsan.com, with an Android build on Google Play and documentation at pregnancypal-docs.aoneahsan.com.

There is no iOS build because there is no Apple Developer account behind any of this work, and this page is not going to be the thing that quietly implies otherwise.

Worth knowing

  • A real Play Store rejection turned into an engineering feature. v1.1.0 was rejected under the Health Content policy for not reminding users to consult a professional; the fix wasn't a one-off banner but a single-source disclaimer system (`medical-disclaimers.ts`, 8 variants) wired into every health surface, footers, legal pages, and onboarding β€” compliance treated as architecture.
  • Honesty audit removed marketing it couldn't back up. The 2026-06-05 pass deleted "AI-powered" labels, "Join thousands…" user counts, "designed by healthcare professionals", encryption/GDPR overstatements, AND false iOS/App-Store platform claims β€” the product now says exactly what it is (Web + Android, supportive not prescriptive).
  • Entirely zero-cost backend β€” Firebase free tier + FilesHub, no Cloud Functions and no Cloud Storage; admin/batch ops run client-side gated by Firestore security rules (`functions/` deleted in Batch 28).
  • 16 app routes + 10 blog posts emit crawler-facing static HTML at build time, so AI engines that don't execute JS (GPTBot, ClaudeBot, PerplexityBot) still index real content β€” with per-page JSON-LD (Article, FAQPage, HowTo, SoftwareApplication). `sitemap.xml` + `feed.xml` derive from the same `PRERENDER_ROUTES` + blog seed data, so they never drift.
  • 9-language localization in a solo-built FemTech app is unusual β€” it widens the addressable audience far past English-only trackers.
  • Private repo, no GitHub in the UI β€” "contribute" intent is routed to a sign-in-gated `/get-involved` Firestore form, not public repo links, keeping the codebase private while still inviting collaboration.
  • Firestore `pp_` collection prefixes keep collections collision-proof inside a shared Firebase project; centralized logger with full `no-console` enforcement; persistence is Capacitor-Preferences-only.

Built with

  • React 19
  • TypeScript
  • Vite 8
  • TanStack Router
  • Radix UI
  • Firebase
  • CapacitorJS
  • D3.js

Key features

What it does, and what that costs to build

Each of these is a capability the stack genuinely provides. None of them is an outcome nobody measured β€” there is no "cut onboarding by 40%" on this page, because no one measured onboarding.

  • Week-by-week pregnancy tracking
  • Period & fertility (ovulation, fertile window, BBT)
  • Nutrition, exercise & daily vitals logging
  • Doctor-friendly PDF health-report export
  • Community module + full blog
  • Full theme customizer + dark mode for all users
  • Zero Cloud Functions / Cloud Storage (free tier)

Screenshots

5 slots, 2 of them filled in

These are designed frames, not pictures. Each one records what belongs in the slot and at what width; the capture itself is taken from the running app. Drawing a fake screenshot here would put an image on the site that no build has ever produced.

Timeline

Still being worked on

  1. Sep 2025

    Work started

    The earliest month on record for PregnancyPal.

  2. Oct 2026

    Last change

    Status is completed β€” 4 days ago. Ongoing, so this row moves whenever something lands.

Questions

Common questions

The questions that actually arrive, answered in the first sentence.

Who built PregnancyPal?
Ahsan Mahmood built it working alone, and it is at pregnancypal.aoneahsan.com with an Android build on Google Play and documentation at pregnancypal-docs.aoneahsan.com. The data model, the Firebase rules, the charting, the prerendered pages and the Android packaging are all one person's work. It is built with React and TypeScript on TanStack Router, with Radix UI on the interface, D3 for the charts, Firebase for storage, FilesHub for uploads and Capacitor for the Android build.
Is PregnancyPal a substitute for antenatal care?
No, and it is not built to behave like one. The application records what you enter and shows it back to you over time. It does not decide whether a reading is expected, it does not identify a symptom, and it does not tell you what anything you have logged means. Those readings belong to the midwife, doctor or clinic looking after you, and the health-report export exists so that they can be given a complete record instead of a remembered one. Everything on this page describes a record-keeping tool.
What can I log in PregnancyPal?
Daily vitals, symptoms and mood, alongside week-by-week pregnancy tracking. There is period and fertility tracking covering ovulation, the fertile window and basal body temperature, appointment management for what is booked and when, and nutrition and prenatal exercise sections. A community module and a blog sit beside the tracking rather than inside it. What goes in is what you choose to put in, and the application has nothing to say about entries you leave blank.
Where does what I log actually go?
Into Firebase's free tier, with any file uploads going through FilesHub. The application logic runs client-side in the browser or in the Android build, and the architecture carries no Cloud Functions and no Cloud Storage, so there is no server code of mine sitting between you and your entries. That is a cost decision first, because zero paid infrastructure is what makes it possible for one person to keep a product like this running. It also means there are fewer places for these records to be, which on this particular product is worth more than the saving.
Does PregnancyPal work on iPhone?
No, there is no iOS build. It ships an installed application on Android through Google Play, and it runs as a web application that an iPhone can open in a browser like any other device. The reason is straightforward: there is no Apple Developer account behind this work, so nothing here has ever been submitted to the App Store. It is stated here rather than left for somebody to discover after they have started using something.

Keep looking

More mobile work

  • SM

    SMS Mobile App

    com.aoneahsan.smsapp

    Android-first SMS automation that dispatches campaigns through the phone itself.

    completedFeatured
  • HA

    HabitForge

    com.aoneahsan.habitforge

    Habit tracking with visual strength scoring and offline-first sync.

    completedFeatured
  • CA

    CallVault

    com.aoneahsan.callvault

    Offline-first Android app that records your own calls and backs them up to storage and a database you control.

    in-progress
All 23 projects