Align preview typography with FFmpeg output, add video/song title split, and ship OSS updates.

Separate YouTube video titles from on-video song/artist fields with Pro gating, serve curated fonts and watermark assets for 1:1 preview parity, and include billing/API/docs/deploy stack for self-hosted release.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Atakan Doğan Özban
2026-07-27 16:26:19 +02:00
co-authored by Cursor
parent 682020ff5a
commit c8015937f9
206 changed files with 37078 additions and 638 deletions
+5 -17
View File
@@ -1,33 +1,21 @@
import { redirect } from "next/navigation";
import { getServerSession } from "next-auth";
import { authOptions } from "@/lib/auth";
import { DashboardShell } from "@/components/DashboardShell";
import { RecentYouTubeLimitAlert } from "@/components/RecentYouTubeLimitAlert";
import { UploadForm } from "@/components/UploadForm";
import { SignOutButton } from "@/components/SignOutButton";
export default async function DashboardPage() {
const session = await getServerSession(authOptions);
if (!session) redirect("/");
return (
<main className="min-h-screen">
<header className="border-b border-gray-800 bg-surface">
<div className="mx-auto flex max-w-4xl items-center justify-between px-6 py-4">
<div>
<a href="/" className="text-xl font-bold text-white">
s2yt
</a>
{session.user.channelTitle && (
<p className="text-xs text-gray-500">Channel: {session.user.channelTitle}</p>
)}
</div>
<SignOutButton />
</div>
</header>
<DashboardShell channelTitle={session.user.channelTitle}>
<div className="mx-auto max-w-4xl px-6 py-8">
<h1 className="mb-6 text-2xl font-bold text-white">Create Videos</h1>
<RecentYouTubeLimitAlert />
<UploadForm />
</div>
</main>
</DashboardShell>
);
}