Fire TV-first group movie recommendation β turning household movie-night paralysis into instant, fair consensus.
Built for the Build, Ship, Shape: Amazon Developer Hackathon 2026
The Problem: Every household knows the "30-minute scroll" β sitting on the couch endlessly browsing streaming menus, arguing over genres, runtimes, and ratings until everyone loses interest. Individual recommendation algorithms optimize for a single profile, ignoring the group dynamic and hard time constraints.
The Solution: CommonScene is a television-first experience that turns group movie selection into an interactive, democratic game:
- Fire TV Host: Displays a large 4-letter room code and QR join link on the television.
- Instant Mobile Joining: Up to dozens of viewers join on their phones without creating an account or downloading an app (via Mobile PWA).
- Smart Preferences: Viewers select genres, moods, maximum runtime, and rating ceilings β or type natural language preferences.
- Deterministic Fairness Engine: Ranks movies using a mathematical fairness formula where hard constraints are never overridden.
- Amazon Bedrock Explanations: Explains recommendations in natural language, grounded strictly in verified score data.
- Live Living Room Vote: TV showcases top 3 finalists. Everyone votes on their phone, and the TV crowns the winner with cinema fanfare!
CommonScene 10-foot television interface running on Fire TV (Vega OS)
Realtime group participant voting & winner celebration on Mobile PWA
| Feature | Description |
|---|---|
| πΊ 10-Foot Fire TV UI | Native React Native on Vega OS with full D-pad remote navigation, visual focus indicators ( |
| π± Zero-Friction Mobile PWA | Pure web participation at http://localhost:5173 (or production CloudFront URL). No account creation, passwords, or app installation required. |
| βοΈ Deterministic Consensus | Pure TypeScript algorithm balancing average satisfaction, minimum viewer happiness, and preference coverage. Ties broken deterministically. |
| π€ Amazon Bedrock Integration | Server-side Converse API (anthropic.claude-3-5-sonnet / amazon.nova-lite) for free-text parsing and natural consensus explanations with 100% offline fallback. |
| β‘ Realtime WebSocket Sync | Low-latency state synchronization across TV and mobile devices via Fastify WebSocket event hub. |
| βοΈ AWS Serverless IaC | Complete AWS CDK v2 stack defining Amazon DynamoDB (with TTL), S3 + CloudFront (OAC), and Bedrock IAM policies. |
| πΏ 90-Second Offline Demo | Built-in offline demo mode on Fire TV with predictable test profiles (Alice, Bob, Charlie) that runs completely without external services. |
βββββββββββββββββββββββββββββββββββββββββββ
β Fire TV / Vega OS Simulator β
β apps/tv (React Native + Hermes Engine) β
β D-pad Nav β’ 5% Safe Margins β’ PWA QR β
βββββββββββββββββββββ¬ββββββββββββββββββββββ
β WebSocket + REST
βββββββββββββΌββββββββββββ
β services/api β
β Fastify + WebSocket β
βββββββ¬ββββββββββββ¬ββββββ
Deterministic β β Grounded Explanations
Consensus Scoring β β & Free-Text Parsing
βββββββββββββββββββββΌβββ ββββΌβββββββββββββββββββ
β packages/consensus β β Amazon Bedrock β
β Pure TypeScript β β Claude 3.5 Sonnet / β
β 0.45Β·Avg + 0.35Β·Min β β Amazon Nova Lite β
β + 0.20Β·Coverage β β (Zero-Error Fallbackβ
ββββββββββββββββββββββββ βββββββββββββββββββββββ
β²
β WebSocket + REST
βββββββββββββββββββββ΄ββββββββββββββββββββββ
β Mobile Participant PWA β
β apps/mobile (React 19 + Vite + PWA) β
β No App Install β’ No Login Required β
βββββββββββββββββββββββββββββββββββββββββββ
For each candidate movie
-
$\text{Avg}(m)$ (45%): Average preference satisfaction across all participants. -
$\text{Min}(m)$ (35%): Minimum satisfaction score among all participants (Nash-inspired fairness component preventing majority tyranny). -
$\text{Coverage}(m)$ (20%): Percentage of unique soft preferences across the entire group satisfied by movie$m$ . -
$\text{Penalty}(m)$ : Deductions for minor soft conflicts. -
Hard Constraints: Movies exceeding any participant's maximum runtime, rating ceiling, or containing excluded genres/tags are strictly marked ineligible (
$\text{Score} = 0$ ).
commonscene/
βββ apps/
β βββ mobile/ # React 19 + Vite + TypeScript participant PWA
β βββ tv/ # React Native Vega OS application (10 screens)
βββ services/
β βββ api/ # Fastify REST & WebSocket realtime server
βββ packages/
β βββ catalog/ # Fictional movie catalog with rich metadata
β βββ consensus/ # Deterministic mathematical recommendation engine
β βββ contracts/ # Shared Zod schemas, TypeScript types & event names
β βββ test-fixtures/ # Shared test rooms and preference profiles
β βββ ui-tokens/ # Color palettes, typography, spacing tokens
βββ infrastructure/
β βββ cdk/ # AWS CDK v2 cloud infrastructure definitions
βββ docs/
β βββ architecture.md # System architecture & realtime protocol
β βββ phase1-setup.md # Vega Virtual Device setup guide for WSL 2
β βββ friction-log.md # Developer friction log (6 entries)
β βββ product-feedback.md # Structured feedback on Vega SDK, VPT & Bedrock
β βββ submission-checklist.md # Hackathon requirements compliance matrix
β βββ devpost-submission.md # Devpost submission draft & 2:45 video script
βββ AGENTS.md # AI agent rules and domain model
βββ MVP-PHASE-PLAN.md # Milestone plan and acceptance criteria
βββ README.md # Project overview & quickstart guide
- Node.js:
20.0.0 LTSor higher - npm:
10.0.0or higher - WSL 2 (Windows 11) with Ubuntu 24.04 LTS (for Vega OS TV simulator)
# Clone the repository
git clone https://github.com/pakorn269/commonscene.git
cd commonscene
# Install all workspace dependencies
npm install
# Copy the environment template
cp .env.example .env# Run ESLint, TypeScript typecheck, and Vitest suite (33 passing tests)
npm run lint
npm run typecheck
npm test
npm run buildnpm --workspace=@commonscene/api run devStarts on http://localhost:3001 (REST /api/v1/... and WebSocket /ws/rooms/:roomCode).
npm --workspace=@commonscene/mobile run devOpen http://localhost:5173 in any desktop or mobile browser. Enter any 4-letter room code to join.
# In WSL 2 Ubuntu with Vega SDK:
cd apps/tv
npm run build:release
vpt pack build/private/vega/x86_64/Release -n tv_x86_64 -d /tmp/tv_output --validate
vega run-app /tmp/tv_output/tv_x86_64.vpkg com.commonscene.tv.main -d VirtualDeviceUse D-pad remote keys (Up, Down, Enter, Escape) to navigate on the TV.
python scripts/generate_video.pySynthesizes English neural voiceover (Edge-TTS), renders high-DPI 1080p UI frames (Playwright), and produces the complete hackathon submission video in docs/assets/CommonScene_Demo_Video_1080p.mp4.
Synthesize CloudFormation templates:
npm --workspace=@commonscene/cdk run synthDeploy infrastructure to your AWS account:
npm --workspace=@commonscene/cdk run deploy- ποΈ System Architecture β Detailed component overview, recommendation lifecycle, and data flow.
- π οΈ Vega Virtual Device Setup β Step-by-step WSL 2 setup guide for the Vega CLI and simulator.
- π Developer Friction Log β 6 detailed friction logs with root causes and workarounds.
- π‘ Amazon Product Feedback β Structured developer feedback for Vega OS, Kepler React Native,
vpt, and Bedrock. - β Submission Checklist β Full hackathon requirements compliance checklist.
- π¬ Devpost Submission & Video Script β Submission pitch and timed 2:45 demo video script.
- Primary Track: Fire TV
- Priority Categories: AI-Enhanced Viewing, Family Entertainment
- Mini Challenges:
- AWS Builder: Fully integrated Amazon Bedrock (Claude 3.5 Sonnet / Nova Lite) + AWS CDK v2 IaC stack (DynamoDB, S3, CloudFront).
- Open Source: 100% open-source under Apache-2.0 with modular monorepo packages, strict TypeScript, and complete test suites.
Apache-2.0 Β© 2026 CommonScene Contributors