Bacon Ipsum, Cat Ipsum & Hipster Ipsum: When to Use Them (2026)
Bacon Ipsum, Cat Ipsum and Hipster Ipsum swap Latin for themed filler. Here is when a themed generator helps a mockup, and when it quietly wrecks one.
Bacon Ipsum, Cat Ipsum and Hipster Ipsum: When Themed Filler Beats Latin
Every designer eventually gets the same feedback: "the client kept asking what the Latin means." Themed placeholder text — Bacon Ipsum, Cat Ipsum, Hipster Ipsum — was invented for that exact meeting. It swaps Cicero's Latin for a word bank people can read. Sometimes that is a real improvement. Sometimes it is the fastest way to lose an hour of a design review to jokes about brisket.
TL;DR
- Themed ipsum replaces the Latin word bank with meat, cats, or artisanal-coffee vocabulary.
- Use it when you need stakeholders to read the layout, not skim past it.
- Avoid it for layout stress-testing: themed word banks are short and uniform.
- Bacon Ipsum ships a free JSON API with
type,parasandformatparameters. - Never let themed filler reach production — it is far more visible than Latin.
What is Bacon Ipsum?
Bacon Ipsum is the best-known themed generator, and the one with a documented API. The idea is trivial and that is the point: keep the shape of Lorem Ipsum — sentence-ish runs of comma-separated words, no capitals worth reading — and swap the vocabulary.
Where themed ipsum generators came from
The themed-ipsum wave started around 2011 as a joke between agency designers and never stopped. The pattern is now a genre: pick a subculture, harvest 200 nouns, publish a button. Cat Ipsum leans on purring, knocking things off tables and sudden 3 a.m. sprints. Hipster Ipsum runs on cold-brew, vinyl and reclaimed timber. Corporate Ipsum recycles synergy and value-add. Cupcake Ipsum is exactly what it sounds like.
They all solve the same social problem rather than a technical one. Latin filler tells a reviewer "ignore this text." Themed filler tells a reviewer "this text is a joke, but you can see how long it is." Those are different signals, and which one you want depends entirely on the meeting.
How the Bacon Ipsum JSON API works
Bacon Ipsum publishes a REST endpoint that returns an array of paragraphs. It takes four parameters worth knowing: type, paras (defaults to 5), sentences (which overrides paras), and format — json, text or html.
curl "https://baconipsum.com/api/\
?type=meat-and-filler¶s=2&format=text"
The JSON response is a plain string array, which is why it shows up in so many "learn to fetch" tutorials:
const url =
"https://baconipsum.com/api/?type=all-meat¶s=3";
const paras = await fetch(url).then((r) => r.json());
document.querySelector("#mock").innerHTML =
paras.map((p) => `<p>${p}</p>`).join("");
If you are eyeballing that response by hand, paste it into the iKit JSON Decoder rather than squinting at an escaped one-liner in a terminal.
all-meat vs meat-and-filler
The type parameter is the interesting design decision. all-meat returns pure theme vocabulary. meat-and-filler mixes the theme with ordinary Latin filler, which produces text that reads as placeholder at a glance but still carries the joke. For mockups, meat-and-filler is almost always the better choice: it restores some of the word-length variety that a pure themed word bank throws away.
| Generator | Word bank flavour | Best fit |
|---|---|---|
| Bacon Ipsum | Cuts of meat, BBQ terms | Food, restaurant, delivery |
| Cat Ipsum | Cat behaviour, absurdist | Pets, consumer, playful |
| Hipster Ipsum | Craft, artisan, lifestyle | DTC brands, cafés, retail |
| Corporate Ipsum | Business jargon | B2B SaaS, enterprise decks |
When themed filler beats Lorem Ipsum
When you need stakeholders to actually read the mockup
This is the strongest case. Nielsen Norman Group has been blunt about the downside of fake copy in prototypes: placeholders are convenient early, but they create problems once the real content has different characteristics. What NN/g describes is a layout problem. There is a parallel social problem, and themed filler is a decent patch for it.
Latin filler is invisible. Reviewers' eyes slide off it, so they comment on the only thing they can parse: colour, spacing, the logo. Readable filler pulls attention back into the content blocks. A stakeholder who reads "smoked brisket ribeye tri-tip" and asks "wait, is that the headline or the subhead?" has just given you the feedback you actually wanted.
Tone-matching a pitch deck to the brand
If you are pitching a barbecue chain, Bacon Ipsum in the mockup is a two-second signal that you thought about the client's world. It costs nothing and it lands. The same logic makes Hipster Ipsum reasonable for a coffee roaster and Corporate Ipsum genuinely funny in an enterprise dashboard demo — as long as the room is the kind of room that finds that funny.
Quick internal demos and component libraries
Themed filler is good for the throwaway tier: Storybook stories, a Figma frame you will delete tomorrow, a screenshot for Slack. Its readability is an asset when the audience needs to grasp a component's structure in three seconds. For measuring how much filler a block actually needs, drop a sample into the iKit Word & Character Counter and size the paragraph against your real content budget instead of guessing.
When themed ipsum is the wrong choice
Why Lorem Ipsum is better for layout stress-testing
Themed word banks are small, English, and tonally uniform. "Bacon" and "brisket" and "pancetta" are all short. That produces suspiciously even text blocks — the exact failure mode you are supposed to be hunting for.
Latin filler is not perfect either, but its word lengths vary more widely and it contains nothing your eye can anchor on, which is what you want when the question is "does this grid hold." When the question is "does this grid hold under pressure", neither is enough: you want deliberately hostile filler, with 30-character compound words and a paragraph that is one sentence long.
The i18n gap: filler in English under-tests every other locale
Here is the failure mode neither Latin nor bacon catches. Per the W3C's guidance on text size in translation, IBM's published expansion rates for English-to-European translation get dramatically worse for short strings — the shorter your source label, the more it grows.
| English source length | Average expansion |
|---|---|
| Up to 10 characters | 200–300% |
| 11–20 characters | 180–200% |
| 21–30 characters | 160–180% |
| Over 70 characters | 130% |
A nav item that reads "Views" in English can triple in Italian. No themed generator will surface that, because every themed generator ships short English nouns. If localisation is on your roadmap, test with pseudolocales instead: Android's English (XA) pseudolocale accents the base text, expands it, and brackets each message unit specifically to expose layout breakage, as documented in the Android pseudolocales guide. That is a real test. Bacon is a vibe.
The accessibility footnote nobody mentions
Filler text is usually left inside an en document even though it is not English. WCAG Success Criterion 3.1.1 requires the page language to be programmatically determinable, and MDN's reference on the lang attribute is explicit that the point is letting assistive technology pick the right pronunciation. A screen reader hitting "lorem ipsum dolor sit amet" in an en document produces gibberish.
Themed ipsum is, ironically, better behaved here — it is genuinely English words, so lang="en" is honest. It is a small point, but if you demo prototypes to accessibility reviewers, it is one fewer distraction.
How to generate themed placeholder text without an API
A word-bank generator in twenty lines
Every ipsum generator is the same three steps: a word bank, a random sentence assembler, a paragraph assembler. Here is the whole idea, no dependencies:
const bank = [
"bacon", "brisket", "pancetta", "short ribs",
"pork belly", "capicola", "tri-tip", "jowl",
];
const pick = (a) => a[(Math.random() * a.length) | 0];
const sentence = (n = 8) => {
const w = Array.from({ length: n }, () => pick(bank));
return w.join(" ").replace(/^./, (c) => c.toUpperCase())
+ ".";
};
const para = (n = 4) =>
Array.from({ length: n }, () => sentence()).join(" ");
Swap the array and you have Cat Ipsum. That is the entire genre. If you need the output as snake_case keys or CONSTANT_CASE fixtures for seed data, run it through the iKit Case Converter rather than writing another regex.
Why an offline generator beats a network call
Three reasons, in order of how often they bite:
- Availability. A prototype that fetches filler at runtime breaks on a plane, in a locked-down corporate network, or the day the free API rate-limits you.
- Review overhead. In any organisation with a dependency review process, "we call a third-party endpoint to get fake text" is a conversation you do not want to have.
- Privacy. Filler generation has no business leaving your machine. This is the same argument iKit makes for every tool it ships: the iKit Lorem Ipsum Generator runs entirely in the browser, so nothing about your project — not even how much placeholder text you needed — hits a server.
Keeping filler out of production
Themed filler is louder than Latin, which cuts both ways. It is more embarrassing when it ships, but also easier to catch. Add your word bank's most distinctive token to the same pre-release grep you use for TODO and FIXME:
grep -rInE "bacon ipsum|cat ipsum|lorem ipsum" dist/ \
&& echo "filler text found — fix before release"
Wire that into CI and the whole class of problem disappears. Drafting the copy that replaces it is a separate job, and one worth doing in a plain Markdown editor where you can see the real word count before it lands in the design.
References
- JSON API — Bacon Ipsum — parameter list, defaults and response shape for the Bacon Ipsum endpoint.
- A Downside of Fake Copy in UI Prototypes — NN/g on where placeholder text stops helping a design.
- Text size in translation — W3C i18n article; source of the IBM expansion-rate figures.
- Test your app with pseudolocales — Android's English (XA) and AR (XB) pseudolocales for layout testing.
- lang HTML global attribute — WCAG 3.1.1 requirements and screen-reader pronunciation behaviour.
Related on iKit
- Start with the fundamentals of placeholder text before picking a flavour — how much filler a mockup needs and where it quietly ruins a design.
- Themed or Latin, all filler comes from the same 500-year-old accident — the paper trail from Cicero to Letraset, and why "an unknown printer" is a myth.
- The case against any filler at all, themed included — what placeholder text hides in a design review and when to swap it for real copy.
- Measure how much filler your layout actually needs — live word and character counts for sizing a content block against the real thing.
Related posts
REST API Naming: snake_case Backend, camelCase Frontend (2026)
REST API naming forces a choice: snake_case on the backend, camelCase in the client. Here is where to convert, what the round trip loses, and how to decide.
Why Designers Still Use Lorem Ipsum in 2026 (And When Not)
Lorem ipsum survived sixty years of design tooling for one reason: it fails loudly. Here is what filler text is genuinely good at, and where it costs you.
Lorem Ipsum for i18n Testing: Catch Text Overflow (2026)
Lorem Ipsum passes every layout test, then German breaks it. Here is why Latin filler hides i18n bugs and what to paste instead before you localise.