Tillbaka till projekt
ai2026-02Live

Portfolio-video med Claude Code + Remotion — Programmatisk video utan videoredigerare

RemotionReactTypeScriptClaude CodeZodPlaywright MCP

Bakgrund & problem

Att producera en animerad portfolio-video kräver traditionellt After Effects eller Premiere Pro — timmar av manuellt arbete med keyframe-animation, timeline-redigering och upprepade export-cykler. Som utvecklare med AI-fokus ville jag utforska ett radikalt annorlunda angreppssätt: kan man bygga en professionell video helt programmatiskt, utan att öppna en enda videoredigerare?

Remotion är ett React-baserat ramverk där varje frame är en ren funktion av useCurrentFrame(). Ingen timeline, inga drag-and-drop-lager — bara React-komponenter som renderas frame-för-frame till en video. Kombinationen med Claude Code — en AI-assistent som skriver och kör kod direkt i terminalen — öppnade för ett arbetsflöde där jag beskriver vad jag vill se, och AI:n bygger det.

Frågan var: räcker det att prompten sig fram till en 60-sekunders portfolio-video med cyberpunk-estetik, animerade bakgrunder och professionell polish?

Vad jag byggde

En ~60 sekunders animerad portfolio-video renderad i 1920×1080 vid 30 fps, bestående av 7 scener sammankopplade med TransitionSeries och 15-frame fade-transitions.

Scenerna

ScenInnehåll
1. IntroTypewriter-effekt, portrait med floating-animation, ambient dual-pulse bakgrund
2. Automation & WorkflowsPipeline-animation med noder, energy wave sweep
3. AI DevelopmentBheastPortal med guld-ram, cyberpunk overlay med flickrande lysrör
4. Knowledge WorkSökfält med typewriter, counter-animation ("3 timmar" → "30 sekunder")
5. Content AutomationPipeline-flöde, projektbilder med staggered entrance
6. Agile FoundationCertifieringsbadges, testimonial
7. OutroTech stack pills, mässingskugghjul, kontaktinfo

Komponentarkitektur

15+ återanvändbara komponenter: ProjectCard, PipelineFlow, TypewriterText, TechBadge, SectionLabel, NeonFlicker, CounterAnimation med flera. Varje scen är en egen fil i src/compositions/.

Cyberpunk-effekter

En session lade till 6 visuella effekter i ~260 rader kod — alla additiva och deterministiska:

  • Scanlines — subtil horisontell linje-overlay (TV-statik-känsla)
  • DataParticles — Matrix-liknande fallande tecken med deterministisk cykling
  • NeonFlicker — dual-layer drop-shadow glow med sinus-puls + random flicker
  • ProjectCard glitch — RGB split text-shadow + horisontell jitter vid entrance
  • Pipeline highlight — cyan glow på nyckel-noder ("AI", "Claude")
  • Energy pulse wave — loopande glow-sweep genom pipeline-noder

Animerade bakgrunder

Tre distinkta bakgrundseffekter:

  • Hemmakontor: Dual ambient pulse — cyan och magenta gradients som "andas" via sinusvågor, lätt ur fas
  • Mötesrum: Subtil hologram-glow på skärmar och bordskant
  • Cyberpunk workshop: Glowing border + flickrande lysrör med broken-fluorescent randomness + neonskylt-pulse

Zod visuella kontroller

Remotions inbyggda stöd för Zod-schemas som interaktiva kontroller i Studio. Istället för att gissa pixelvärden och köra om: definiera schema → dra i sliders i Studio → se ändringar i realtid → spara värden som defaults. En game changer för design-iterationer.

Lärdomar & reflektioner

Planering först — VIDEO-BIBLE.md (all text, frame-ranges, styling) och detaljerad storyboard sparade enormt med tid. Claude Code kan inte "se" video, men med allt dokumenterat kunde vi referera exakt till vad som skulle hända på vilken frame.

En fas per session — 17 sessioner, 11 faser. Varje session startade med ren kontext och föregående sessions logg. Förhindrade context-drift och höll varje session fokuserad.

Remotion Skills — Officiella markdown-filer med best practices. Fick Claude Code att följa Remotion-specifika patterns istället för generell React-kunskap. Kritisk skillnad.

