Free developer tools from placeholder.com

Placeholder everything.
Ship none of it.

Images, avatars, photos, QR codes, barcodes and brand kits. People, a mock REST API, a whole fictional company and AI test fixtures with answer keys. Filler text, safe test values, dummy files and HTTP test endpoints. Free, no sign-up, no API key. The same URL always gives the same result. And a CI check that stops any of it reaching production.

The tools

Copy and paste

<!-- A hero image, sharp on retina screens -->
<img src="https://via.placeholder.com/1200x600.webp"
     srcset="https://via.placeholder.com/[email protected] 2x" width="1200" height="600" alt="">

<!-- A product photo and an avatar -->
<img src="https://via.placeholder.com/photo/coffee/600x400.webp" width="600" height="400" alt="Coffee">
<img src="https://via.placeholder.com/avatar/Anna%20Svensson.png?size=48&amp;dpr=2" width="48" height="48" alt="Anna Svensson">

<!-- A whole fictional brand -->
<link rel="stylesheet" href="https://data.placeholder.com/brands/brightfjord/tokens.css">
<img src="https://via.placeholder.com/brand/brightfjord/logo.svg" height="32" alt="Brightfjord">

<!-- A barcode that can't ring up a real product -->
<img src="https://via.placeholder.com/barcode/ean13.svg" alt="Test barcode">
# 100 synthetic Swedish people as CSV
curl -o people.csv "https://data.placeholder.com/people/se.csv?count=100"

# Mock REST API
curl "https://data.placeholder.com/api/posts?userId=1"

# An invoice PDF and the answers an extraction model should find
curl -O https://data.placeholder.com/fixtures/documents/invoice-0007/invoice-0007.pdf
curl https://data.placeholder.com/fixtures/documents/invoice-0007/answers

# A 10 MB upload test file, and a server that answers 503
curl -O https://files.placeholder.com/sizes/10mb.bin
curl -i https://http.placeholder.com/status/503

How it works

Deterministic
The same URL gives the same bytes, forever. Datasets, fixtures, brand kits, avatars and photos are versioned (v1) and changes ship as a new version, never inside an old one; the classic images are pinned to the same renderer build. Successful responses are cached for a year, and your snapshot tests stay green. Two exceptions: safe test values are reference data, cached for a day so corrections can reach you, and the HTTP test endpoints answer live, by design.
Coherent
Data hangs together. A persona's avatar URL is built from their name, mock API users are personas, every record in the Brightfjord company refers to the same people, customers, deals and incidents, and Brightfjord's brand kit, invoices and RAG corpus are built from those same records.
Verifiable
The company dataset and every fixture ship with questions, exact answers and the evidence that proves them (record IDs, pages and bounding boxes, lines, cells), so you can score an agent, an extraction model or a RAG pipeline against them.
Detectable
Every image from via and every response from data, files and http carries an X-Placeholder header. Avatar, photo, QR, barcode and brand images, and classic images in AVIF, carry an embedded marker that survives being downloaded into your repo. placeholder-check finds both, so placeholders can't ship by accident.
Synthetic and safe
No real people. Identifiers come from officially reserved test ranges where they exist (Skatteverket test personnummer, Ofcom drama numbers, NANP 555-01xx, RFC 2606 domains, PSP test IBANs). Each value says whether it is in such a range.
Free and private
No sign-up, no API key, no cookies, no analytics scripts. We don't use visitor data for anything but keeping the service running (see below).

For AI coding tools

Each host publishes an llms.txt with the URL grammar, defaults and limits, written for code assistants and agents:

Never use these in production. They are for mockups, prototypes, tests, demos and evals. Add placeholder-check to CI so nothing slips through.

Privacy and fair use