← Ideas
Project Thread
Porch Light Patrol: Block Safety Check-Ins
Neighbors check on neighbors through a simple evening light protocol and digital buddy system
# Porch Light Patrol: Block Safety Check-Ins ## The Problem Social isolation kills as many people annually as smoking 15 cigarettes a day, and elderly residents living alone are especially vulnerable—not just to emergencies, but to the slow erosion of feeling like anyone would notice if they didn't wake up tomorrow. Traditional wellness check systems feel clinical and invasive, while neighborhood watch programs focus on external threats rather than internal care. We need something as simple as a porch light and as warm as a neighbor who waves every morning. ## Who Uses It **Eleanor, 78, Retired Teacher** — Lives alone since her husband passed. Her daughter lives two hours away and worries constantly. Eleanor doesn't want surveillance or daily phone calls that feel like check-ups, but she'd love knowing someone on her block would notice if her light didn't come on. **Marcus, 42, Block Captain** — Already informally checks on a few older neighbors. Wants a simple way to coordinate with other willing neighbors so the responsibility doesn't fall on just him, and so nothing falls through the cracks when he travels. **The Nguyens, Young Family** — New to the block, want to be good neighbors but feel awkward just knocking on doors. A structured way to participate in block care gives them an "in" to build relationships naturally. **Pastor Williams, 65, Community Connector** — Runs an informal network across three blocks but it's all in his head. Needs something lightweight to share responsibility without creating bureaucracy. ## Core Features 1. **Block Circle Setup** — Any resident can create a "circle" by entering their block name and generating a simple join code. No accounts required initially—just a memorable phrase like "maple-street-sunrise" that neighbors share via doorknob flyer or word of mouth. 2. **Evening Light Pledge** — Participants choose their check-in method: physical porch light (someone will visually confirm), digital tap (press a big friendly button in the app by a chosen time), or phone ring (automated call they answer with any keypress). Everyone picks what fits their life. 3. **Buddy Pairing** — Each participant is paired with 1-2 "buddies" who get notified if a check-in is missed. Buddies are other circle members who've volunteered for this role. The app suggests pairings but neighbors can request specific people. 4. **Gentle Nudge System** — When someone misses check-in, their buddy gets a notification: "Eleanor hasn't checked in yet tonight. Maybe give her a call or walk by?" Not an alarm—a nudge. Buddy marks outcome: "All good, she was just watching her show" or "Couldn't reach, escalating." 5. **Escalation Tree** — Each participant optionally adds emergency contacts (daughter's phone, building super, trusted neighbor with a key). If buddy can't reach them and marks "escalating," those contacts get a message: "Eleanor's neighbor Marcus couldn't reach her this evening. You're listed as her emergency contact." 6. **Light Walker Route** — For blocks using physical porch lights, the app generates an efficient walking route for whoever's doing the evening walk. They can tap houses as "light on" as they stroll, turning safety checks into a pleasant evening walk rather than a chore. 7. **Gratitude Pings** — Once a week, participants can send a "thanks for watching out" message to their buddy. Small dopamine hits that reinforce the social bond. Optional but encouraged. ## WellSpr.ing Integration Points ### MCP Tools (via POST https://wellspr.ing/mcp, JSON-RPC 2.0) **`search_civic_services`** — On escalation, surface relevant local services: "Non-emergency police wellness check," "Senior services crisis line," "Local hospital ER." This gives buddies and emergency contacts concrete next steps if they're worried. **`get_city_services`** — Display city-specific senior resources during onboarding: Meals on Wheels, senior center programs, transportation assistance. Helps circles connect isolated members to broader support. **`ask_ody`** — Power a simple FAQ chatbot: "What should I do if my buddy doesn't answer?" "How do I add my daughter as an emergency contact?" "What if I'm going on vacation?" Ody handles edge cases without requiring exhaustive documentation. **`get_civic_ideas`** — Show related community care ideas on a "Ways to Help" screen. Inspire circles to deepen their care beyond just check-ins. **`reach_number`** — For participants who choose phone-based check-in, use this to initiate the automated evening call. *Note: Verify this tool supports outbound calls with keypress confirmation; if limited, fall back to SMS-based check-in.* ### REST Endpoints **`GET /api/geo/portals?area_code=NNN`** — During setup, fetch nearby WellSpr.ing portals. Display: "Your block is near the Riverside Community Portal. Circles there might want to connect with yours." ### WCIB Integration **`POST /api/wcib/ody-ask`** — For the onboarding wizard, ask Ody: "What are common concerns elderly residents have about neighborhood check-in programs?" Use responses to proactively address hesitations in the UI copy. ### Future Integrations (Not Yet Live) **Roadmap: Covenant Commerce** — Eventually, circles could pool small funds for emergency supplies, gift cards for buddy appreciation, or contributions to a neighbor's heating bill. Not yet available. **Roadmap: Federation** — `get_federation` and `get_adjacent_nodes` exist but cross-circle coordination (sharing escalation protocols, connecting isolated circles to larger networks) is a future enhancement. ## Data Model ### `circles` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | name | string | "Maple Street Evening Watch" | | join_code | string | Unique, human-readable: "maple-sunset-7" | | created_at | timestamp | | | check_in_window_start | time | e.g., 7:00 PM | | check_in_window_end | time | e.g., 9:00 PM | ### `participants` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | circle_id | uuid | FK to circles | | display_name | string | "Eleanor on Oak" | | phone | string | For notifications and phone check-ins | | check_in_method | enum | 'porch_light', 'digital_tap', 'phone_ring' | | address_hint | string | Optional: "Blue house with the garden" | | emergency_contacts | json | Array of {name, phone, relationship} | | is_buddy | boolean | Willing to be a buddy for others | ### `buddy_pairs` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | participant_id | uuid | Person being watched | | buddy_id | uuid | Person doing the watching | | created_at | timestamp | | ### `check_ins` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | participant_id | uuid | FK to participants | | date | date | Which evening | | status | enum | 'checked_in', 'missed', 'excused' | | method_used | enum | How they checked in | | confirmed_by | uuid | Nullable; buddy who confirmed porch light | | checked_in_at | timestamp | | ### `nudges` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | check_in
◎

This is your project thread with Ody.
Ask questions, share screenshots, talk through the build.
Anyone with this link can join the conversation.

Paste screenshots or upload images/PDFs · Shift+Enter for new line