Weekly changelog social card

Whoever runs the weekly ship post needs a card when the notes go out. Version, date, a short list of what shipped. Some weeks have three bullets. Some weeks have five. The card has to hold both. This is a weekly file, not a weekly redesign.

The person doing this already has the version and the date. They have a list of bullets that is never the same length twice. They should not open last week’s design file and add a fifth text box, or delete one and leave a hole.

The job is one social image for that week. You write a fresh data file, you export, you post. Next week you write another file. The component stays put. The date stripe stays put. The bullets come from the array.

Give Lerret a React component under .lerret/ and optional data. export writes a PNG. Same component, data swapped, next image.

The component is .lerret/social/release-card.jsx. It draws the version, three bullet lines, and a date stripe. The bullets are an array the component maps over. Three bullets or five, the layout handles it. That mapping is the whole point of keeping this in React instead of a static frame.

Data is { version, date, bullets: [] } from a fresh --data file each week. That is the first of the four bulk patterns: re-run export with a different --data file. Same component, new values, new image. There is no batch product, no queue, no orchestrator. --data applies to every artboard in the run and is never written back into .lerret/. Last week’s bullets do not leak into this week’s component.

The image is a PNG at 1200×630.

You use Lerret because the bullets are an array the component maps over. Three bullets or five, the layout handles it, which is the thing that breaks when a human edits a static design each week. A design file wants a new text box for the fifth bullet. A screenshot of the changelog page will pick up the rest of the site.

npx @lerret/cli@latest export --data

Start a project with npx create-lerret@latest. More in the use cases index.