DigitalSeat 2.0 — Platform Status Jun 16, 2026

Stakeholder overview · working components, in-progress items, and pipeline roadmap

Live / Working
Partial / Needs completion
Planned / In pipeline
Stub / Not started
Blocked / Legacy
3rd partyRequires external service
System Architecture
Fan-Facing App
app.digitalseat
Vue · Fan-facing renderer
ds-workstation
Operator workstation app
Admin / Builder
portal.digitalseat
v2 admin portal · AWS Amplify stage
ds-app-maker
Legacy builder (still in use)
ds-metrics-portal
Metrics dashboard · partial
API Layer
ds-api
NestJS · Redis · stage deployed
digital-seat-api
Legacy API (survey endpoints)
Infrastructure
AWS S3
Assets · 12 venue folders
Redis Cache
App / Tag / Venue caching
Sportradar
Sports data API · key needs activation
Third-Party SDKs
VoteNow / Telescope
Fan engagement · SDK embed
VideoPlayer
YouTube / Vimeo / HLS · planned
Shop / Fanatics
Commerce redirect · planned
App Modules — app.digitalseat
Live Stats
Sportradar
Live
Real-time game stats via Sportradar. Fully wired in both portal and legacy builder.
Schedule / ScheduleCard
Ticketmaster / AXS
85%
Game schedule with scores. Ticket URLs are hardcoded to Cleveland Browns — needs dynamic resolution per team/venue.
Enter to Win
Live
Lead-gen sweepstakes module. Wired in portal and legacy builder. Used by OKC Thunder.
External URL / Program
Qualtrics / OrderNext / Instagram
Live
Opens any external URL in-app. Named slots (×10 in portal). Used for Qualtrics surveys, programs, offers.
Customer Experience Tiles
Live
Tag-based CE tiles from TagExperience table. Uploaded via CSV per physical tag. No portal editor yet — managed via CSV upload tool.
iFrame Embed
Live
Embeds any URL in a full-screen iframe. Available in portal. Not exposed via legacy builder.
App Badging / Suite Branding
Live
Suite-level branding overlay. Portal-only. Not available in legacy builder.
Venue Tiles (×4)
Live
StadiumTiles, ExpressTiles, LegalTiles, CommunityInitiative — now fully generic and portal-configurable. Items managed through new TileItemsEditor UI.
Telescope / VoteNow
VoteNow SDK
Live
Fan polls, quizzes, live votes via VoteNow SDK. Race condition fixed (2026-06-11). Seat identity passed on login_ready event. Error fallback UI pending.
GamingBasic (Trivia/Predict)
Cataboom
70%
Fetches game questions, renders answer UI. Missing: addToSelection(), submitEntry(), thank-you screen, validation. Entry submission not wired.
Roster
Partial
Football roster works. v2 portal routing gap — module.item='roster' has no direct component key. Basketball/generic routing needs fixing.
Survey Form
Blocked
Submit + response endpoints exist. Missing: question schema entity, fetch endpoint (VUE_APP_METRICS unset), portal question builder. Planning done — implementation pending.
Video Player
YouTube / Vimeo
Stub
Renders raw dataSet only. Plan: YouTube/Vimeo iframe embeds + HLS via hls.js. Portal editor and store model also needed.
Shop Module
Fanatics
Stub
Renders "Shop" text only. Plan: banner card with image + CTA → openExternal(shopUrl). Redirect pattern (no embedded checkout). Low effort.
Tile Container
Stub
Store model and data type exist. ContentTileContainer / EditorTileContainer components missing. Not registered in MenuContainer — unreachable in app.
Custom Roster
Stub
Component exists but not registered in MenuContainer — unreachable from the app menu. One-line registration needed.
Incident Reporting
Stub
Available in legacy builder; commented out in portal palette. Renderer is a stub. Separate IncidentReport-BackEnd service exists but not wired.
Portal Features — portal.digitalseat
Application Editor
Live
Create/edit apps, module ordering, brand selector, mobile preview iframe, asset manager with drag-drop and auto-refresh.
Module Config UI
Live
Dynamic module system — Content*/Editor* component pairs for all major modules including new TileItemsEditor for venue tile modules.
Mobile Simulator Preview
Partial
Live iframe preview now bypasses Redis cache (fixed). CE tiles always show empty in preview — tagShortId not passed to preview endpoint. Fix planned.
Asset Manager
Live
S3-backed asset library. Drag-drop upload, Add More, auto-refresh after upload, newest-first sort. 12 venue folders across NFL/NBA.
Clear Cache Button
Planned
Portal saves via PUT but never busts cache — editors see stale data. Planned: "Clear Cache" button calling DELETE /admin/cache/application/:id after save.
Survey Question Builder
Planned
No portal editor for survey questions. Submit/response APIs exist in ds-api; question schema entity and fetch endpoint need to be built.
Backlog & Infrastructure

Open Backlog Items

Enhance CE tiles in portal preview — pass tagShortId through preview endpoint to fetch real TagExperience rows
Enhance Portal clear-cache button — call DELETE /admin/cache/application/:id after autoSave() in EditApplication.vue
Debt CacheService documentation — cache not auto-busted after writes (CSV upload, portal saves)
Enhance Telescope error fallback UI — sdkError flag set but template shows nothing when votenow.tv fails to load
Bug ScheduleCard ticket URLs hardcoded to CLE / Ticketmaster — replace with dynamic lookup per team/event
Bug Telescope duplicate entry in configs.app.js line 43 + "External Url" label misleading in portal editor
Enhance CustomRoster — register in MenuContainer.vue (component exists, unreachable)
Enhance GamingBasic — implement addToSelection() + submitEntry() + thank-you screen + validation

Infrastructure & Deployments

ds-api (stage)
api-stage.digitalseat.media
portal.digitalseat (stage)
demo-client-v2.digitalseat.media · AWS Amplify
app.digitalseat (stage)
Stage branch deployed
Redis Cache
App / Tag / Venue layers active
S3 Assets
12 venue folders · 6 teams/venues
Sportradar API Key
Must be updated per new team / service activation
AWS IAM / OIDC
GitHub OIDC trust · portal-digitalseat-stage-deploy role
DEVLOG System
Post-commit hooks · all 6 repos
Survey API (ds-api)
Submit + responses wired · question endpoint missing
Gaming API
GET /games wired · POST /entries pending
Pipeline — Next to Build
Survey Form — End-to-End
Next
Question schema entity · GET /surveys/:id endpoint · VUE_APP_METRICS env · portal question builder UI. Planning done — implementation next session.
Video Player
YouTube / Vimeo
Next
YouTube/Vimeo iframe + HLS via hls.js + native MP4. Portal editor + store model. Lazy-load HLS only when needed. Metrics on play/complete.
Shop Module
Fanatics
Next
Banner card + outbound CTA to Fanatics / team store. Low effort — redirect-only, no embedded checkout. shopModel + ContentShop.vue + ShopModule.vue.
Dynamic Venue Tiles
Planned
Plan approved. Uses existing application.override JSON pattern — no new API endpoints. 4 app components + EditorVenueTiles.vue + CLE seed script. Branches ready.
GamingBasic Completion
Cataboom
Planned
Wire addToSelection() + submitEntry() POST. Add thank-you screen, required-field validation, game expiry check. Reuse EnterToWin ThankYou component pattern.
Live Sports Review
Sportradar
Planned
Audit LiveStats, LiveSchedule, LiveRoster, StatsContainer. Verify Sportradar wiring, confirm no CLE-specific hardcoding, ensure multi-sport readiness.