Deterministiska constraints — Ingen Math.random(), bara Remotions random('seed'). Inga CSS-animationer, allt drivet av useCurrentFrame(). Constraints som passade perfekt för AI-driven utveckling.

Playwright MCP för visuell verifiering — Claude Code navigerade till Remotion Studio i webbläsaren, sökte till specifika frames, tog screenshots och verifierade resultatet — utan manuell kontroll.

Highlights

  • 7 scener, ~60 sekunder, renderad programmatiskt i 1920×1080 @ 30 fps
  • 15+ återanvändbara React-komponenter (TypewriterText, PipelineFlow, NeonFlicker m.fl.)
  • Cyberpunk visuella effekter: scanlines, Matrix-partiklar, RGB glitch, neon-flicker
  • Animerade bakgrunder med ambient pulse, hologram-glow och flickrande lysrör
  • Zod-schemas för interaktiva visuella kontroller i Remotion Studio
  • Playwright MCP för automatisk visuell verifiering via screenshots
  • 17 sessioner med fasbaserad disciplin och session-loggar
  • Helt byggt med Claude Code — konversationsstyrd videoproduktion

Fördjupning

För dig som vill veta mer om hur projektet byggdes

1. Claude Code + Remotion: Konceptet

Vad är Remotion?

Remotion är ett React-baserat ramverk som låter dig skapa video programmatiskt. Istället för att dra och släppa i en timeline (som i Premiere eller After Effects), skriver du React-komponenter som renderas frame-för-frame till en video.

Varför Claude Code?

Claude Code är en AI-assistent som kan skriva och köra kod direkt i terminalen. Kombinationen blir kraftfull:

Traditionell videoproduktionVår approach
Premiere/After EffectsReact-kod (Remotion)
Manuell keyframe-animationuseCurrentFrame() + interpolate()
Exportera → testa → justeraHot reload i Remotion Studio
Timmar av klickandePrompten Claude Code

Arbetsflödet

Jag beskriver vad jag vill →
Claude Code skriver koden →
Remotion Studio visar preview →
Jag ger feedback →
Iteration

Remotion enforces constraints som passar perfekt för AI-driven utveckling:

  • Deterministisk rendering — ingen Math.random(), bara random('seed') från Remotion
  • Frame-baserad timing — allt uttrycks i frame-nummer, inte sekunder
  • Clamp-ad interpolation — alltid extrapolateLeft: 'clamp', extrapolateRight: 'clamp'
  • Inga CSS-animationer — all rörelse drivs av useCurrentFrame()

Dessa constraints betyder att Claude Code inte kan introducera icke-deterministiskt beteende av misstag. Reglerna dokumenterades i CLAUDE.md i projektets rot, som Claude Code läser automatiskt vid varje sessionsstart.

2. Planeringen: Fasbaserad arkitektur

Vi började inte med kod — vi började med struktur. I mappen plan/ skapade vi 13 markdown-dokument.

Nyckeldokument

FilSyfte
00-decisions.mdDesignsystem: färger, typsnitt, animationsstandarder, scen-timing
01-context-bible.mdFas 1: samla ALL text och assets
02-scene-details.mdFas 2: frame-by-frame storyboard för alla 7 scener
03-scaffold.mdFas 3: scaffolda Remotion-projektet
04 till 10Fas 4-10: en fil per scen-implementation
11-polish-render.mdFas 11: slutgiltig polish och render
scene-storyboard.mdDetaljerad frame-level animation breakdown

Storyboarden specificerar varje animation med exakta frame-ranges — till exempel: Scene 4 (Knowledge Work) har SectionLabel slide-in vid frame 0-30, sökfält fade-in vid 30-40, typewriter-query vid 40-120, counter-countdown med Easing.out(Easing.cubic) vid 140-220, projektbilder slide-in vid 240-270.

VIDEO-BIBLE.md

Ett centralt dokument där ALL text som syns i videon finns nedskriven:

  • Exakta strängar ("I build with AI, not just talk about it")
  • Vilken scen de tillhör
  • Vilken frame-range de visas
  • Styling (färg, storlek, font-weight)

Varför? Claude Code kan inte "se" videon. Genom att ha allt dokumenterat kunde vi referera: "Texten i VIDEO-BIBLE.md rad 4.2 ska visas frame 30-120"

Fasbaserad approach

