Inspiration

Every short-term-rental host answers the same few questions every week: the Wi-Fi password, checkout time, how the hot tub works, where to eat, whether there's a hair dryer and more. Same boring questions, repeated effort on every host's end. Every guest looks at the TV, and with a Vega OS app on a Fire TV it can be the house's front desk and answer the questions for you.

What it does

  • Ask the house: guests pick a suggested question or type one with the remote, or scan a QR code and ask from their phone. Amazon Nova 2 Lite answers only from what the host wrote (the guide, FAQs, rules, Wi-Fi, checkout, local picks). If that doesn't cover the question, the TV says so, gives the host's fallback line, and sends the question to the host's inbox.
  • The host replies once. The guest sees the reply on the TV or phone, and it is saved as a memory, so Nova answers it for every guest after and the current guest.
  • The rest of the screen: the TV turns on to a welcome screen with the guest's name, Wi-Fi with a scannable QR code, a checkout checklist, house rules, a house guide, local picks and contacts.
  • A host dashboard with a live preview of the TV, autosave and pairing by a six-letter code. The TV picks up changes within a minute.
  • A design studio: looping background video, photo or slideshow, background music, five layouts, three bundled typefaces, colours, a logo, and tiles the host can rename, drag into a new order, or hide. TV plays them through Vega's W3C media API.

How we built it

  • TV: React Native 0.83 for Vega (@amazon-devices/react-native-kepler), TVFocusGuideView for D-pad focus, @amazon-devices/react-native-w3cmedia <Video>/<Audio> for the backdrop and music, bundled OFL fonts, @amazon-devices/react-native-qrcode-svg, AsyncStorage for the device secret and the last config. Tested on the Vega Virtual Device.
  • Backend: Next.js 16 route handlers running on a through OpenNext, with uploads served with Range support and an immutable cache. No guest identity goes to the model. One layout engine in shared/design.ts is shared by the TV, the web preview and the guest page.
  • Dashboard and guest page: Next.js 16 App Router with Tailwind 4 and AlignUI components, deployed on the same Worker. The guest page is server-rendered at /g/<slug> and reached from a QR code on the TV.

Challenges we ran into

The friction log has all 18 entries. These cost the most time:

  • Vega lays out a 1080p TV at 960×540 logical points, and the getting-started docs don't say so. Our first build came up at double size.
  • A background <Audio> track took over the remote's Back button and closed the app until we set audioUsage to USAGE_GAME.
  • The virtual device has no screenshot or key-injection command, so we used the emulator console and inputd-cli to record them.

Accomplishments that we're proud of

  • Built the whole project end to end.

What we learned

On a TV, every screen needs one obvious place for the D-pad to land, and TVFocusGuideView handled that without a navigation library. Letting the model say it doesn't know turned out to be the useful part of the AI: each answered: false marks a gap in the guide, and the host's reply fills it for the next guest.

What's next for Stayboard

Appstore submission, booking-calendar sync for guest names and dates, multi-language answers, a screensaver mode, and an email digest of unanswered questions.

Built With

Share this project:

Updates

Submission history