Inspiration
What it does📺 NEXA Home — Project Story
What Inspired Us Modern living rooms are filled with ambient displays, yet smart TV interfaces remain static and clunky to navigate. When life shifts—whether a meeting gets rescheduled, dinner runs late, or you suddenly have only 15 minutes to unwind—reorganizing your evening on a smart TV usually means digging through endless menus using a D-pad remote.
We were inspired by a simple question: What if your Fire TV was an active, ambient partner that could dynamically adapt your home routines in sub-second time?
We built NEXA Home for the Amazon Developer Hackathon to prove that ambient intelligence doesn't require complex cloud setups or heavy database infrastructure. By combining accessible, remote-friendly UI design with real-time agentic re-planning, NEXA Home turns any Fire TV into a responsive command center.
How We Built It NEXA Home is engineered as a decoupled, high-performance web application designed for fast, self-contained execution.
┌─────────────────────────────────────────────────────────────────────────────┐ │ NEXA HOME ARCHITECTURE STACK │ ├──────────────────────────────┬──────────────────────────────────────────────┤ │ Frontend (Render Static Site)│ React 18 + Vite + Bun + Tailwind CSS │ │ Remote & TV Navigation │ Keyboard D-Pad Grid + Phosphor Icons + ARIA │ │ Backend Orchestrator │ FastAPI (Async) + Python 3.11 │ │ State & Execution Engine │ LangGraph MemorySaver (In-Memory Graphs) │ └──────────────────────────────┴──────────────────────────────────────────────┘ Frontend (React 18, Vite, Bun, Tailwind CSS):
Built with Bun for rapid local iteration and optimal bundle size.
Tailored specifically for Fire TV screen ratios and D-pad interaction models using high-contrast focus rings and accessible ARIA attributes.
Deployed as a high-availability Static Site on Render.com with single-page application (SPA) rewrite handling.
Backend & Agent Engine (FastAPI & LangGraph):
Powered by FastAPI for asynchronous, sub-second API responses.
Utilizes LangGraph's MemorySaver checkpointer for lightweight, in-memory state tracking. This allowed us to achieve stateful agent conversations and schedule recalculations without introducing external database latencies like PostgreSQL or Supabase.
Mathematical Formulation & Re-Planning Logic To re-plan routines dynamically when time constraints change, NEXA Home optimizes schedule blocks using a constraint-based utility formula.
Given a set of routine tasks T={t 1 ,t 2 ,…,t n }, where each task has an estimated duration d(t i ) and a priority weight w(t i ), the engine solves for an optimal subset T ′ ⊆T subject to a maximum time constraint C max :
T ′
max
t i ∈T ′
∑ w(t i )subject to t i ∈T ′
∑ d(t i )≤C max
When a user prompts NEXA with a time constraint shift (e.g., "I only have 15 minutes before my next meeting"), C max is updated dynamically. The LangGraph agent recalculates task prioritization in real time, scaling task durations d ′ (t i ) using a decay factor γ:
d ′ (t i )=max(d min ,d(t i )⋅e −γ⋅ΔC ) This mathematical approach guarantees that critical tasks (high w(t i )) are preserved while low-priority ambient events are compressed or deferred—all computed in sub-second time t execution <300ms.
Challenges We Faced D-Pad & Screen Reader Ergonomics: Designing a web application that feels like a native Fire TV app requires strict focus-management logic. Ensuring that keyboard navigation (Tab, Enter, and Arrow keys) worked seamlessly alongside screen reader voiceover required meticulous focus-ring styling and accessible DOM structuring.
Database-Free Persistence: Because hackathon evaluation environments need to be instantly testable without database provisioning delays, we had to architect the state lifecycle entirely around in-memory structures (MemorySaver) and client-side session handlers without sacrificing functional depth.
Build & Deployment Pipelines: Containerization bottlenecks on local WSL 2 environments led us to streamline our deployment model—shifting from complex Docker pipelines to clean, native Bun static builds on Render, drastically reducing deployment times.
What We Learned Ambient UI Design: Designing for television screens demands simplicity, high visual contrast, and zero reliance on precise cursor movement.
Speed Over Overhead: Removing heavy external persistence layers in favor of lightweight in-memory graphs drastically improves execution speeds, delivering sub-second user experiences.
Accessibility as a First Class Feature: Building D-pad navigation with screen reader accessibility in mind from day one naturally produces a cleaner, more intuitive application architecture for all users.
Built With
- ai
- ambient
- aria-accessibility
- bun
- css
- dpad-tv-navigation
- fastapi
- firetvsdk
- langraph
- memorysaver
- python
- react
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.