Animated expense-tracker App Store header
A silent App Store listing whose small hero cycles through four finance visuals and a brand lockup in one continuous view.
By @fineyoapp for FineyoSource onlineOriginal post ↗
Copies get_blueprint("REF-5091") for Claude. Connect Claude
Why it works
One continuous 9.68-second shot keeps the marketplace listing stable while the small header progresses through five visual proofs. The locked camera (×1.000 zoom, zero pan in plate 5) makes each header change easy to locate, and the final lockup resolves the sequence without a cut or fade. The near-constant 0.91 mean luma keeps attention on the changing graphics rather than a lighting effect.
Blueprint
15 plates that take the film apart, from its format to a recipe you can run. Claude reads the same plates over MCP.
Plate 01
The format in one breath
A fixed mobile marketplace page lends instant product context while its small header cycles through compact proofs of the app. The viewer sees one quiet, continuous demonstration, ending on a brand lockup inside the same header.
Why it works (inferred): the page is recognizable at frame 0; the proof changes within shot 1 while the listing stays anchored; the ending names the product without adding a new scene. The measured frame luma stays near 0.91, so the tiny moving graphics carry the change.
Plate 02
Format card
| Platform · aspect · length | X · 59:128 · 9.68 s · source 590×1280 · 60.155 fps |
| Pace | One continuous shot; zero cuts |
| Script | Picture-led; wordless |
| Voice | None |
| On screen | Fixed marketplace listing with an animated header occupying the upper portion |
| Type | Three measured cap-height levels: 33–35, 20–26, 13 px at 1080-wide delivery |
| Sound | Reference effectively silent; no steady pulse or distinct cues |
| Structure | Five internal header beats; brand lockup closes inside shot 1 |
Tools you'll need: Remotion for motion graphics · screen recordings of the product · Claude alone: partly
Frame sheets
Frame by frame
Stills taken at measured moments, each labelled with its time. Claude gets the same sheets over MCP.
Plate 03
The hook, frame by frame (first 3 seconds)
| Time | Picture | On-screen text | Words and sound | What it does |
|---|---|---|---|---|
| 0.00 | Fixed listing; header contains expense chips | Brief benefit line in header; product title below | Silent | Establishes context immediately |
| 0.50 | More small chips populate header | Category labels | Silent | Makes the claim concrete |
| 1.50 | Header still contains the chip arrangement | Same benefit context | Silent | Gives time to inspect |
| 2.25 | White metric card appears within header | Monthly metric heading and count | Silent | First proof change |
Hook formula (inferred): {{PRODUCT}} listing + concise benefit + small real data chips. Why it holds: the stable listing makes the changing header legible; the graphic carries the story without narration.
Plate 04
Structure (beat sheet)
| # | Time (s) | Shots | Beat | What happens | Technique |
|---|---|---|---|---|---|
| 1 | 0–about 2 | 1 | Context | Benefit line and expense chips fill the header over the fixed listing | Staggered chip entrances |
| 2 | about 2–4 | 1 | Metric proof | A monthly amount card replaces chips; bars and amount develop | Masked card reveal, count and chart build |
| 3 | about 4–6 | 1 | Control proof | Two budget cards with green trend traces appear | Matched cards, line draws |
| 4 | about 6–8 | 1 | Breakdown proof | A category donut and legend occupy the same header | Arc and label build |
| 5 | about 8–9.68 | 1 | Resolution | Product lockup takes the centre; small chips echo beat 1 | Internal crossfade/reframe; hard stop |
Retention map (inferred): internal re-hooks at beats 2, 3 and 4; payoff at beat 5. The sheets suggest successive new header pictures near 2, 4, 6 and 8 s; the measurement says one continuous shot and lists no discrete change boundaries. These are approximate visual phases, not cuts.
For agents: Shots
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Shots (measured)
One continuous shot, 9.68 s = 582 frames at 60.155 fps. Frames are at 60.155 fps, first and last inclusive: a shot "33–70 · 38 f" is a Remotion <Sequence from={33} durationInFrames={38}>; at another frame rate, use the seconds.
| # | in–out (s) | frames @60.155 (first–last · count) | dur (s) | transition in | scales (inferred) |
|---|---|---|---|---|---|
| 1 | 0.00–9.68 | 0–581 · 582 f | 9.68 | start | scales |
scales: fixed = keep this shot's length when the film gets longer or shorter · scales = stretch or shrink it with the length · optional = drop it for the 15 s cut.
Measurement notes: S1: 108 text items read; the 40 largest are kept · audio track is silent or nearly silent (max 0.5 s RMS below -55 dBFS)
Frame sheets (measured): shots, one labelled frame per shot (labels S<n> m:ss.s; + = just after a change inside the shot) · the full-length timeline, the whole film at fixed steps (labels S<n> m:ss.s f<frame>), 1 page: call get_frames('2116956566108971124'), or see them on the film page (Pro, or free films).
Plate 05
Shot grammar
Mix: one locked screen capture. Rhythm: the outer page remains static while the header changes within shot 1. There is no measured camera pan, zoom or cut.
Rules this editor follows (inferred)
- Keep the page, icon, product name, rating row and lower product panel fixed while animating only a clipped header layer.
- Make each proof readable before replacing it; avoid moving the capture itself.
For agents: Camera and motion · Transitions
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Camera and motion (measured)
Per shot, measured on the frames. "Camera move" names the camera's move; the numbers are the image's motion: pan in % of frame width (x) or height (y) per second, +x = content moves right (so a pan left), +y = content moves down; zoom per second > 1 = content grows (push in). "Over the shot" is the total, with px at 1080×2344. Speed is the move through the shot, about one character per 0.5 s (▁ still → █ its peak), then the peak in % of width per second. Cadence: "ones" = a new picture every frame, "twos" = each picture held two frames. Blur is relative to this film (0 = its sharpest shots, 1 = its blurriest); motion = share of the frame changing, 0–1. "?" = confidence under 0.5: a hint, check the sheets. The labels describe how the image moves, not where a 3D camera went: an object flying toward a still camera can read as a push in.
| # | camera move | pan x · y (%/s) | zoom (/s) | over the shot | ease | speed · peak | cadence | blur | motion | conf |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | static | +0.0 · +0.0 | ×1.000 | none | hold | ▃▁▄▃▃▂▄▄▂▃▂▂▄▃▂▁ · 0%/s | still | 0.54 | 0.00 | 1.00 |
Focus (measured): shot 1: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus). Box = x · y · w · h % of the frame. In 2D, blur the layers outside the box by that many px; in 3D, set the focus distance on the box and open the aperture until the background blur matches. Locked-off shots: 1 of 1.
Transitions (measured)
One continuous shot: no cuts. Changes happen inside the shot (camera, light, layout).
What shot 1 shows (inferred from the sheets)
| # | Type | Framing | What's on screen | Text / overlay |
|---|---|---|---|---|
| 1 | Screen recording plus header animation | Entire portrait phone view | Marketplace listing, fixed lower panel, animated top header | Product name in listing; benefit, metric, budget, category and lockup in header |
Plate 06
Visual style guide
Look (inferred): pale near-white page, subtly cool header, small white cards, restrained tinted chips and crisp dark type. The reference's colours in the measured palette are evidence of roles; substitute {{BRAND_BG}} and {{BRAND_ACCENTS}}. Graphics: simple charts and rounded cards with shallow shadow. Transitions: internal header replacements only. Branding: put {{LOGO}} in the final header lockup and {{CTA_URL}} as small readable text within that header before the hard stop; avoid marketplace badges.
At a glance
- Type scale (cap px): 33–35 · 20–26 · 13 (3 levels) among the text above.
- Phone minimum: cap height ≥ 2% of frame width = 22 px at 1080×2344
- Whole film (time-weighted):
#F3F3F580% ·#D6D9DB13% ·#A5A4A54% ·#3331312% ·#6DAEF21%. - Curve facts: average 0.91 · darkest 0.91 at 0.0 s · brightest 0.91 at 2.0 s.
For agents: Type · Type spec · Palette by shot · Brightness curve · Layout boxes · Material card
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Type (measured)
Sizes are cap height (the height of a capital letter) in px at the 1080p deliverable, 1080×2344. Font size ≈ cap ÷ 0.71 for a typical sans (Inter 0.73, Geist 0.71, SF Pro 0.70, Instrument Sans 0.72): check your own font's cap-height ratio. Cap heights are estimated from text-recognition boxes (median error about 11% on real text; text under about 13 px at 1080p and non-Latin scripts are not read). Box = x · y · w · h as % of the frame, from the top-left.
| text | shot | on screen (s) | cap px | ≈ font px | cap % of height | box x·y·w·h % | position |
|---|---|---|---|---|---|---|---|
| "Events" | 1 | 0.0–9.5 | 35 | 49 | 1.5 | 4 · 55 · 16 · 2 | left, middle (inside 5% of the edge) |
| "$666,00" | 1 | 0.0–9.5 | 35 | 49 | 1.5 | 10 · 70 · 16 · 2 | left, lower third |
| "Fineyo: Expense Tracker" | 1 | 0.0–9.5 | 33 | 46 | 1.4 | 35 · 30 · 56 · 2 | centre, upper |
| "Budget Planner & Spending" | 1 | 0.0–9.5 | 26 | 37 | 1.1 | 35 · 33 · 43 · 2 | centre, upper |
| "NOW AVAILABLE" | 1 | 0.0–9.5 | 24 | 34 | 1.0 | 4 · 59 · 23 · 1 | left, lower third (inside 5% of the edge) |
| "Home Screen Widgets" | 1 | 0.0–9.5 | 24 | 34 | 1.0 | 8 · 82 · 39 · 2 | left, bottom |
| "5 RATINGS" | 1 | 0.0–9.5 | 22 | 31 | 0.9 | 8 · 45 · 14 · 1 | left, middle |
| "AGE RATING" | 1 | 0.0–9.5 | 22 | 31 | 0.9 | 32 · 45 · 16 · 1 | centre, middle |
| "CATEGORY" | 1 | 0.0–9.5 | 22 | 31 | 0.9 | 57 · 45 · 15 · 1 | right, middle |
| "DEVELOPER" | 1 | 0.0–9.5 | 22 | 31 | 0.9 | 81 · 45 · 16 · 1 | right, middle (inside 5% of the edge) |
| "Your finances, one tap from the Home Screen." | 1 | 0.0–9.5 | 22 | 31 | 0.9 | 8 · 84 · 64 · 2 | centre, bottom |
| "Deniss Dubinins" | 1 | 0.0–9.5 | 20 | 28 | 0.8 | 78 · 51 · 22 · 1 | right, middle (inside 5% of the edge) |
| "Souvenirs fo... $34,76" | 1 | 0.0–9.5 | 13 | 18 | 0.6 | 68 · 70 · 22 · 3 | right, lower third · tilted -10° |
| "Pets" | 1 | 0.5–9.5 | 20 | 28 | 0.8 | 68 · 72 · 5 · 1 | right, lower third |
| "7:594" | 1 | 1.0–5.5 | 35 | 49 | 1.5 | 9 · 2 · 14 · 2 | left, top (inside 5% of the edge) |
| "Your month at a glance." | 1 | 2.0–3.8 | 24 | 34 | 1.0 | 34 · 11 · 34 · 2 | centre, top |
| "$2,933.85 → $3,931.65 (counting)" | 1 | 2.3–3.8 | 26 | 37 | 1.1 | 31 · 16 · 15 · 2 | centre, top |
| "Stay on budget." | 1 | 4.0–5.8 | 24 | 34 | 1.0 | 39 · 11 · 22 · 2 | centre, top |
Plus 2 smaller or briefer text items, cap 24–24 px, mostly labels inside interfaces: all in the timeline JSON.
Type scale (cap px): 33–35 · 20–26 · 13 (3 levels) among the text above.
Left out: 6 reads that are not clean words or were seen in a single frame ("•i 5G", "$176.52", "$2,844.35"…): blurred, moving or partly hidden text the recognizer misread. They stay in the timeline JSON, not in the type scale.
Phone minimum: cap height ≥ 2% of frame width = 22 px at 1080×2344. Why: in a phone feed the film fills the screen width, about 390 pt, and 2% of that is 7.8 pt, the cap height of 11 pt text, Apple's smallest recommended text size. Words the viewer must read go at or above it; smaller text can only be decoration. Below it in the reference: "Souvenirs fo... $34,76" (13 px, shot 1), "Deniss Dubinins" (20 px, shot 1), "Pets" (20 px, shot 1). Size these up in your version, or treat them as decoration.
Type spec (inferred)
Assume cap height/font size = 0.71; adjust {{BRAND_FONT}} by its actual ratio. Inter is the closest free fallback, not a required brand font.
| Level | Cap px at 1080p | Font size | Weight · case · tracking | Colour pair | Motion |
|---|---|---|---|---|---|
| Main listing/number | 33–35 | 46–49 px | 600 · title case or numerals · −0.02 em | dark text on {{BRAND_BG}} surface | Listing static; header numbers count with 18 f ease-out |
| Labels/body | 20–26; use ≥22 for required words | 31–37 px for readable words | 400–600 · sentence case; micro labels uppercase · 0 to +0.04 em | dark text or {{BRAND_ACCENTS}} on light surface | Header labels enter 12 f, cubic-bezier(.2,.8,.2,1); listing static |
| Micro detail | 13 in reference; enlarge required words to ≥22 | 18 px decorative, ≥31 px required | 400 · case from content · 0 em | muted text on light card | Static decorative data; readable replacements enter 12 f |
Palette by shot (measured)
Colours measured on the frames, with their share of the frame; luma 0 = black, 1 = white. These are the reference's brand colours: map them onto {{BRAND_BG}} and {{BRAND_ACCENTS}} by role (background, surface, accent), don't reuse them as the format. Neighbouring shots with the same palette share a row.
| # | luma mean · p95 | colours (share of frame) | highlights (bright pixels) |
|---|---|---|---|
| 1 | 0.91 · 0.99 | #F3F3F5 80% · #D6D9DB 13% · #A5A4A5 4% · #333131 2% · #6DAEF2 1% | #FCFCFC ≈6500 K 80% · #FDFDFD ≈6500 K 10% · #FCFCFE ≈6580 K 9% |
Whole film (time-weighted): #F3F3F5 80% · #D6D9DB 13% · #A5A4A5 4% · #333131 2% · #6DAEF2 1%.
Brightness curve (measured)
Mean luma per 1 s, one character each, grouped in tens; p95 = the bright highlights. Scale: ▁ = 0 (black) → █ = 1.0 (white); luma runs 0–1.
0s
mean ██████████
p95 ██████████
Curve facts: average 0.91 · darkest 0.91 at 0.0 s · brightest 0.91 at 2.0 s.
Layout boxes (inferred)
| Element | Shots | Box x · y · w · h (%) | Source · confidence | Notes |
|---|---|---|---|---|
| Header benefit line | 1, beat 1 | 31 · 11 · 40 · 2 | measured text box · high | Replace with {{BENEFIT}} |
| Listing product title | 1 | 35 · 30 · 56 · 2 | measured text box · high | {{PRODUCT}} |
| Listing subline | 1 | 35 · 33 · 43 · 2 | measured text box · high | Short product category |
| Lower section title | 1 | 4 · 55 · 16 · 2 | measured text box · high | Marketplace chrome |
| Lower feature heading | 1 | 8 · 82 · 39 · 2 | measured text box · high | Rebuild with real product evidence |
| Monthly metric heading | 1, beat 2 | 34 · 11 · 34 · 2 | measured text box · high | Header text |
| Budget heading | 1, beat 3 | 39 · 11 · 22 · 2 | measured text box · high | Header text |
| End lockup | 1, beat 5 | 41 · 10 · 18 · 3 | sheet tile at S1 0:08.5 · medium | Centre {{LOGO}}; fit width to actual logo |
| End CTA text | 1, beat 5 | 38 · 15 · 24 · 2 | estimate · low | Place {{CTA_URL}} under lockup; verify in export |
End card: a header state, not a new full-screen card. Keep the fixed page around {{LOGO}}; add {{CTA_URL}} at ≥22 px cap height for a new version.
Material card (inferred)
:root { --brand-bg: {{BRAND_BG}}; --brand-accent: {{BRAND_ACCENTS}}; --ink: #222; }
.page { background: var(--brand-bg); color: var(--ink); }
.header { overflow: hidden; background: color-mix(in srgb, var(--brand-bg) 92%, var(--brand-accent)); }
.proof-card { background: color-mix(in srgb, var(--brand-bg) 96%, white); border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent); border-radius: 20px; box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.chip { border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.05); }
No 3D is needed. Keep the capture and charts in deep focus, matching plate 5.
Plate 07
Voice and delivery
Measured: no speech. Voice direction (inferred): no voice; the picture carries it. Required words must be readable at phone size without a sound track.
Plate 08
Sound design
Music (inferred): the reference is effectively silent. For a new version, use a quiet original electronic bed only if the channel calls for sound; let the visuals remain clear when muted. Effects: no audible reference hits to copy. Space: keep ample room around beats 2–5; do not invent cue-locked cuts.
At a glance
- Tempo: no steady pulse was found. Time the edit to the cue sheet below, not to a BPM.
- Key: none reported (little tonal music).
- Loudness of the reference (measured): −70.0 LUFS integrated, true peak – dBTP, range 0.0 LU. That is how this film was mastered, not a target.
For agents: Sound grid · Original music bed
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Sound grid (measured)
Tempo: no steady pulse was found. Time the edit to the cue sheet below, not to a BPM.
Key: none reported (little tonal music).
Energy map (RMS per 1 s, ▁ = −90 dB → █ = −90 dB):
▁▁▁▁▁▁▁▁▁▁
Cue sheet: no distinct hits, whooshes or clicks were found.
Loudness of the reference (measured): −70.0 LUFS integrated, true peak – dBTP, range 0.0 LU. That is how this film was mastered, not a target.
Loudness targets for your version (common practice per platform; the brief overrides them):
| where it plays | integrated | true peak max | note |
|---|---|---|---|
| YouTube | −14 LUFS | −1 dBTP | louder masters are turned down; quieter ones are not turned up |
| X, LinkedIn (this reference) | −14 LUFS | −1 dBTP | no published normalisation: the file plays as mastered |
| TikTok, Reels, Shorts | −14 to −10 LUFS | −1 dBTP | played on phone speakers; short-form is often mastered hotter |
| Website or app (autoplay) | −16 LUFS | −1 dBTP | often starts muted; keep the unmuted level comfortable |
| Broadcast (EBU R128) | −23 LUFS | −1 dBTP | only when the brief asks for it |
Original music bed (inferred)
For an optional sound-on version, choose 90 BPM in A minor: soft sine bass, short felt-key notes and airy noise, with no prominent drums. There is no measured pulse, so 90 BPM is an original gentle pace rather than a synchronization target. Shot 1 stays one section: sparse opening under beat 1, added notes at beats 2–4, a resolved sustained chord under beat 5. Cue frames: none measured; use the JSON's empty cue list and align any new accents to the visible internal changes, never to imagined cuts. Music-model prompt: “Original understated electronic UI bed, 90 BPM, A minor, felt keys, soft sine bass, no vocal or sharp percussion, spacious resolution.”
Plate 09
Packaging
Title (inferred): {{PRODUCT}}: {{BENEFIT}} in a moving header. Cover: fixed product listing with one legible header proof, not a collage. Post copy: one benefit sentence plus {{CTA_URL}}. Audience signals: the post had 9 views at capture, too little to infer performance.
Plate 10
Script template
[beat 1 · shot 1 · on-screen ≤5 words] {{BENEFIT}}
[beat 2 · shot 1 · on-screen ≤4 words] {{METRIC_LABEL}} + a real, authorized value
[beat 3 · shot 1 · on-screen ≤4 words] {{FEATURE}}
[beat 4 · shot 1 · on-screen ≤4 words] {{INSIGHT}}
[beat 5 · shot 1] {{LOGO}} · {{CTA_URL}}
(inferred) No spoken line or caption track. Keep proof labels short enough to read in their header phases; the outer listing supplies persistent product context.
Plate 11
Production plan
Two routes (inferred)
Minimum: Remotion. Build the complete listing and animated header in JSX/CSS/SVG at 1080×2344, 60.155 fps. Claude can code and render it, and synthesize the optional quiet bed. This simplifies the genuine marketplace context into a brand-neutral listing; it gives up the exact texture and credibility of a real capture. User supplies real product data, logo and UI assets.
Full: screen recording → Remotion. Capture a real, authorized {{PRODUCT}} listing/UI as a clean 1080×2344 PNG or ProRes frame sequence at 60.155 fps. Pass that capture to Remotion as the fixed base; pass a transparent 1080×2344 PNG sequence of the designed header animation, or its JSX source, at the same fps. Render an optional original music WAV at 48 kHz and hand it to Remotion; export H.264 MP4 at 1080×2344 and 60.155 fps. Preserve the page crop across every frame.
Asset honesty: use real product captures or UI rebuilt in code. Never generated product UI, invented screenshots, fake metrics, fake reviews or fake outputs. In this film the lower listing and every header figure must refer to the same {{PRODUCT}}.
Plate 12
Prompts
Script prompt (inferred)
Write five short header states for {{PRODUCT}}: {{BENEFIT}}, a real {{METRIC_LABEL}}, {{FEATURE}}, {{INSIGHT}}, then {{LOGO}} with {{CTA_URL}}. Keep each state short enough for the measured header box and 22 px phone cap minimum. Use only verified product values.
Motion prompt (inferred)
Build the fixed marketplace listing and animate only a clipped header layer. Use {{BRAND_FONT}}, {{BRAND_BG}}, {{BRAND_ACCENTS}}. Follow shot 1 and the beat phases in plate 4. Render at source cadence; keep the outer page pixel-stable.
Plate 13
Edit recipe
How it's built (inferred)
Signature move: a changing header inside a locked page. Shot 1 spans frames 0–581; camera scale remains ×1.000 and pan remains zero (plate 5). Separate a fixed capture/base page from a header overlay clipped to the top panel. Keep status bar and lower listing above or outside that mask so animation never shakes the page. Build chart lines as SVG paths, bars as transform-origin:bottom rectangles, donut as a stroked SVG circle; use 12–24 f ease-out cubic-bezier(.2,.8,.2,1) for entrances and 12 f opacity overlaps for internal replacements. These are construction targets, not measured transition lengths. Render every frame on ones at 60.155 fps; use 180° shutter simulation only on moving cards, never blur page text. Avoid fractional-pixel movement in the listing.
Internal handoffs. The sheets suggest header-picture changes near frames 120, 240, 360 and 480; the measurement identifies no cuts or discrete step-change boundaries. Treat these as approximate design anchors inside shot 1. At each, crossfade only the clipped header layer over 12 f, leaving the outside page unchanged. At beat 2 animate the amount in roughly 18 f; at beat 3 draw both trend paths over roughly 24 f; at beat 4 draw the donut over roughly 24 f. Beat 5 resolves to {{LOGO}} with {{CTA_URL}} beneath it. No measured end fade: end on the visible page state.
Build order
- Build the fixed shot 1 page with real
{{PRODUCT}}data and a bounded header mask. - Implement beats 1–5 as header components and tune internal handoffs against the labelled sheet tiles.
- Apply the plate 6 type scale and material card; verify every required word meets the phone minimum.
- Add the optional plate 8 bed; render shot 1 as one continuous export, then inspect hook, each beat anchor and final frame.
Plate 14
QA checklist
- Output is 1080×2344 at 60.155 fps, 582 frames, with no cuts or closing fade.
- Fixed page registration drifts by no more than 1 px between beat anchors.
- Header animation stays inside its mask; no card covers the product title or lower section.
- Every required word has cap height ≥22 px at 1080-wide delivery; smaller details are decorative.
- Beat 5 shows
{{LOGO}}and readable{{CTA_URL}}as text before frame 581. - If sound is added for X, target −14 LUFS integrated and true peak ≤−1 dBTP; mute playback still works.
- All values, charts and screenshots match real
{{PRODUCT}}evidence; reference identity is absent.
Plate 15
Make it yours
Brand slots
| Slot | Replaces in the reference | Notes |
|---|---|---|
{{PRODUCT}} | Fineyo name and listing | Same product throughout |
{{BRAND_FONT}} | Reference UI type | Free fallback: Inter |
{{BRAND_BG}} | Pale page and header ground | Choose your own base |
{{BRAND_ACCENTS}} | Blue, mint and chart accents | Define accessible roles |
{{LOGO}} | Reference app icon/lockup | Use authorized asset |
{{CTA_URL}} | Store/link destination | Plain readable text |
{{BENEFIT}} | Opening benefit claim | Verify claim |
{{METRIC_LABEL}} | Monthly amount heading | Pair with verified value |
{{FEATURE}} | Budget proof label | Real feature |
{{INSIGHT}} | Category breakdown label | Real insight |
What this film avoids (inferred): voiceover, people, stock footage, cutaway scenes, feature-list slides, dramatic camera moves and audible hit effects.
Brand-distance warning (inferred): copying the pale storefront, blue action pill, handwritten icon shape, expense-chip arrangement and exact finance figures together would read as the reference. Change the visual proof vocabulary first: use your own data category and chart form.
Adapt the aspect (inferred)
- 16:9: Re-lay out as a two-column frame: listing on one side, enlarged header states on the other; a centre crop loses too many measured boxes. Use ≥38 px cap for required text and keep title/CTA clear of platform overlays.
- 9:16: Centre-crop the 59:128 source, then move the one lost top box inside; keep required cap ≥22 px and keep the CTA above the lower platform controls and below top UI.
- 1:1: Re-lay out the header over a shortened listing rather than cropping; keep icon/title and one proof panel, use ≥22 px cap, and place CTA away from lower/right platform controls.
Adapt the length (inferred)
- 15 s: Keep all five beats within shot 1; give the proofs more reading space without adding holds to the outer page.
- 30 s: Add verified product examples inside beats 2–4 while preserving the contained-header grammar; keep beat 5 concise.
- 60 s: Introduce new verified proof phases within shot 1, with distinct labels and visuals; do not simply slow the original chart builds or stretch the final lockup.
The creator's signature (don't copy): Fineyo name, logo shape, exact finance figures, copy and palette. The transferable format: a static listing that frames a sequence of small, legible proof animations in its header.
Source: https://x.com/fineyoapp/status/2116956566108971124 · measured with timeline v2 on 2026-11-04 · (measured) = read off the film; (inferred) = construction reading
For agents: Aspect conversions · Length cuts
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Aspect conversions (computed from the measured boxes)
Aspect conversions (computed from the measured boxes): a centre crop of the reference frame, checked against its text boxes and moving elements.
| to | deliver at | a centre crop keeps | measured boxes kept | boxes a crop loses | phone minimum | so |
|---|---|---|---|---|---|---|
| 16:9 | 1920×1080 | middle 25.9% of the height (cut 37.0% top and bottom) | 7 of 20 | "Every expense, in one…", "Fineyo: Expense Tracker", "Budget Planner & Spendi…", "Souvenirs fo... $34,76" … | 38 px cap | re-lay out: a crop loses too much |
| 9:16 | 1080×1920 | middle 81.9% of the height (cut 9.0% top and bottom) | 19 of 20 | "7:594" | 22 px cap | centre crop, then move the lost boxes inside |
| 1:1 | 1080×1080 | middle 46.1% of the height (cut 27.0% top and bottom) | 12 of 20 | "Every expense, in one…", "Home Screen Widgets", "Your finances, one tap…", "7:594" … | 22 px cap | re-lay out: a crop loses too much |
Length cuts (computed from the scales flags)
Length cuts (computed from the scales flags): frames per shot at 60.155 fps; fixed shots keep their length, optional shots go first when the cut is shorter, the scaling shots share what is left. Snap each cut to the nearest beat when plate 8 has a steady pulse.
| # | flag | reference (f @60.155) | 15 s cut | 30 s cut | 60 s cut |
|---|---|---|---|---|---|
| 1 | scales | 582 | 902 | 931 | 931 |
| total | 582 f · 9.7 s | 902 f · 15.0 s | 931 f · 15.5 s + 14.5 s new beats | 931 f · 15.5 s + 44.5 s new beats |
30 s: stretching tops out at ×1.6 (15.5 s); add 14.5 s of new beats (more of the scaling beats' pattern with new content), never a longer hold on the fixed shots · 60 s: stretching tops out at ×1.6 (15.5 s); add 44.5 s of new beats (more of the scaling beats' pattern with new content), never a longer hold on the fixed shots.
Recipe
One prompt that makes a film like this with Claude. Use the method; make the footage, words and brand your own.
Make a 9.68 s 59:128 film for {{PRODUCT}} in the format of 2116956566108971124 (animated marketplace header). Brand: font {{BRAND_FONT}}, background {{BRAND_BG}}, accents {{BRAND_ACCENTS}}, logo {{LOGO}}, call to action {{CTA_URL}}. Supply {{BENEFIT}}, {{METRIC_LABEL}}, {{FEATURE}} and {{INSIGHT}} as verified product copy. First load `get_blueprint("2116956566108971124", format: "json")` and use its timing and geometry. Make one fixed mobile listing with a clipped animated header showing benefit and data chips, monthly metric and bars, paired budget cards and trends, category donut, then product lockup. These are phases inside shot 1, not cuts. Keep the camera at ×1 scale and zero pan; use masked header crossfades and chart builds. Use cap heights of 33–35 px for main type and at least 22 px for every required word. Use brand colour roles. The film is picture-led and wordless. An optional original felt-key bed should remain quiet, mastered for X near −14 LUFS and ≤−1 dBTP. Use real {{PRODUCT}} captures as a base plus Remotion header animation, or a full Remotion code rebuild as the Minimum route. Never generate product UI, screenshots, reviews or results. Export 1080×2344, 60.155 fps, H.264 MP4. End on {{LOGO}} plus {{CTA_URL}} as text; omit QR codes and store badges. Do not copy reference colours, typeface, logo, slogans or music.Films like this
Tagged claude motionscreen recordingverticalapp storeproduct uimotion graphicsfinance appdata visualization