The page this skill built from examples/swell, working in your browser. Opens in a new tab.
5-second example rendered by this skill from examples/swell · 1280×720
What you get
- A one-page hero and a paste-in embed with your name, words, numbers and links
- Words laid over the film (in this one nothing is cut out: the van is too big for a clean matte)
- The intro animation tied to the film's own clock, so words and picture stay in step
- A phone layout: the headline stays in the frame, the introduction and buttons move into a block underneath
- Stills of the last frame for reduced motion, no WebGL, blocked autoplay or a slow connection, so it is never blank
- A 1080p MP4 with the film's sound and a poster, rendered frame by frame
- Checks at 390, 768, 1280 and 1920 px for overflow, overlaps, links and script errors
- Open-source licenses for every part it builds on
Good fit
- Surf, travel and outdoor brands can open on a cream camper van with surfboards on the roof and a golden retriever in sunglasses at sunset.
- Apps with a report to show, such as surf conditions, can fill a ticket with up to four label and value pairs and a one-word verdict.
- Teams that want big, friendly type can set a three-line script headline with four stacked stripe shadows, laid over the picture.
Not for
- Swapping in your own video: the matte is made for this film, and the scene (a surf van with a golden retriever at sunset) is the design
- Changing the colors, fonts or layout through settings (every word, number and link is yours; the look is fixed)
- Long headlines: each field has a length limit the build enforces
- Sound on the live page (browsers only autoplay muted video; the MP4 keeps the sound)
- Full landing pages below the hero (see the Landing Pages series)
About this skill
A website hero on five seconds of generated footage: a cream camper van with surfboards on the roof waits by the palms at sunset while a golden retriever in sunglasses leans out of the window, tongue out, and the camera pushes in on the dog. A chunky 1970s headline with stacked orange shadows sits over the picture. Around it: a sunset logo, a pill navigation, a round surf-report badge and a ticket-style surf report. Your agent writes one hero.json with your words and links; the build checks every length and writes a page and an embed, and a recorder makes a 1080p MP4 with sound.
Example request
Make a Surf Van hero for our surf-forecast app with our name, headline, report fields and buttons, and record the video.
How it works
Your agent
- 1
Collect the words
Every number, price and claim must come from the person.
- 2
Write hero.json
Copy
<skill>/examples/swell/hero.json(Swell, an app that picks the best surf hour of tomorrow) and replace every value. - 3
Build
It lists every problem at once (a missing field, a word too long for its place, a bad link) and writes nothing until they're fixed.
- 4
Check
It serves the page on localhost and opens it at 390, 768, 1280 and 1920 px wide and with reduced motion.
- 5
Look at it
Open the address it prints.
- 6
Record the video (optional)
Writes
out/preview.mp4(1920×1080, 30 fps, five seconds, with the film's sound) andout/poster.png(the last moment). - 7
Put it on the site
Either use
out/index.htmlas the page, or pasteout/embed.htmlinto an existing page and copyout/assets/next to it (or change theassets/paths to where you host them).
- 1
You get
- out/preview.mp4
- out/poster.png
- out/index.html
- out/embed.html


What you need
- Node.js 18 or newer. Nothing to install.
- Chrome, Chromium or Edge, for the checks and the video (the scripts find it; set
CHROME_PATHif they don't). - ffmpeg for the video (
brew install ffmpeg,winget install ffmpeg,apt install ffmpeg; or setFFMPEG_PATH). - A web server for the page. Opened straight from disk (
file://) browsers won't let the page draw the film, and it shows the still;node scripts/serve.mjs outserves it on localhost. - Internet access when the page is opened: GSAP and the fonts load from jsDelivr (pinned, with an integrity hash) and Google Fonts. Without GSAP the hero shows its still with every word in place.
Last checked Oct 26, 2026: the package’s own build and render commands ran and passed.
If something goes wrong
The page shows a still picture instead of the film
It was opened from disk; run
node scripts/serve.mjs outand open the address. If it still shows the still, the section'sdata-fh-stillattribute says why (reduced-motion,autoplay-blocked,film-failed,film-slow,no-timeline).The film doesn't play on the live site but did locally
The film is on another domain without CORS headers. Serve
assets/from the same site as the page, or addAccess-Control-Allow-Originon the CDN.The build says a field is too long
Shorten the words. The giant words are sized for up to 5 characters each and the top line for 11.
What’s in the download
- SKILL.md11.4 KBthese instructions.
- examples/
- examples/swell/1.34 KB1 file
- scripts/
- scripts/kit/the Footage Heroes kit the four scripts run (
build.mjs,runtime.jsfor the browser,frame.css,check.mjs,serve.mjs,record.mjs,cdp.mjs);scripts/kit/KIT.mdsays how it fits together. - scripts/kit/build.mjs13.6 KB
- scripts/kit/cdp.mjs4.90 KB
- scripts/kit/check.mjs5.48 KB
- scripts/kit/frame.css2.24 KB
- scripts/kit/KIT.md4.52 KB
- scripts/kit/record.mjs7.23 KB
- scripts/kit/runtime.js7.94 KB
- scripts/kit/serve.mjs2.55 KB
- scripts/build.mjs146 Bchecks
hero.jsonagainsttemplate/fields.jsonand writes the page, the embed and the assets. - scripts/check.mjs146 Bserves the page and checks it at four widths and with reduced motion.
- scripts/chrome.mjs3.63 KBfinds Chrome, Chromium or Edge.
- scripts/record.mjs148 Brenders the words frame by frame and lays them on the film with ffmpeg:
preview.mp4with sound andposter.png, or one still. - scripts/serve.mjs146 Bserves a built hero on localhost to look at.
- template/
- template/fields.json3.53 KBevery field of
hero.jsonwith its limit, plus the film's length,"subject": false, and the hero's colours and fonts. - template/hero.html9.93 KBthe design: its CSS, the headline layer, the layer on top, and the GSAP timeline.
- NOTICE.md1.16 KB
- TESTED.json229 B
19 files · 80.3 KB · installs to ~/.claude/skills/surf-van-hero for Claude Code and ~/.agents/skills/surf-van-hero for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- Retro hero on generated footage · words behind the subject · page + embed · 1080p MP4 with sound
- Needs
- Node.js 18+, Chrome, and ffmpeg for the video; the page needs a web server (a local one is included)
- Series
- Footage Heroes · 17 skills
- Updated
- Oct 26, 2026
- Checked
- Oct 26, 2026: its own commands ran and passed. That is a working check, not a security audit.
Written for
See all 31 agents that read skill folders.
Install guides
For your agent
Generates with
Installed it? Tell others how it went. Reviews come from people who installed this skill.
Write a reviewFAQ
Why does the headline sit over the van instead of behind it?
The van is too big for a clean matte, so nothing is cut out of this film and the words are laid over the picture. The headline covers part of the van and the dog’s window while it is there. That is the design, and no setting changes it.
What happens on a phone?
Under 760 px a bar with the name and main button sits above the frame, the frame keeps the headline and the sticker, and the introduction and buttons move into a block underneath. The links, ticket and footer are left out, because they are too small to read at that size.
How long can the words be?
The top line takes up to 11 characters and the two giant words up to 5 characters each, punctuation included. Short, round words read best; wide letters like M and W run out of room sooner. The wordmark takes up to 9 characters.
Which agents is Surf Van Hero written for?
Any agent that reads SKILL.md folders, including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode.
Do I own what I make with it?
Yes. Everything your agent makes with this skill is yours, including for client and commercial work.
What if it doesn’t work for me?
Email support@lookbk.dev within 7 days of buying and we’ll fix it or refund you.
Credits and licensesBuilt on greensock/GSAP
What Lookbk adds on top of greensock/GSAP (Standard License): the footage, which was generated for Lookbk (a still image animated into film), and the layout, template and Footage Heroes kit, all written for Lookbk. GSAP (free under its Standard License) loads from a pinned CDN with SRI; the fonts are from Google Fonts.
Credits and licenses for the open-source software and fonts it uses are in NOTICE.md inside the download.