Regional legal / disclaimer footer variants
Legal and marketing run this per market. Marketing owns the promo body. Legal owns the approved footer string. The promo body is shared. The small-print footer is not. Each market has an approved disclaimer string, and that string has to be the one on the image.
This is market-by-market work. Legal has to be able to diff the approved string. A design file cannot be diffed. When legal revises a sentence, the image for that market has to change with the file.
The job is one PNG per market: the promo, plus the approved footer for that market. The body can stay the same. The footer string comes from per-market data. When legal revises a sentence, you change the file and export that market again.
Give Lerret a React component under .lerret/ and optional data. export writes a PNG. Same component, data swapped. There is no batch product, no queue, no orchestrator.
The component is .lerret/marketing/promo-with-footer.jsx. It is a promo body plus a small-print footer block. One component. The footer is a field, not a locked layer in a design file.
The data is per-market data supplying the approved disclaimer string. One file per market, or one artboard per market with colocated data. Either way the string lives in a file someone can review. If you re-run per market with --data, that is bulk pattern 1. --data applies to the run and is never written back into .lerret/.
The image is a PNG 1200×630 per market.
The approved string is in a reviewed file. Legal can diff it. A design file cannot. The next revision is a text change and a re-export, and the diff of the data file is the record of what legal signed.
Point --data at the market’s file, the one that holds the approved disclaimer string. The command writes a 1200×630 PNG. Legal diffs the file, not the pixels. --data is never written back into .lerret/. The next revision is a text change and the same command.
npx @lerret/cli@latest export --data
Start a project with npx create-lerret@latest. More in the use cases index.