From 8a25e5a58a0f70178b95d4e5a42abbee27dbe750 Mon Sep 17 00:00:00 2001 From: Sidney Swift <158200036+sidneyswift@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:45:31 -0500 Subject: [PATCH 1/3] feat: add SocialPost and CropPreview compositions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move SocialPost and CroppedVideo compositions from the content-creation-app into the main remotion project. This consolidates all Remotion compositions into a single registry so the render-video API endpoint can render any composition by ID. New compositions: - SocialPost: Center-crop 16:9→9:16, audio overlay, TikTok-style captions - CropPreview: Simple center-crop for validation Also adds TikTokSans-Regular.ttf font for caption rendering. --- public/TikTokSans-Regular.ttf | Bin 0 -> 174136 bytes src/Root.tsx | 28 ++++++++ src/components/CroppedVideo.tsx | 38 +++++++++++ src/components/SocialPost.tsx | 113 ++++++++++++++++++++++++++++++++ 4 files changed, 179 insertions(+) create mode 100644 public/TikTokSans-Regular.ttf create mode 100644 src/components/CroppedVideo.tsx create mode 100644 src/components/SocialPost.tsx diff --git a/public/TikTokSans-Regular.ttf b/public/TikTokSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a8ad015e19b7f1a466f0d9c4f99bbc69070750f7 GIT binary patch literal 174136 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 !AhpnI|juTWC>%rYQj$J8eCBOE__D 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∋F)P&;ZA(!O+ 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 qSN3*01E_U?+gGr}i6<(_Z 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 { userName: "Black Sabbath", } satisfies CommitShowcaseProps} /> + + ); }; diff --git a/src/components/CroppedVideo.tsx b/src/components/CroppedVideo.tsx new file mode 100644 index 0000000..0890bc1 --- /dev/null +++ b/src/components/CroppedVideo.tsx @@ -0,0 +1,38 @@ +import React from "react"; +import { AbsoluteFill, OffthreadVideo } from "remotion"; + +export interface CroppedVideoProps { + /** URL of the 16:9 source video */ + videoUrl: string; +} + +/** + * Center-crops a 16:9 landscape video to 9:16 portrait. + * + * The video is scaled so its height fills the 1280px canvas, + * then horizontally centered so the subject (who should be centered + * in the original) stays in frame. + */ +export const CroppedVideo: React.FC = ({ videoUrl }) => { + // 16:9 source scaled to fill 1280px height: + // width = 1280 * (16/9) ≈ 2276px + // Offset to center: -(2276 - 720) / 2 ≈ -778px + const scaledWidth = 1280 * (16 / 9); + const offsetX = -(scaledWidth - 720) / 2; + + return ( + + + + ); +}; diff --git a/src/components/SocialPost.tsx b/src/components/SocialPost.tsx new file mode 100644 index 0000000..e89e0f5 --- /dev/null +++ b/src/components/SocialPost.tsx @@ -0,0 +1,113 @@ +import React from "react"; +import { + AbsoluteFill, + OffthreadVideo, + Audio, + Sequence, + staticFile, +} from "remotion"; + +// Load TikTok Sans Regular — the actual TikTok caption font +const fontFace = new FontFace("TikTok Sans", `url(${staticFile("TikTokSans-Regular.ttf")})`); +fontFace.load().then((f) => { document.fonts.add(f); }).catch(() => {}); + +export interface SocialPostProps { + /** URL of the 16:9 source video */ + videoUrl: string; + /** Filename of the audio in Remotion's public dir (empty = no audio) */ + audioSrc: string; + /** Caption text to overlay */ + captionText: string; + /** Whether the source video already has audio (lip-sync path) */ + hasAudio: boolean; + /** Start offset into the audio file in seconds (default 0) */ + audioStartSeconds: number; +} + +/** + * Full social post composition: + * 1. Center-crop 16:9 → 9:16 + * 2. Song audio (if not lip-sync) + * 3. TikTok-style caption text (white with black stroke, bottom center) + */ +export const SocialPost: React.FC = ({ + videoUrl, + audioSrc, + captionText, + hasAudio, + audioStartSeconds = 0, +}) => { + // Convert audio start offset from seconds to frames (audio is 30fps in Remotion) + const audioStartFrame = Math.round(audioStartSeconds * 30); + + // Caption visible immediately + const captionOpacity = 1; + + // Crop math: 16:9 → 9:16 center crop + const scaledWidth = 1280 * (16 / 9); + const offsetX = -(scaledWidth - 720) / 2; + + return ( + + {/* Layer 1: Cropped video */} + + + {/* Layer 2: Audio (skip if video already has it) */} + {!hasAudio && audioSrc && ( + + + )} + + {/* Layer 3: TikTok-style caption — white text, black stroke, bottom center */} + {captionText && ( +

+

+ {captionText} +

+
+ )} + + ); +}; From f9e011a7e4ae9d4c598f461d83d1d884ece07364 Mon Sep 17 00:00:00 2001 From: Sidney Swift <158200036+sidneyswift@users.noreply.github.com> Date: Thu, 19 Feb 2026 17:44:35 -0500 Subject: [PATCH 2/3] fix: guard FontFace usage for Node.js compatibility --- src/components/SocialPost.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/SocialPost.tsx b/src/components/SocialPost.tsx index e89e0f5..4e3b3a5 100644 --- a/src/components/SocialPost.tsx +++ b/src/components/SocialPost.tsx @@ -8,8 +8,11 @@ import { } from "remotion"; // Load TikTok Sans Regular — the actual TikTok caption font -const fontFace = new FontFace("TikTok Sans", `url(${staticFile("TikTokSans-Regular.ttf")})`); -fontFace.load().then((f) => { document.fonts.add(f); }).catch(() => {}); +// Guard against server-side execution (FontFace is a browser-only API) +if (typeof globalThis.FontFace !== "undefined") { + const fontFace = new FontFace("TikTok Sans", `url(${staticFile("TikTokSans-Regular.ttf")})`); + fontFace.load().then((f) => { document.fonts.add(f); }).catch(() => {}); +} export interface SocialPostProps { /** URL of the 16:9 source video */ From 39f6fcaf7c9c9788f365092f3c01a41a285f4b34 Mon Sep 17 00:00:00 2001 From: Sidney Swift <158200036+sidneyswift@users.noreply.github.com> Date: Thu, 19 Feb 2026 18:03:05 -0500 Subject: [PATCH 3/3] docs: update AGENTS.md with local/hosted usage, compositions, and roadmap --- AGENTS.md | 120 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 102 insertions(+), 18 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index b7bb3e0..29b8841 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -27,45 +27,129 @@ npm run build:showcase # Render CommitShowcase to out/commit-showcase.mp4 ## Architecture -This is a Remotion 4.x project for creating marketing videos for the Recoup platform. +This is a Remotion 4.x project that serves as the **central composition library** for all Recoup video rendering — both local development previews and hosted API rendering via `POST /api/video/render`. -### Video Compositions +## How Compositions Are Used -Three compositions are defined in `src/Root.tsx`: +Compositions defined here are used in two ways: -1. **UpdatesAnnouncement** (1080x1080) - Weekly changelog video showing commits across repos +### 1. Local Usage (Development & Preview) + +Run `npm run dev` to open Remotion Studio in the browser. You can preview any registered composition, tweak `inputProps`, and render locally. This is the standard Remotion development workflow — useful for building and testing new compositions before deploying them. + +### 2. Hosted Usage (API Rendering via Trigger.dev) + +The `POST /api/video/render` endpoint (in the `api` repo) triggers a background task on Trigger.dev (in the `tasks` repo) that renders any registered composition server-side. The flow: + +1. Caller sends `POST /api/video/render` with `compositionId`, `inputProps`, dimensions, fps, etc. +2. API authenticates the request and triggers the `render-video` Trigger.dev task +3. The task bundles the Remotion project, selects the composition by ID, and renders it with `renderMedia()` +4. The rendered `.mp4` is uploaded to Supabase Storage and a signed URL (7-day expiry) is returned + +**Important:** The `tasks` repo has its own copy of the compositions in `tasks/src/remotion/`. When you add or change a composition here, you must also update the copy in `tasks/src/remotion/` and redeploy the task worker (`cd tasks && pnpm run deploy:trigger-prod`). + +### Deployment Checklist (Adding a New Composition) + +1. Create the component in `src/components/YourComposition.tsx` +2. Register it as a `` in `src/Root.tsx` with default props +3. Test locally with `npm run dev` +4. Copy the component to `tasks/src/remotion/components/YourComposition.tsx` +5. Register it in `tasks/src/remotion/Root.tsx` (mirrors this repo's Root.tsx) +6. Deploy the task worker: `cd tasks && pnpm run deploy:trigger-prod` +7. Now `POST /api/video/render` with `compositionId: "YourComposition"` will work + +## Video Compositions + +Five compositions are defined in `src/Root.tsx`: + +### Internal / Marketing Compositions + +1. **UpdatesAnnouncement** (1080x1080) — Weekly changelog video showing commits across repos - Uses `@remotion/transitions` for slide/fade effects between slides - Sequence: Intro → Category headers → Individual commits → Outro -2. **CommitShowcase** (1280x1000) - Daily commit feed in a chat UI mockup +2. **CommitShowcase** (1280x1000) — Daily commit feed in a chat UI mockup - Simulates the Recoup chat interface with commits appearing as messages - 3D perspective rotation effect throughout the video - Ends with branded CTA overlay -3. **RecoupHomePage** (1280x1000) - Static mockup of the Recoup chat homepage +3. **RecoupHomePage** (1280x1000) — Static mockup of the Recoup chat homepage + +### Content Creation Compositions (API-renderable) + +These are used by the content creation pipeline and are available via `POST /api/video/render`: + +4. **SocialPost** (720x1280, 9:16 portrait) — Full social media post composition + - Center-crops 16:9 source video to 9:16 portrait + - Overlays song audio (skipped in lip-sync mode when `hasAudio: true`) + - TikTok-style caption text (white with black stroke, bottom center) + - Uses TikTok Sans font from `public/TikTokSans-Regular.ttf` + - `inputProps`: `videoUrl`, `audioSrc`, `captionText`, `hasAudio`, `audioStartSeconds` -### Component Structure +5. **CropPreview** (720x1280, 9:16 portrait) — Simple center-crop preview + - Center-crops 16:9 landscape video to 9:16 portrait + - No audio, no captions — just the visual crop + - Useful for previewing how a video will look in portrait before full rendering + - `inputProps`: `videoUrl` -- `src/UpdatesAnnouncement.tsx` - Main composition using TransitionSeries -- `src/CommitShowcase.tsx` - Chat-style commit feed with typing animations -- `src/components/` - Reusable slide components: - - `IntroSlide.tsx`, `OutroSlide.tsx` - Bookend slides - - `CategorySlide.tsx` - Repository header (e.g., "Recoup-Chat") - - `CommitSlide.tsx` - Individual commit display (used in UpdatesAnnouncement) - - `CommitMessage.tsx` - Chat-style commit message (used in CommitShowcase) - - `RecoupHomePage.tsx` - Static homepage mockup +## Component Structure -### Key Patterns +- `src/Root.tsx` — Registers all compositions +- `src/UpdatesAnnouncement.tsx` — Main marketing composition using TransitionSeries +- `src/CommitShowcase.tsx` — Chat-style commit feed with typing animations +- `src/components/` — Reusable components: + - `SocialPost.tsx` — Full social post with crop + audio + captions + - `CroppedVideo.tsx` — Simple 16:9 → 9:16 center crop + - `IntroSlide.tsx`, `OutroSlide.tsx` — Bookend slides for marketing videos + - `CategorySlide.tsx` — Repository header (e.g., "Recoup-Chat") + - `CommitSlide.tsx` — Individual commit display (used in UpdatesAnnouncement) + - `CommitMessage.tsx` — Chat-style commit message (used in CommitShowcase) + - `RecoupHomePage.tsx` — Static homepage mockup + +## Key Patterns - Commit data lives in `src/data/todayCommits.ts` as typed objects with `hash`, `message`, `type`, and `repo` fields - Type badges use color maps defined per component (`typeColors`, `categoryColors`) - Brand color: `#345A5D` - All animations use Remotion's `spring()` and `interpolate()` utilities -- Static assets (logos) are in `public/` and loaded via `staticFile()` +- Static assets (logos, fonts) are in `public/` and loaded via `staticFile()` +- Browser-only APIs like `FontFace` must be guarded with `typeof globalThis.FontFace !== "undefined"` for Node.js compatibility (server-side rendering in Trigger.dev) -### Timing Configuration +## Timing Configuration Frame-based timing is defined in `src/Root.tsx`: - FPS: 30 - Durations are calculated in frames (e.g., `2 * FPS` for 2 seconds) - Transition duration: 15 frames + +## Composition Design Guidelines + +When building new compositions, follow these rules so they work with both local preview AND the hosted render API: + +1. **All customization through `inputProps`** — compositions must accept everything they need (media URLs, text, colors, toggles) as props. No hardcoded artist-specific data. +2. **Export the props interface** — every composition needs an exported `YourCompositionProps` type so `Root.tsx` can use `satisfies` for type-safe default props. +3. **Guard browser-only APIs** — wrap `FontFace`, `document`, `window` calls with `typeof globalThis.X !== "undefined"` checks. The composition runs in Node.js (headless Chrome) during API renders. +4. **Use `OffthreadVideo` not `Video`** — `OffthreadVideo` is required for server-side rendering. +5. **Keep media external** — pass media URLs as props. Don't bundle large assets into the composition. Fonts in `public/` are fine. + +## Roadmap: Expanding the Composition Library + +### Current: Option A — Pre-built Composition Library + +We build and maintain a library of compositions. Users select from available compositions (by `compositionId`) and customize via `inputProps`. Examples of future compositions: + +- **LyricVideo** — Full-screen video with word-by-word synced lyrics +- **PhotoSlideshow** — Ken Burns effect across multiple images with music +- **SplitScreen** — Side-by-side or top-bottom video comparison +- **TextOverlay** — Animated text on solid/gradient backgrounds +- **BeforeAfter** — Transition wipe between two clips + +Each composition is a React component with typed `inputProps` for customization (colors, fonts, text, media URLs, timing). The trade-off: users depend on us to build new styles. + +### Future: Option B — Template-Driven Compositions + +Build ONE flexible composition that reads a JSON template config defining the layout, effects, text positions, and transitions. Users create **templates** (JSON), not code. Like how Canva works — the rendering engine is fixed, but templates are user-created. + +This is similar to how the content-creation-app's `template.json` already works — it defines image prompts, video moods, caption guides, etc. The composition would interpret that JSON to produce different visual styles from a single codebase. + +This approach eliminates the need for code deployments when adding new styles, but requires upfront investment in a flexible composition engine.