Inspiration

After a concussion, sport often gets a protocol. School gets “take it easy.” Students cannot explain a foggy day. Parents do not know what to ask. Teachers see a kid who “looks fine.” Existing tools mostly log symptoms. They do not give the three people in the room a shared, non-medical language.

Hack for Humanity asked for software that helps mental or physical health, with a dedicated concussion-recovery track. Return-to-learn is that job: cognitive load, light and noise, mood, sleep, and school — together.

I also did not want another “AI therapist” or an app that tells someone they are cleared. Amsterdam 2022 is clear: progression is symptom-limited, and full return-to-learn comes before unrestricted return-to-sport. An LLM that unlocks stages would be the wrong product.

What it does

Afterlight is a quiet web desk.

  1. Two-minute check-in — school day type (home / partial / full) and four 0–6 domains clinicians already use: body, thinking, mood, sleep.
  2. Index cards — the same facts, three stamps: For you, For a parent, For a teacher. Cards are chosen by rules, not by a model. Extra time, rest breaks, light/noise, no contact PE, “do not push through.” Each card cites a guideline.
  3. Weekly school slip — a visible pipeline: Redact → Cite → Draft → Lint → You. Gemini (optional) only sees scores, card ids, and snippet ids. A linter strips clearance, diagnosis, dosing, and return-to-play language. A person must approve before print or a share link.
  4. Science — Amsterdam 2022 RTL steps as education, not an unlockable tracker. PedsConcussion and Living Concussion Guidelines are linked.
  5. Privacy — the exact JSON that would be sent to a model. Delete account.

Afterlight is not medical care. It does not diagnose concussion or clear anyone for school or sport.

How I built it

Solo. Next.js 15, Auth.js, Prisma, Tailwind with a dim default (photophobia-friendly), Atkinson Hyperlegible.

Shared packages:

  • @afterlight/cards — catalog + selectCards()
  • @afterlight/guidelines — short paraphrases + citations (we do not ship guideline PDFs)
  • @afterlight/guardrails — redact + banned-phrase lint, with tests that must fail on “you are cleared”
  • @afterlight/pipeline — compose the weekly note

Render: web service + cron. Render Workflows register composeWeeklyNote as a chain: redactAndMinimize → retrieveGuidelineSnippets → draftNote → lintNote → persistDraft. If Workflows are unset, the web app runs the same functions in-process.

What I learned

The useful AI in health is often the AI that refuses. A deterministic card picker plus a linter is more honest than a chat that “helps.” Return-to-learn is a communication problem as much as a symptom problem. Mood and sleep belong in the same check-in as headache — that is in the living guidelines, not a feature I invented.

Challenges

  • Safety vs. demo. A 4-minute video wants a wow. A concussion judge wants no invented advice. The stepper is the demo; the refusal is the product.
  • Not a ChatGPT wrapper. If the user can type the problem into a prompt and get the same thing, we failed. Cards and the lint table are the interface.
  • Copyright and science. We paraphrase and link Amsterdam / PedsConcussion / Living Guidelines. We do not paste PDFs.
  • Render Workflows are not in Blueprints and are not HIPAA hosts — another reason the payload is minimized on purpose.

Built for these tracks (honestly)

Concussion recovery, mental health (mood, school anxiety — not therapy), physical health (body, sleep, PE caution as cards), Responsible AI, AI/ML (multi-step pipeline), Render Workflows. Not a Girls Who Code entry unless the team meets that rule.

Built With

Share this project:

Updates

Submission history