Inspiration 💡
Modern family life is scattered across Instagram posts, Telegram chats, camera rolls, and group chats. Younger generations navigate tech with ease, but it leaves many older adults—immigrants, widows, people with limited vision, and people with early memory loss—watching their families move on without them.
We wanted to build something that bridges that technological gap. Our challenge was to integrate technology without compromising on the need for digital literacy.
What it does 🕯️
We built Rekindle: helping families stay close to elderly loved ones by gathering family updates into one experience.
For the elder, Rekindle provides an always-on landscape display with large visuals and an ElevenLabs voice companion that can navigate the screen by conversation. The elder can ask to see a specific family member, listen to daily highlights, open photos, and return home without using a complex interface.
For family members, we built a mobile-facing companion app that allows them to send notes, upload photos, and view other relatives' uploads. Instagram and Telegram content can be pulled into Rekindle, copied into Rekindle-owned object storage, normalized into feed items, and summarized into simple language for the elder.
How we built it 🛠️
Rekindle is a TypeScript monorepo with a Next.js 16 web app, an Expo mobile app, MongoDB, S3-compatible object storage, Composio integrations, Anthropic-powered AI summarization through the Vercel AI SDK, and ElevenLabs Conversational AI.
For deployment, we utilized Vultr to set up at VPS to create a MongoDB instance and used Vultr's object storage feature to set up a deployed S3 bucket. On the web app, we deployed on Vercel for Next.js compatibility.
The main web surfaces are:
/displayfor the elder-facing ambient display and voice-guided photo experience./kinfor the family-facing mobile-styled homepage./homefor sending messages, inviting family, and uploading photos./instagram,/etl, and/adminfor integration testing and debugging.
The ingestion pipeline is built around a normalized FeedItem model. Instagram Business media and Telegram bot messages are fetched through Composio-powered routes, linked to a family member, deduplicated, downloaded server-side, copied into object storage, and written to MongoDB. Each feed item keeps source metadata, media URLs, media kinds, captions, simplified summaries, categories, and processing status.
For AI, we use Anthropic models via the AI SDK to turn image posts and chat messages into short, concrete descriptions. Instagram carousels are summarized in media order, Telegram image messages are summarized with caption context, and daily highlights are cached per family member so the display and voice agent can reuse them without repeated LLM calls.
The voice layer uses ElevenLabs Conversational AI with client tools wired into a Zustand display store. Instead of only talking, the agent can actually drive the interface: select a family member, focus a highlight category, open the gallery, expand an image, advance photos, pause, and go back.
The mobile app uses Expo Router and React Native screens for family tree, platform connection, settings, and photo upload flows. It can request a presigned upload URL from the web API, upload an image, and post the resulting public URL back to Rekindle.
Challenges we ran into 🏃♂️🏃♀️
Our biggest challenge was integrating multiple different systems into one product.
Platform ingestion had many edge cases. Instagram Business media comes back with different shapes for posts, reels, videos, and carousels, and upstream media URLs are not something we wanted to depend on. Telegram added another set of issues: bot polling, invite-code linking, photo file lookup, group messages, and update offsets. We had to be careful about ownership checks, duplicate prevention, failed syncs, and watermark updates so one family member's data could not leak into another's feed.
AI summarization also required restraint. A model can describe too much, speculate, or write in a tone that feels wrong for an elder-facing display. We designed prompts that force simple language, concrete visual details, no hashtags, no URLs, no overstatement, and deterministic fallbacks when the API key is missing or a model call fails.
The elder display was another challenge because it is both visual and conversational. A voice agent that only responds verbally is not enough; it has to keep the screen in sync. We built a small phase machine around orbs, highlights, galleries, and expanded photos, then mapped ElevenLabs client tools onto those states so voice commands and taps share the same UI logic.
Finally, we had to balance hackathon speed with real architecture. Rekindle touches OAuth, object storage, media ingestion, AI, voice, Mongo indexes, web UI, and mobile UI. Keeping those pieces debuggable required internal pages, API contracts, cached summaries, and explicit data models.
Accomplishments that we're proud of 🙌
We're proud that we were able to find a way to serve both digitally literate audiences and provide accessibility for the less tech-savvy.
- Built an elder display that turns family members into a gentle, explorable visual space instead of a dense feed.
- Connected ElevenLabs voice tools directly to the UI state machine, so spoken commands change what appears on screen.
- Implemented Instagram and Telegram ingestion paths with Composio, MongoDB persistence, object-storage media copying, and normalized feed items.
- Added AI-generated summaries and daily highlights that make noisy social content easier for an elder to understand.
- Created a kin-facing mobile-style web homepage and an Expo companion app for family workflows.
- Added internal ETL and admin views so the pipeline can be inspected end to end.
- Deployed the entire system on Vultr & Vercel, creating a production grade infrastructure
What we learned 📚
We learned that accessibility for older adults is not just larger text, but also pacing, language, emotional tone, navigation model, and reducing the number of decisions the user has to make.
On the technical side, we learned a lot about coordinating Composio-managed integrations, Telegram bot limitations, Vultr deployments, ElevenLabs client tool calling, S3-style media ownership, Next.js 16 route handlers, and multimodal AI calls inside a single app. We also learned that voice agents become much more powerful when they have explicit UI tools instead of being limited to speech.
What's next for Rekindle ➡️
The biggest next steps would be authentication, onboarding, stronger permissions, background sync, realtime updates to the display, and a more complete mobile app for relatives. We also want to work on translation support so elders can receive the whole experience in their preferred language while preserving family names and context.
On the product side, we want to add reactions from the elder, family call prompts, memory-recall sessions around old photos, and better notifications for relatives when their loved one engages with an update.
The long-term goal is for Rekindle to become a bridge between generations: family members keep sharing with ease, and elders receive those moments in a form that feels personal and simple, bringing warmth to their homes.
Built With
- anthropic
- composio
- elevenlabs
- mongodb
- nextjs
- s3
- tailwind
- typescript
- vultr

Log in or sign up for Devpost to join the conversation.