Všechny projekty

Osobní projekt

Tubester

Přehled

Tubester je full-stack SaaS pro tvůrce na YouTube, který kombinuje AI-assisted optimalizaci videí s automatizovanou správou komentářů. Integruje se přímo s YouTube, synchronizuje data kanálu, pomáhá zlepšovat metadata videí, generuje kontextové odpovědi na komentáře a umožňuje spravovat workflow tvůrce z jediné aplikace.

Moje role

  • Navrhl a vybudoval jsem produkt end-to-end, včetně .NET backendu, React/TypeScript frontendu, PostgreSQL data modelu, background workerů, externích integrací a deployment infrastruktury.
  • Implementoval jsem Google OAuth a YouTube API integraci, AI-powered workflow, retrieval-augmented generation, asynchronní background processing, CI/CD a production observability.

Architektura a technologie

  • ASP.NET Core backend s React a TypeScript klientem
  • PostgreSQL persistence s EF Core a pgvector pro vector similarity search
  • Dvoustupňový Google OAuth flow s progressive consent: při úvodním onboardingu pouze read-only přístup k YouTube, write permissions se vyžadují až při použití funkcí, které mění data
  • Hangfire background jobs pro synchronizaci kanálu, scanning komentářů, AI processing a další long-running workloads
  • AI-assisted generování metadat videí a kontextových odpovědí na komentáře pomocí RAG nad obsahem konkrétního tvůrce
  • Docker-based služby nasazené do Kubernetes s automatizovaným CI/CD přes GitHub Actions
  • Structured logging a production observability pomocí Serilog, Prometheus, Loki a Grafana

Technické výzvy

  • Integrovat OAuth-protected YouTube operace a správně pracovat s user permissions, API scopes, token-dependent workflows a omezeními externího API.
  • Navrhnout long-running AI a YouTube operace jako resilient background jobs místo blokování interaktivních HTTP requestů.
  • Vybudovat RAG pipeline, která z PostgreSQL a pgvector získává relevantní kontext konkrétního tvůrce pro užitečnější AI-generated odpovědi.
  • Provozovat multi-service aplikaci v Kubernetes s dostatečným loggingem, metrics a observability pro diagnostiku problémů mimo lokální vývojové prostředí.

Rozhodnutí a kompromisy

  • YouTube permissions používají dvoustupňový OAuth flow: uživatelé nejprve udělí read-only přístup a write access se vyžádá samostatně až při použití funkcí, které mění data na YouTube. Tím se snižuje počáteční permission footprint a dodržuje principle of least privilege.
  • Long-running a failure-prone YouTube a AI operace se zpracovávají asynchronně přes background jobs, takže HTTP endpointy zůstávají responzivní a jednotlivé úlohy lze retryovat nezávisle.
  • PostgreSQL s pgvector používám zároveň pro relační aplikační data i vector search, čímž se vyhýbám provozní složitosti samostatné vector database.
  • Structured logs, metrics a dashboards považuji za součást architektury aplikace, ne za něco přidaného až pro debugging.

Výsledky a přínos

  • Vybudoval a nasadil jsem funkční end-to-end SaaS, který synchronizuje reálná data YouTube kanálu a podporuje AI-assisted optimalizaci metadat i workflow pro odpovědi na komentáře.
  • Vytvořil jsem production-style architekturu pokrývající authentication, third-party APIs, asynchronous processing, vector search, CI/CD, Kubernetes deployment a observability.