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.