VideoHub Roadmap

Roadmap generated from real build history

This page is derived from commit activity in commit_history.csv. It summarizes what has been shipped and what Programmer Tech is prioritizing next.

Commits analyzed: 142 · Last update in history: 2026-02-21

Back to Company Landing Page

Execution Signals

Authentication & Identity

30 related commits

Most recent: 2026-02-06

  • Fix header forwarding from alb for auth
  • fixed null access token fetches, added social login
  • centralized logout logic, added code exchange for social sign-in

Recommendation & Relevance

17 related commits

Most recent: 2026-02-21

  • Update Gorse.NET
  • Gorse.NET updates and class name reversion
  • Add Gorse config and db migrations

Ingestion & Platform Data

16 related commits

Most recent: 2026-02-14

  • EventSub create/delete reconciliation
  • match against CreatorId for VODs
  • Add EventSub database backing

Infrastructure & Reliability

13 related commits

Most recent: 2026-02-21

  • Add Gorse config and db migrations
  • Disable TLS alpn challenge
  • Preview EC2 migration

Product Experience

13 related commits

Most recent: 2026-01-30

  • feedback tracking
  • Aggregation session tracking and batch acknowledgment
  • Backend feedback pipeline

Search & Discovery

11 related commits

Most recent: 2026-01-22

  • Enrichment status for older items
  • Disabled strict mount/unmount on resolve calls
  • Updated to Enum checks in ResolveGet

Roadmap Priorities

Now · Recommendation Quality

Improve cold-start recommendation quality so new users receive relevant, high-confidence content immediately.

Now · Content Quality Controls

Reduce spammy or overly seductive content surfacing from Twitch through stronger filtering and ranking safeguards.

Completed · Authentication & Identity

Authentication and identity systems are complete and no longer an active roadmap workstream.

Completed · Feedback Loop

Initial feedback loop implementation is complete, enabling tracking of user interactions and integration into recommendation improvements. Raw feedback data collection allows for retroactive analysis and model training, even as the feedback system itself continues to evolve.

Later · Platform Expansion

Add additional platform support for Kick and Rumble after current recommendation and quality improvements.

Backend Architecture Overview

VideoHub backend is a distributed ASP.NET Core + worker-based system that discovers and syncs multi-platform content (YouTube/Twitch), resolves and enriches canonical items, captures user feedback signals, and serves anonymous or personalized recommendations via Gorse. End-to-end, the web client authenticates with JWT, calls API endpoints for item resolution and recommendations, submits feedback events, and receives ranked content while asynchronous workers process enrichment, aggregation, embedding generation, and recommendation sync in the background. The core loop is: discover/sync content → enrich canonical item → collect feedback → aggregate engagement → sync to Gorse → serve better recommendations.

High-Level Diagram

[Client Web App]
       |
       v
[API (ASP.NET Core)] --- [Auth (Identity/JWT)]
       |         |   --> [Recommender (Gorse)] --> [Postgres + Redis (Gorse stores)]
       |
       +--> [App Data Store (SQL Server / RDS-equivalent)]
       |
       +--> [Queue (AWS SQS)] --> [Workers: Discovery / Sync / Enrichment /
                                   Feedback Aggregation / Gorse Sync / Embedding]
                                          |                    |
                                          |                    +--> [Embeddings Service (AWS Bedrock)]
                                          +--> [YouTube + Twitch APIs/EventSub]

Core Services

  • Client (Web app): Captures user actions and consumes search/recommendation responses. Inputs: auth state + user interactions. Outputs: API requests + feedback events.
  • API (ASP.NET Core): Handles auth, search/resolution, recommendation serving, and feedback ingestion. Inputs: HTTP/JWT/events. Outputs: DB writes, SQS messages, Gorse calls.
  • Auth (Identity/JWT): Manages identities, external account links, JWT issuance, validation, and revocation cutoffs.
  • App Data Store: Source of truth for users, connected accounts, canonical content, raw feedback events, and engagement aggregates.
  • Queue (SQS): Decouples request path from async jobs (enrichment, feedback aggregation, EventSub processing) with retry/visibility semantics.
  • Workers: Execute periodic and event-driven pipelines for discovery, sync, enrichment, aggregation, embedding, and Gorse synchronization.
  • Recommender (Gorse): Stores recommendation users/items/feedback and returns ranked item IDs for anonymous and personalized feeds.
  • Embeddings (Bedrock + Embedding Worker): Generates vectors from content text and patches embeddings into Gorse item labels.

Data Model (Core Entities)

  • ApplicationUser
  • ConnectedAccount
  • RefreshToken
  • ContentItem
  • FeedbackEvent
  • UserItemEngagement
  • EventSubSubscription
  • TwitchStreamRecord

3 Critical Pipelines

  • Content Ingestion: Discovery/sync workers collect content, upsert canonical items, queue enrichment, then ingest recommendable items into Gorse.
  • Feedback: API accepts idempotent events, stores raw feedback, queues aggregation, materializes user-item engagement, then syncs dirty aggregates to Gorse.
  • Recommendation Serving: API requests anonymous/latest or personalized rankings from Gorse and returns platform-aware item payloads to the client.

Reliability + Idempotency

  • Feedback dedupe by immutable event ID.
  • Content uniqueness on platform + externalId + kind.
  • SQS long polling + visibility timeout + explicit ack on success.
  • Processed markers prevent double aggregation.
  • Enrichment dedupe keys reduce duplicate platform work.

Scaling & Performance

  • Stateless API scales horizontally behind proxy/load balancer.
  • Worker classes scale independently by workload type.
  • Queue buffering smooths burst traffic.
  • Batch processing and targeted indexes optimize throughput.
  • Gorse workload stays isolated from transactional SQL data store.

Security & Compliance

  • JWT bearer auth with issuer/audience/signing key validation.
  • Refresh/access token protection, rotation, and revocation handling.
  • TLS via reverse proxy in production + controlled CORS origins.
  • Secrets injected from environment/config, not hard-coded in app flow.
  • Least-privilege AWS access for SQS and Bedrock integrations.