
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.
Single-brand clothing storefront with a catalog-as-code, guest cart, Better Auth accounts, Convex wishlists and orders, and secure Stripe Checkout.
This template is Atlas, a single-brand clothing storefront built with Next.js 16 App Router, React 19, TypeScript, next-intl, Tailwind CSS v4, Convex, Better Auth, Stripe, Zustand, Radix UI, and pnpm. It has three isolated runtime modes: Iteru previews use the static catalog plus unpersisted cart and wishlist state; configured projects use Better Auth, direct Convex hooks, and Stripe Checkout; unconfigured projects show an explicit backend-setup state. Preview adapters never authorize production operations. Customize products in the shared storefront/catalog.ts catalog-as-code source. It owns localized merchandising copy, stable variant IDs and SKUs, prices, availability, and local images. There is deliberately no production product CRUD or duplicate Stripe catalog. Use Convex directly for synchronized users, wishlists, immutable order snapshots, Stripe customer mappings, and webhook receipts. The browser cart contains only variant IDs and quantities and never authorizes price or availability. Preserve minimal Better Auth email/password authentication through @convex-dev/better-auth. Derive identity server-side and enforce wishlist, account, and order ownership in Convex. Guest Checkout remains supported, but guest orders never appear in another user's account. Stripe is limited to hosted one-time Checkout in EUR with France shipping. Checkout accepts only bounded variant IDs, quantities, a UUID request ID, and locale; Vercel resolves catalog amounts server-side. Do not add subscriptions, Customer Portal, seller payments, payouts, or Stripe Connect without a separately approved design. The webhook-only Stripe manifest requests only Checkout lifecycle events. Vercel verifies and forwards the untouched body and signature; Convex independently verifies, deduplicates, validates signed snapshots, and applies monotonic order transitions. Never acknowledge an unpersisted event. User-facing routes are always locale-prefixed under src/app/[locale] with English and French catalogs and English as the default locale. Internal hrefs use locale-free paths through @/i18n/navigation; API, Stripe callback, and other route handlers remain unlocalized. The public route structure covers the editorial home, shop, product details, cart, sign-in, and verified Checkout success. Wishlist, account, and order history are authenticated routes guarded through streamed auth checks. Localize all platform-owned UI and catalog merchandising copy. Preserve stable product slugs, variant IDs, SKUs, order snapshots, and webhook metadata contracts when changing presentation. Keep the root NextIntlClientProvider catalog-free. When client components need translations, pass only their required namespaces through a narrowly scoped nested provider. Keep route components streaming-friendly and read the packaged Convex, frontend-design, Next.js, and Stripe guidance before changing authentication, persistence, or payments.

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

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.
General-purpose Next.js App Router starter with TypeScript, Tailwind CSS, and shadcn/ui.