Inspiration
This one is personal.
We've all watched someone we love, a grandparent or an elderly parent, sit in front of a computer and quietly struggle. They don't ask for help because they don't want to be a burden. They reload the page. They click the same button four times. They stare at a form they don't know how to fill out. And then they give up, and we never find out.
We built Pulse as a thank you. A thank you to the people who spent decades figuring out the world so we wouldn't have to, and who now face a digital world that wasn't designed for them, where they are often alone, and in silence.
The irony wasn't lost on us: we used AWS, the same cloud infrastructure that powers the modern web they're struggling with, to build a bridge back to them.
What it does
Pulse is a lightweight Chrome extension that passively monitors an elderly user's browser behavior and alerts family members when it detects signs of struggle, without the elder ever having to ask for help.
A family member installs the extension on their grandparent's computer and sets a simple user ID. From that point, Pulse silently tracks behavioral signals in the background:
- Repeated clicks on the same element
- Error messages appearing on screen
- Multiple page reloads
- Long idle periods (no interaction for 2+ minutes)
- Repeated back-navigation
- Starting a form but never submitting it
Every 10 minutes, the session is flushed to AWS via API Gateway and stored in DynamoDB. Every 30 minutes, an EventBridge-scheduled Lambda runs a deterministic rule engine across unprocessed sessions. If struggle signals are detected, SNS fires an SMS and email to the registered family member with a plain-English summary of what happened and where help is needed.
No AI black box. No app for grandpa to install. No asking for help. Just a quiet signal that says: someone who loves you is paying attention.
How we built it
The stack is intentionally lean, every service earns its place:
- Chrome Extension (Manifest V3) — content script captures DOM events, a MutationObserver watches for error toasts, and a background service worker batches and flushes sessions
- API Gateway — a single POST
/sessionendpoint with CORS enabled for the extension - Lambda (pulse-ingest) — validates and writes each session to DynamoDB
- DynamoDB — stores sessions with a
processedflag and a 30-day TTL - EventBridge — scheduled rule fires every 30 minutes
- Lambda (pulse-analyzer) — scans unprocessed sessions, runs six named struggle-detection rules, marks sessions processed
- SNS — publishes SMS and email alerts to the family member
Challenges we ran into
Detecting struggle without being invasive. We had to draw a careful line between useful signal and surveillance. Pulse tracks behavioral patterns, not content. It never reads form values, captures keystrokes, or stores full URLs. Hostname only.
Making the extension work passively. Manifest V3's service worker lifecycle means the background context can be killed between events. Getting reliable session batching without a persistent background page required careful use of chrome.storage.local and alarm-based flushing.
Building something true. The hardest part of this hackathon wasn't technical. It was making sure the thing we built was genuinely useful to a real person, not a flashy demo dressed up as impact. We kept coming back to one question: would we actually install this on our grandparent's computer? The answer had to be yes before we'd ship it.
Accomplishments that we're proud of
Keeping humans in the loop, on purpose. Early in the design process, we considered routing struggle signals to an AI chatbot or agent that could guide the elder through their issue automatically. We made a deliberate decision not to do that.
Elderly users don't want to talk to a chatbot. They want to talk to their child or grandchild. The whole point of Pulse is that it creates a reason, and a moment, for a real human connection to happen. An AI resolving the issue in the background would silently rob them of that. The alert isn't just a bug report; it's an invitation for a phone call, a FaceTime, a visit. We're proud that we recognized the most impactful thing we could do was get out of the way and let the people who actually matter show up.
Building something with genuine restraint. It would have been easy to add more: more tracking, more inference, more automation. We kept stripping things back until what remained was the minimum needed to make someone's grandparent feel less alone and more supported. That kind of restraint is harder than it sounds in a hackathon.
A pipeline that actually works end-to-end. From a browser event firing in a content script to an SMS landing on a family member's phone: five AWS services, two Lambdas, and zero manual steps in between.
What we learned
The best technology is invisible to the person it helps. Pulse asks nothing of the elder: no app, no login, no behavior change. That constraint forced every design decision to be clean and purposeful.
We also learned that gratitude isn't just a feeling, it's something you can build.
What's next for Pulse
Per-site rule tuning. A banking site and a social media site produce very different normal behavior. The next version of the rule engine would have site-aware thresholds, idle time that signals struggle on a Medicare form is normal on a news article.
A family dashboard. Right now alerts are fire-and-forget SMS and email. A simple web dashboard would give family members a history of sessions, which rules fired, and trends over time, useful for caregivers managing an elderly parent's digital independence.
Opt-in transparency for the elder. Some elders would want to know Pulse is running. A future version includes a simple weekly digest for the elder themselves: "You had a tough time on your bank's website this week. Your grandson has been notified and will call soon."
Expanding beyond the browser. The same behavioral signal model could extend to desktop apps, tablets, or smart TVs, basically anywhere an elderly person interacts with technology alone.
Built With
- amazon-dynamodb
- amazon-sns
- amazon-web-services
- api-gateway
- chromium-browser-extension
- eventbridge
- javascript
- lambda
- python
- spectrumts
Log in or sign up for Devpost to join the conversation.