<IteruCode/>
Templates
nextjsOfficial

Arc: Coaching Video Streaming Platform

Cinematic coaching video membership with free and premium access, Convex Storage media, Better Auth, Stripe subscriptions, progress, and an admin studio.

Open preview

About

This template is Arc, a cinematic coaching video membership built with Next.js 16 App Router, React 19, TypeScript, next-intl, Tailwind CSS v4, Convex, Better Auth, Stripe Billing, and pnpm. It has three isolated runtime modes: Iteru previews use local fixtures and read-only admin UI; configured projects use Better Auth and direct Convex hooks; unconfigured projects show an explicit setup state. Preview state never authorizes production work. Convex owns categories, programs, episodes, media metadata, saved programs, progress, Stripe customer mappings, subscriptions, entitlements, webhook receipts, Checkout reservations, and durable billing operations. Configured videos, artwork, and captions use direct browser-to-Convex Storage uploads. Public catalog functions may expose image URLs but never video URLs; playback resolves the authenticated user and entitlement before returning a bearer URL. The soft paywall does not provide DRM or expiring video URLs. Do not claim download prevention. Convex HTTP actions are not used to proxy full videos. Free videos require an account. Premium access is one Stripe Product with monthly and yearly Prices. Only active or trialing subscription states grant the premium entitlement. Stripe uses hosted subscription Checkout, flexible billing mode, Customer Portal, Vercel-only API credentials, a webhook-only Iteru manifest, raw-body forwarding, independent Convex signature verification, event idempotency, and stale-event guards. Admins are eligible through the Convex-only ADMIN_EMAILS allowlist and pinned to a Better Auth user ID. Register the intended account before adding its address to ADMIN_EMAILS. Price changes create immutable replacement Prices. The new Price becomes active for Checkout before the old Price is archived; existing subscribers remain on their original Price. User-facing routes are locale-prefixed in English and French. Internal navigation uses @/i18n/navigation; auth and Stripe route handlers remain unlocalized. Keep route components streaming-friendly. Use direct Convex queries/mutations for application data and Next.js Server Actions only for Stripe API operations. Preserve the near-black, warm-ivory, vermilion cinematic editorial direction, strong Mona Sans typography, accessible controls, reduced-motion behavior, and gradient-free visual system.

Tags

nextjsnext-intli18ncoachingvideomembershipsubscriptionsbetter-authconvexconvex-storagestripeadminstarter
Share

More Templates Like This

View NIGHTFLUX: Subscription Video Streaming Platform
NIGHTFLUX: Subscription Video Streaming Platform preview

NIGHTFLUX: Subscription Video Streaming Platform

A cinematic subscription video platform with films, series, viewer profiles, Kids mode, My List, progress, custom playback, Convex Storage, Better Auth, Stripe, and a complete streaming Studio.

nextjs
View Atlas: Fashion Storefront
Atlas: Fashion Storefront preview

Atlas: Fashion Storefront

Single-brand clothing storefront with a catalog-as-code, guest cart, Better Auth accounts, Convex wishlists and orders, and secure Stripe Checkout.

nextjs
View Next.js
nextjs

Next.js

General-purpose Next.js App Router starter with TypeScript, Tailwind CSS, and shadcn/ui.

nextjs
<IteruCode/>