Inspiration

Elder care is measured by what goes wrong: falls, missed medications, ER visits, complaints. A day with none of those counts as a good day, no matter how the elder actually felt living it. The person receiving the care is the one participant in the system with no channel to put anything in. She is monitored, scheduled, and talked about; nothing is built to listen to her. And if she is Arabic-first, has cataracts and arthritis, and has never typed on a phone, every existing care app locks her out on the first screen.

We kept asking "why" until we hit something worth building: care can be flawless on paper and hollow in practice, indefinitely, because the elder's own experience of her days is never captured as data and never loops back into how care is arranged.

What it does

Amanah makes the elder's felt experience the signal her care runs on.

Each evening, Fatima taps one large button and speaks for about twenty seconds in Arabic: "How was today, really?" OpenAI Whisper transcribes her words and puts an English translation beside them; her original recording is always kept and replayable. She picks one mood and chooses who may hear it: her whole care circle, family only, the coordinator only, or just the mood with the words kept private. Consent is enforced on the server: a note she marks private is never sent to a hired caregiver's browser at all.

Her check-ins trend over the week and sit directly next to the schedule, which caregiver came, what they did, how long she spent outside. The coordinator can see that her good days cluster around garden visits with one particular caregiver, and move next week's visits toward that. Remote family opens the app and finally sees " Is she okay?" instead of a medication-adherence percentage.

Around that core loop is a working coordination tool: a weekly care-plan / routine builder that generates each day's checklist, timed task completion that shows the coordinator and family what was done and when, consent-gated storage for discharge papers and prescriptions with an upload scan for corrupt or executable files, and an accessibility panel for the elder, real text zoom, high contrast, a magnifier that follows the pointer, and read-aloud in her language.

How we built it

  • Frontend: React 19 + Vite 7, Tailwind CSS v4, wouter for routing, lucide-react for icons. Four role-scoped views (elder, coordinator, caregiver, family) over a single typed API client. A "Tidal Glass" visual system — soft teal and sand, Fraunces + DM Sans.
  • Backend: Node.js + Express in TypeScript, run directly with tsx — no build step, no native dependencies, so it deploys anywhere. In-memory state with JSON-file persistence; no database.
  • Voice: OpenAI Whisper (whisper-1) for transcription and translation; OpenAI TTS (tts-1) for read-aloud, cached on disk after first use. The API key stays server-side.
  • Consent: one server-side function decides what each viewer may see, applied on every read path, so the wire never carries data the caller can't see.
  • The elder's language comes from her profile; the whole screen flips to RTL for Arabic.

Challenges we ran into

  • Making consent a real boundary, not a UI trick — every endpoint that returns a check-in or a file runs through the same visibility check, verified with raw requests that a hired caregiver gets a 403 or a mood-only payload.
  • The glass-morphism design creates CSS stacking contexts that trapped every popover and modal; we moved all overlays to React portals on document.body.
  • "Larger text" that actually works — scaling the root font-size so every rem-based size grows, instead of a timid percentage on one container.
  • Designing a care plan that isn't hardcoded — a weekly routine template that expands into per-day views with their own completion records, rather than fixed dated lists.
  • CORS with credentialed requests, dependency-free .env loading, and Whisper's Blob/Buffer typing in Node each cost time.
  • Doing it solo in ~24 hours after starting as a team of four.

Accomplishments that we're proud of

  • The loop actually closes end-to-end with real transcription — she speaks Arabic, it lands on the coordinator's screen next to the schedule, consent-filtered.
  • Consent is a server guarantee, not a screen trick.
  • The elder's screen is genuinely usable at 80: one button, her language, RTL, read-aloud, magnifier, big type.

What we learned

  • Lock the product spine and the guardrails before building breadth. Time spent on "why does this need to exist" paid for itself every time we had to cut something.
  • A coordinator screen accretes complexity fast; hierarchy and restraint are features.
  • Server-side consent only holds if there is exactly one place the decision is made.
  • Whisper's Arabic accuracy skews toward Modern Standard Arabic; a strong dialect transcribes worse. Keeping the original audio always replayable is the honest mitigation.

What's next for Her Day

  • The two-way channel: when a caregiver logs a concern, or a run of hard days appears, the app asks Fatima one spoken question that evening ".Amina mentioned this morning was hard; do you want to tell me about it?" and her answer routes back to the coordinator. The elder stops being a sensor and becomes someone the system actually asks.
  • Real authentication and a database; multi-elder, multi-family tenancy.
  • A mobile/installable client.
  • On-region speech processing for health-data compliance (Quebec Law 25).
  • Native-speaker review of every non-English string, and an accessibility audit with real elders.

Honest status (real vs. demo)

Real: voice recording, Whisper transcription + translation, TTS read-aloud, server-side consent enforcement, the routine / care-plan system, timed task completion, file upload + scan + consent gating. Demo-grade: all people and their data are fictional; auth is a shared password with forgeable tokens; the demo runs on a pinned date with seeded history; there is no deployment, database, or automated test suite yet.

Built With

Share this project:

Updates

Submission history