Projektet delades in i 11 faser:

  1. Skapa VIDEO-BIBLE.md
  2. Detaljerad storyboard
  3. Scaffolda Remotion-projekt
  4. Bygg återanvändbara komponenter
  5. Bygg scen 1-7 (en scen i taget, fas 5-10)
  6. Polish, transitions, render (fas 11)

En fas per session. Efter varje fas: dokumentera, committa, stanna. Börja nästa session med ren kontext. Arbetsflödet var disciplinerat: 17 sessioner med session-loggar i work-progress/2026-01-31/.

3. Remotion Skills och Playwright

Remotion Skills

Projektet inkluderar en skills/-mapp klonad från Remotions officiella GitHub-repo. Denna innehåller 30+ markdown-filer med best practices för animationer, timing, transitions, sekvensering, fonts, bilder, Zod-parametrar med mera. Dessa fungerar som en domänspecifik kunskapsbas — när Claude Code behöver implementera en spring-animation eller sätta upp en TransitionSeries läser den relevant skill-fil istället för att förlita sig på generell React-kunskap.

CLAUDE.md i projektet enforcar detta: "Vid VARJE kodändring: Jag använder Remotion best practices skill."

Skills vi använde

SkillAnvändning
animations.mduseCurrentFrame(), interpolate(), spring()
timing.mdEasing-kurvor, damping för naturlig rörelse
transitions.mdTransitionSeries + fade() mellan scener
compositions.mdRegistrera kompositioner, fps, dimensioner
images.md<Img> + staticFile() för assets
fonts.mdLadda Inter via @remotion/google-fonts

Playwright MCP för visuell verifiering

Playwright MCP-integrationen användes för visuell verifiering under utveckling. Under projektets gång sparades 11 screenshot-PNGs tagna vid specifika frames genom hela videon:

  • check-intro-frame60.png — verifiera portrait fade-in timing
  • check-automation-frame350.png — kontrollera automation scene layout
  • check-glitch-frame241.png — verifiera RGB glitch-effekten på projektkort
  • check-automation-pipeline-wave.png — energy wave som sveper genom pipeline-noder
  • En checkpoint per scen genom hela videon

Arbetsflödet: Claude Code navigerade till Remotion Studio i webbläsaren, sökte till en specifik frame, tog en screenshot, och verifierade resultatet visuellt — allt utan att en människa behövde kontrollera manuellt. När något såg fel ut (som en felplacerad glowing border) gav screenshoten omedelbar feedback för iteration.

4. Sessionerna: Från scaffold till cyberpunk

