Instrument x Seth Akkerman
Projects Figma Ad Copy Character Counter

Figma Ad Copy Character Counter

A Figma plugin that automatically detects and corrects character counts embedded in ad copy text layers — no more manually counting headlines and descriptions. Built for ad creative workflows where copy specs like '30 character max' need to be verified and tracked across dozens of variants.

Working on Spotify advertising creative means managing a lot of copy — headlines capped at 30 characters, descriptions at 90, across multiple ad formats and platforms. The design files had a convention: text layers showed the copy followed by its character count in parentheses, like Your People (16). Useful for review. Painful to maintain manually every time a word changed.

How it works

The plugin scans any selected frame or group and uses a regex pattern to find all text in the Text (XX) format. For each match, it calculates the actual character count of the text content and compares it against the number already in parentheses. If they differ, it surgically replaces just the number — preserving all font styles and formatting — and logs the before/after change. The UI reports exactly how many layers were scanned, how many lines were updated, and shows a full diff of every correction made.

The tricky part was handling text edits without blowing up mixed-style text nodes. Figma’s plugin API requires loading fonts before any character manipulation, and offset tracking is essential when making multiple replacements in a single text layer — each insertion or deletion shifts the index positions of everything that follows.

Why it matters

This is a small plugin solving a very specific workflow pain, but it reflects a broader pattern worth noting: design systems at scale generate a lot of manual bookkeeping, and almost all of it can be automated. Ad creative teams, content designers, and anyone managing copy-heavy files with character constraints can burn real time on this kind of verification.

The same approach extends naturally to other annotation patterns — word counts, token names, version numbers embedded in layer names. Anywhere a file maintains a derived value that could drift from its source, a targeted plugin like this pays back its build time quickly. The convention of storing metadata inline in text layers turns out to be surprisingly automation-friendly.

Role
Design Engineer
Tools
Figma Plugin API TypeScript JavaScript
Video thumbnail for Figma Ad Copy Character Counter