simpl/ipsum
Placeholder text · by URL

Stop copying lorem ipsum. 

Placeholder text that lives at a URL. Fetch it, embed it, script it — paragraphs, words, or sentences, as plain text, HTML, or JSON. The way image placeholders work, but for copy.

No build step. No sign-up. Just a URL.

What's inside

One endpoint, three units

Try it

Build your URL

Loading…
Use it

Drop it into a page

Embed script · data attributes
<script src="__ORIGIN__/simplipsum.js"></script>

<h2 data-lipsum="words/5"></h2>
<p  data-lipsum="sentences/3"></p>
<div data-lipsum="paragraphs/2?format=html"></div>

<!-- or a tag -->
<lipsum>words/12</lipsum>
Plain fetch
fetch('__ORIGIN__/sentences/2')
  .then(r => r.text())
  .then(t => { document.getElementById('bio').textContent = t; });
JSON
const { paragraphs } =
  await fetch('__ORIGIN__/paragraphs/2?format=json').then(r => r.json());
// paragraphs is a string[]
Batch · many in one request
const specs = ['words/5', 'sentences/3', 'paragraphs/2?format=html'];
const { results } = await fetch(
  '__ORIGIN__/batch?reqs=' + encodeURIComponent(JSON.stringify(specs))
).then(r => r.json());
// results[i].text · results[i].html · results[i].paragraphs

Mark up with a data-lipsum attribute on any element, or a <lipsum> tag — the value is the path (unit/count plus any query). Elements that already contain real copy are skipped, so you can leave the attributes in place. Everything fills in a single /batch request; call simplipsum.fill() after adding nodes later.

WordPress

A [lipsum] shortcode & block

Drop placeholder text into any post or page with a shortcode that mirrors the URL — or the SimpliPsum block, with a live preview right in the editor. Built-in and custom packs both work.

Shortcode
[lipsum]
[lipsum words/50]
[lipsum sentences/3 pack=bacon]
Make a pack

Your own words

Packs are unlisted — usable by name via ?pack=<name>, but kept out of the public list. Create-only for now.