Tidig fas (Session 1-5): Grund

  • Session 1: Läste projektdokumentation, initierade git, klonade Remotion skills
  • Session 2: Skapade hela planstrukturen — 13 planeringsdokument med designsystem, färgpalett (#0a192f navy bakgrund, #64ffda teal primärfärg), Inter-font, och animationsstandarder (spring damping 200)
  • Session 3-5: Scaffoldade Remotion-projektet, hämtade assets från portfolio-siten, byggde Scene 1 (Intro) som proof of concept med typewriter-text, spring-animerat namn, portrait fade-in med floating-effekt

Byggfas (Session 6-12): Scen för scen

Varje scen byggdes enligt sin fasplan, med återanvändning och utökning av komponentbiblioteket. Komponenter som växte fram:

  • PipelineFlow — animerat flödesdiagram med spring node pop-in, pilritning, och highlight-puls
  • CounterAnimation — animerad sifferräknare ("3 timmar" som räknar ner till "30 sekunder")
  • ProjectCard — bildkort med staggered entrance-animationer

Session 7: IntroScene — typewriter-effekt, portrait slide-in Session 8: AutomationScene — pipeline-animation med noder Session 9: AIDevelopmentScene — BheastPortal med guld-ram Session 12: AgileScene — certifieringsbadges, testimonial Session 13: OutroScene — tech stack pills, mässingskugghjul

Cyberpunk-effekter (Session 13-15)

Session 15 var en stor visuell uppgradering — 6 nya effekter lagda över alla 7 scener i ~260 rader kod:

  1. Scanlines — subtil horisontell linje-overlay (TV-statik-känsla)
  2. DataParticles — fallande Matrix-liknande tecken (01アイウエオ>_{}[]) med deterministisk cykling
  3. NeonFlicker — dual-layer drop-shadow glow med 70% sinus-puls + 30% random flicker, applicerad på section labels i 6 scener
  4. ProjectCard glitch — RGB split text-shadow + horisontell jitter vid kort-entrance (frame 0-12), aktiv på alla 10 projektkort
  5. Pipeline highlight nodes — cyan glow på nyckel-noder ("AI", "Claude") med energy wave sweep
  6. Energy pulse wave — loopande glow-sweep genom pipeline-noder

Alla effekter är additiva — de lägger sig ovanpå utan att modifiera befintliga animationer. All randomness använder Remotions deterministiska random('seed').

Animerade bakgrunder och Zod (Session 16-17)

Session 16 justerade timing (pills som dök upp 2-3 sekunder tidigare), uppdaterade innehåll, och introducerade AnimatedSceneOverlay — bakgrundsbilder med hologram-glow och orange ljusremsor.

Session 17 skapade två fler overlay-komponenter:

  • AmbientDualPulse (Scene 1) — cyan och magenta gradients som "andas" in och ut via sinusvågor, lätt ur fas
  • CyberpunkOverlay (Scene 3) — tre lager: glödande cyan holografisk border, flickrande taklampor med broken-fluorescent randomness, och subtil "BUILD"/"CREATE" neonskylt-glow

IntroScenen förfinades också: fade-from-black togs bort och content-animationer skiftades 16 frames senare, vilket skapade ett "take in the scenery"-moment — den första sekunden visar bara rummets bakgrund med ambient breathing och data-partiklar innan någon text dyker upp.

5. Zod: Visuella kontroller

Vad är Zod i Remotion-kontexten?

Zod är ett schema-valideringsbibliotek för TypeScript. Remotion har inbyggt stöd för Zod-schemas som visuella kontroller i Studio. När du definierar ett Zod-schema för en kompositions props renderar Remotion Studio interaktiva sliders, inputs och toggles i sidopanelen.

Problemet vi löste

Den glödande border-rutan i cyberpunk-bilden var felplacerad. Istället för att gissa pixelvärden och köra om kom vi på en bättre approach.

Lösningen: Sliders i Studio

export const CyberpunkDemoSchema = z.object({
borderLeft: z.number().min(0).max(100).default(32),
borderTop: z.number().min(0).max(100).default(42),
borderWidth: z.number().min(5).max(80).default(36),
borderHeight: z.number().min(5).max(60).default(18),
borderRadius: z.number().min(0).max(50).default(8),
});

Resultat i Remotion Studio

┌─────────────────────────────────────┐
│  Props                              │
│  ─────────────────────────────────  │
│  borderLeft      [====●=====] 32%   │
│  borderTop       [======●===] 42%   │
│  borderWidth     [====●=====] 36%   │
│  borderHeight    [==●=======] 18%   │
│  borderRadius    [●=========] 8px   │
└─────────────────────────────────────┘

Dra i slidern → rutan flyttar sig i realtid. Ingen kodändring, ingen omstart.

Arbetsflödet: definiera schemadra sliders i Studiohitta rätt värdenspara som defaults. Den glödande bordern gick från en initial gissning till finjusterade värden — hittade interaktivt på sekunder istället för genom en kod-reload-check-cykel.

Mönstret kan återanvändas för vilken positionerad overlay-komponent som helst.

6. Sammanfattning

Vad vi byggde

  • 7 scener, ~60 sekunder total längd
  • 15+ återanvändbara komponenter
  • Animerade bakgrunder med pulse/flicker-effekter
  • Visuella kontroller för finjustering

Vad vi lärde oss

  1. Planering först — VIDEO-BIBLE.md och storyboard sparade timmar
  2. En fas i taget — Förhindrade context-överbelastning
  3. Skills är kritiska — Remotion-specifika patterns > generell React
  4. Zod för iteration — Sliders >> gissa-och-kör
  5. Dokumentera sessioner — Startprompts för nästa session

Tech stack

  • Remotion — Programmatisk video
  • Claude Code — AI-driven kodning
  • TypeScript — Typsäkerhet
  • Zod — Schema + visuella kontroller
  • React — Komponentarkitektur
  • Playwright MCP — Visuell verifiering

Videon är resultatet av 17 sessioner, 11 faser, och ett nära samarbete mellan människa och AI.