Symra: Bridging the Advocacy Gap

Inspiration

The project was born from a frustration with the 15-minute appointment window. Research and anecdotes consistently show that women’s health concerns are frequently dismissed in clinical settings—a phenomenon often called medical gaslighting. Patients arrive stressed and in pain, often struggling to articulate weeks of complex symptoms in just a few minutes. We wanted to build a tool that shifts the dynamic from an anecdotal conversation to a data-driven advocacy session.

The inspiration was also fueled by the 2024 court certification of a class-action lawsuit involving Flo Health, which highlighted how current health apps often treat intimate reproductive data as a commodity to be sold to third-party brokers. We knew Symra had to be different: local-first and zero-persistence.

What it does

Symra is a local-first health advocate that lives on the user's device. It allows users to track symptoms, intensity, and even visual evidence like rashes or inflammation. The app then uses a custom Bridge Formula to translate these raw logs into clinical-grade Subjective/Objective (SO) reports and authentic, human-first questions.

Key features include:

  • The Bridge Formula: An AI logic that turns raw data like "Pain 10/10" into "I logged a level 10 cramp that stopped me in my tracks; should we consider imaging for cysts?"
  • Vision Analysis: A multimodal pipeline that describes physical symptoms using clinical terminology to assist doctors.
  • The Provider Prep Hub: Generates a professional summary and a temporary, 15-minute QR code for a secure, offline data handshake with a physician.

How we built it

We prioritized privacy by design. Symra is built using a React and Vite frontend that stores all sensitive logs and images locally using IndexedDB. This means the master copy of the data never leaves the user’s hardware.

The intelligence layer is powered by a stateless FastAPI backend. When a user requests a report or a chat response, the data is sent to a Gemini-3-Flash relay where it is processed in volatile memory (RAM) and then immediately discarded. We implemented metadata stripping for all images to ensure that even the transient data sent for analysis contains no GPS or device fingerprints.

Challenges we ran into

One of the biggest hurdles was the "Context Window" paradox. We wanted the AI to have the full context of a user’s symptoms without overwhelming the API or compromising privacy by sending too much data. We solved this by implementing Dynamic Context Injection, which filters the IndexedDB logs to only send relevant recent history or specific time-range data for synthesis.

Another challenge was tone. Early iterations of the AI-generated questions sounded like a medical textbook. We had to refine our system prompts multiple times to ensure the questions felt authentic to the patient’s voice while still carrying enough clinical weight to be taken seriously by a doctor.

Accomplishments that we're proud of

We are particularly proud of the QR Handshake system. It solves the friction of sharing data in an exam room without requiring the doctor to download an app or the patient to email a sensitive file. The fact that the report link "self-destructs" after 15 minutes is a major win for our privacy-first mission.

We also successfully implemented a full "Local-First" architecture, proving that you can have sophisticated AI features without a centralized, vulnerable database.

What we learned

We learned that the "Advocacy Gap" isn't just a lack of data; it's a translation problem. Patients and doctors speak different languages. By creating a tool that acts as a translator, we can reduce the power imbalance in the exam room. We also gained a deep understanding of the Web Crypto API and IndexedDB's capabilities for handling binary large objects (Blobs) like symptom photos.

What's next for Symra

We hope to move the AI processing entirely on-device using WebLLM or MediaPipe to achieve a 100% air-gapped experience. We also plan to integrate the Wolfram Alpha API for even more precise computational analysis of lab results and blood work, further empowering users to understand their diagnostic data.

Built With

Share this project:

Updates