-
-
A prepared evening for Avery, our fictional demo profile: choose Story, Music or Quiet and start one shared routine.
-
Local sunset, cloud cover and recorded episode timing guide the suggested routine start.
-
A licensed recording plays inside Moonrise, with its actual title and an immediate stop control.
-
A shared conversation starter with caregiver controls to record whether an activity was offered, started or declined.
-
Finish opens the evening log: record Calm, Restless or Episode, with optional timing and comfort steps.
-
A fictional weekly report and session timeline provide a printable handoff. Missing observations remain visible.
-
The same evening workflow on a phone, with large controls and one Start Moonrise now button.
Inspiration
An evening can be difficult to explain the next morning. A caregiver may remember that someone was unsettled, but lose the details of what was offered, what they declined, or which activity actually happened.
Some people living with dementia experience increased confusion or agitation late in the day, often called sundowning. We wanted to help family caregivers prepare for that part of the day and preserve useful context for whoever takes over.
The theme, “Fly me to the moon,” became an evening journey grounded in the actual sky: a brief rocket launch opens a shared space for a familiar story, music or quiet company.
What Moonrise does
Moonrise connects an evening plan to a shared activity, an observation and a caregiver handoff.
- Prepare around the real sky. Local sunset and a bounded cloud-cover adjustment inform a suggested start. With enough recorded history, a transparent rule adjusts that suggestion using logged episode timing. Caregivers can start whenever they choose.
- Bring the person into the plan. Save a familiar photo, a short story, caregiver notes and topics to avoid. Optional AI creates conversation starters from selected background details. Each draft must be approved before entering a routine.
- Share an activity. One “Start Moonrise now” button opens Story, Music or Quiet. Eleven licensed recordings play inside the app. The caregiver can switch activities or stop immediately. The interface uses large controls, a sky that changes with the time, and a rising moon.
- Carry the context forward. Moonrise records activity events, including actual music playback, alongside caregiver observations. Finish opens the evening log. The weekly report and printable session handoff connect what was tried with what was recorded afterward; missing observations remain visible.
Our contribution is the connection between these steps. A prepared story carries into the session; the session carries into the log; the log informs the next evening and gives the next caregiver something concrete to read.
How we built it
We built a React 19 and Vite 8 progressive web app with plain CSS, localStorage and IndexedDB. Open-Meteo supplies weather and city lookup; SunCalc supports the sky and moon calculations. The scheduling engine uses bounded, inspectable rules.
The Vercel deployment uses OpenAI gpt-4.1-mini-2025-04-14 through the Responses API. The key stays on the server. Visitors can generate drafts without supplying a key, then review, approve or skip them. Generation is subject to request and spending limits. The original build also retains an optional Anthropic integration.
Core activities and downloaded recordings work offline after loading. New AI generation and fresh weather require internet. We use Vitest, Testing Library and GitHub Actions for automated verification.
Challenges we solved
Offline audio required handling cached media and seeking correctly. We replaced unreliable external embeds with licensed recordings that play directly in the app, with visible download status and an immediate stop control.
We also had to preserve the meaning of a record. Choosing a song is different from playing it; offering a story is different from someone wanting to continue. Those distinctions carry into the session history. Fictional examples remain separate from recorded evenings.
Another challenge was making AI useful within a caregiver-led interaction. We placed generation in setup and review, with approval before use, so the caregiver chooses what enters the shared session.
What we completed and verified
During the hackathon, we built the complete setup-to-handoff flow, responsive interface, rocket transition, sky animation, in-app listening library, offline support, generation review and hosted AI connection.
The hosted fork passes 540 automated tests across 41 files, and both standard and hosted production builds pass. We checked phone, laptop and wide-desktop layouts.
We also tested the deployed AI workflow with fictional details: six drafts were generated, five skipped and one approved. The approved starter survived a reload and appeared in the session. Finish returned to the evening log. This verifies a working software flow; it is not evidence of clinical benefit.
Research groundwork
Alongside the app, we built an exploratory research pipeline using the public TIHM dementia home-monitoring dataset, whose source cohort includes 56 people. We examined over one million activity-sensor records and trained logistic-regression and gradient-boosting models to explore relationships between personal activity patterns and recorded agitation events. Participants were separated between training and evaluation.
The research report documents the methods, model comparisons, alert workload and uncertainty. This work provides a reproducible starting point for a future study with clinician-defined outcomes and new participants. It is separate from the app's scheduling rules and conversation generation.
Moonrise is a caregiver-support prototype. Public-dataset research and software testing do not establish clinical benefit; patient testing and hospice validation remain future work.
What we learned and what comes next
A useful handoff depends on knowing which actions actually happened and which observations are missing. That lesson shaped both the interface and the underlying event records.
Next, we want to test usability with caregivers using fictional scenarios, then seek a clinician-supported pilot with consent and an approved study design. A care-center version would also need multiple profiles, access controls, auditability and an organization-approved data-handling plan. Clinical outcomes would require a separate prospective evaluation.
Credits and data handling
Ketan Tamirisa and Kanishk Satish developed Moonrise with Claude Code and Codex for implementation, review and testing. The original team repository contains the shared build; the deployed fork adds hosted OpenAI generation.
We credit React, Vite, Open-Meteo, SunCalc, Zod, Vitest, Testing Library, Vercel and GitHub Pages. Higgsfield generated two decorative illustrations. Recording-specific credits and licenses are in the app and audio credits. We acknowledge the TIHM creators, Surrey and Borders Partnership NHS Foundation Trust and Howz; TIHM was used for separate, noncommercial exploratory research. No endorsement is implied, and no participant-level records or trained predictor ship in Moonrise.
Profiles, plans, photos, logs and approved starters stay in the browser. City/weather lookup sends the city query or coordinates to Open-Meteo. Optional generation sends birth year and entered hometown, spouse and job answers through Vercel to OpenAI; those answers can identify someone. Logs and photos are excluded. Requests use store:false, without claiming zero provider retention. Use fictional details in the public demo.
Try Moonrise
Open the live app and create a fictional profile. In Settings, generate conversation starters, approve one and skip the rest. Return to Today, select Story and start Moonrise. Try a recording, finish the session and inspect the evening log and report. No visitor API key is required.
Built With
- css
- javascript
- open-meteo
- openai
- react
- suncalc
- vercel
- vite
- vitest
Log in or sign up for Devpost to join the conversation.