Free online dummy text generator — by paragraph, word, sentence or exact character count, as plain text, HTML, Markdown or JSON.
Free for any project — client work, commercial use, no attribution needed.
Pick how much text you want, pick a style, press Generate Text. The result appears on the right with a live word and character count under it, and the box is editable, so you can trim a line before copying without going back to the controls.
.txt, .html, .md or .json depending on the format.The shortcut chips under the amount cover the sizes people ask for most — 3 and 5 paragraphs, 150 and 500 words, and 255, 500 or 1,000 characters. One click sets the unit, sets the number and generates.
Five units, and each one means what it says. Ask for 300 words and you get 300 words, not "about 300":
| Unit | Range | What you get |
|---|---|---|
| Paragraphs | 1 – 200 | Whole paragraphs of three to six sentences each |
| Words | 1 – 10,000 | An exact word count, still split into sentences and paragraphs |
| Sentences | 1 – 1,000 | An exact sentence count, grouped four to a paragraph |
| Characters | 10 – 50,000 | An exact character count, down to the last one |
| List items | 1 – 500 | Short bullet lines, as <li>, - or • |
Most generators fill up to your target and then stop at the last whole word, so asking for 255 characters gets you 249. That is fine for a mockup and useless for the two jobs people actually use character mode for: filling a database column to see what happens at the limit, and testing a meta description or a card title where the cut-off is the whole point.
This generator closes that gap. When the text lands short, it looks for real words from the same word bank that fit the remaining space exactly, then closes the sentence. You end up on the exact number of characters you typed, with no truncated half-words in the output. The line under the box tells you the count either way — if a target is too small for the words available, it says so rather than quietly missing.
The format is applied after the text is generated, which is why the amount stays honest.
Ask for 500 characters of HTML and you get 500 characters of copy with <p>
tags around it — not 500 characters of markup with a few words inside.
•.<p> per paragraph, <ul> and <li> for lists, optional <h2> headings.## headings and - bullets.Classic Latin is the default because it is what everyone recognises. The ten themed banks — bacon, hipster, cupcake, cheese, pirate, corporate buzzwords, developer jargon, clinical jargon, cat and dog — exist for one practical reason: when a client keeps reading the placeholder text and commenting on it, filler that is obviously a joke ends that conversation.
The language option is the more useful one. Latin makes every layout look like English, and that hides real problems — German words are longer, Japanese and Chinese are set without spaces between words, Arabic and Persian run right to left, and Hindi ends its sentences with a danda rather than a full stop. Each language here carries its own punctuation, spacing and direction, so you can see how a design behaves before the translation arrives, not after.
The full list is German (Deutsch), Spanish (Español), French (Français), Italian, Portuguese, Dutch (Nederlands), Hungarian (Magyar), Indonesian, Greek, Russian, Arabic, Persian, Hindi, Japanese, Chinese, Korean and Thai — plus classic Latin and an English bank built from real, common English words for when you want filler that reads as plain text rather than as Latin.
It is mangled Latin. The source is de Finibus Bonorum et Malorum, a treatise Cicero wrote in 45 BC; a printer in the 1500s scrambled a passage from it to make a type specimen, and the scrambled version stuck. The familiar opening, lorem ipsum dolor sit amet, is the tail of the Latin word dolorem with its first syllable cut off — which is why it means nothing even to a Latin reader.
That meaninglessness is the feature. Readable filler pulls attention to the words; nobody can help reading them. Nonsense that still has the shape and rhythm of real prose lets everyone in the room look at spacing, line length and hierarchy instead.
It is a web page, not a plugin, so it cannot place text directly into
Word, Figma, InDesign, Canva or PowerPoint — copy and paste is the
way across. Several of those have their own filler built in: Word inserts it with the
=lorem() function, and InDesign has Type → Fill With Placeholder
Text. Use this one when you need control over the exact length, the format or the
language, and paste the result in.
It is not a library or an extension either. If you need placeholder text generated
inside your own code, an API is the wrong shape for it — a local
package does the job offline and faster. In Python that is
faker or lorem, in Node it is @faker-js/faker, and
in LaTeX the lipsum package gives you
\lipsum[1-5]. For a Chrome extension or a
Figma plugin, the relevant store is the place to look. A web page cannot
install itself into your editor, so if that is the alternative you were after, this is not
it.
It also does not generate placeholder images, names, addresses or fake user records, and it does not export to PDF — paste the text into a document and print it from there. This tool does text. Nothing you type or generate is uploaded — the whole thing runs in your browser and keeps working offline once the page has loaded.