About this lorem ipsum generator

A small, dependency-free placeholder-text generator. No account, no upload, nothing you generate is recorded anywhere.

Why it exists

Every designer and developer needs filler text at some point, and most existing generators either return the exact same canned paragraph every time or need a server round-trip to produce something different. This one builds fresh text from a bundled word list on every click, entirely on your device, and gives you a plain-text or paragraph-tagged copy of the result without ever executing a single tag on the page itself.

How the generation works

The word bank is roughly 180 pseudo-Latin words, stored lowercase with no punctuation. Capitalisation and punctuation are added only when a sentence is assembled:

  • Words mode returns exactly the number requested, picked at random from the bank.
  • Sentences mode picks a random word count per sentence (roughly 6–16 words), capitalises the first letter, occasionally drops in a comma partway through for a more natural rhythm, and closes with a full stop.
  • Paragraphs mode picks a random number of sentences per paragraph (roughly 3–7) using the same sentence builder, then joins paragraphs with a blank line.

With the “Start with Lorem ipsum” option checked, the first five words are forced to lorem ipsum dolor sit amet and the rest of that first sentence is random filler as usual — the forced words are never split by the random comma, so the output always begins with the exact string “Lorem ipsum dolor sit amet”. Only the first sentence of the first paragraph carries it; the rest of the output is ordinary random filler.

The paragraph-tags output format wraps each paragraph string in <p> and </p> and displays the result as plain text in a read-only field — the tags are never assigned to any element’s markup on this page, so nothing on the page itself is ever built from a string containing your generated text.

How it was checked

The generation logic is a small, dependency-free module with no DOM access, so it can run and be checked under Node.js directly. Before shipping, it was run with a seeded pseudo-random generator (so results are repeatable) against a set of checks:

Verification checks and results
CheckResult
Requesting 5 words returns exactly 5 wordspass
“Start with Lorem ipsum” produces output beginning with the exact string “Lorem ipsum dolor sit amet”, across 200 random seeds in words, sentences and paragraph modespass
Paragraph-tag mode wraps every paragraph in its own <p>…</p> pair, with the tag count matching the paragraph countpass
Plain-text mode never contains a < character, in any unitpass
Every generated sentence starts with a capital letter and ends with a full stoppass
Word and paragraph counts match the amount requestedpass

How the site is built

  • Static HTML, one small stylesheet, two small scripts. No framework, no build step, no bundler.
  • The generator needs nothing from the network. The word list ships with the page; the favicon is an inline SVG data URI. Once the page has loaded it keeps working offline.
  • System font stack. Your operating system’s UI font, so nothing has to download and nothing shifts as it loads.
  • Nothing you generate is transmitted. Text is assembled locally and never uploaded; refreshing the page or closing the tab discards it.
  • Dark mode follows your system setting via prefers-color-scheme.

Scope and honesty about limits

This produces the classic Latin-style filler text only — there is no alternate language or themed word bank. Sentence and paragraph lengths are randomised within fixed ranges rather than modelled on any particular reading level, tone or real-world corpus, so treat the output as a stand-in for realistic word and sentence length, not for realistic writing.

It is not an accessibility testing tool. Placeholder text should never reach a page a screen reader or search engine will actually encounter — see the caveat on the generator page for why.