惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
D
Docker
J
Java Code Geeks
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
腾讯CDC
罗磊的独立博客
U
Unit 42
爱范儿
爱范儿
Vercel News
Vercel News
MyScale Blog
MyScale Blog

alexwlchan’s notes

Blocking referrers with Caddy How to type a Spanish question mark (¿) on a Mac Non-overlapping type comparisons and Python type checkers Why does t.Setenv panic after t.Parallel? Use Path.glob() and Path.rglob() for typed versions of glob.glob() Curious clocks and colourful eyes Track which templates are used by Jinja2 Archeologists distinguish between “sherds” and “shards” A single command to test all my changed Go packages Disable the new message animations in WhatsApp Finding high-churn folders that bother Backblaze Always-on SSH agent forwarding with my Git pushes Managing the caption of a photo with AppleScript (but not PhotoKit) Goodhart’s and Campbell’s Law are different Notes from The Cornishman No. 176 (Spring 2026) Notes from The Cornishman No. 176 (Spring 2026) GitUp can’t diff text files larger than 8MB Home Testing the width of a page on a mobile device using Playwright Disable AirPods charging notifications Start a Caddy server in a subprocess during a Python session Filter a list of JSON object based on a list of tags HOME_GET_ME_HOME is a Citymapper Shortcuts action The FileExistsError exception exposes a filename attribute The red-lined bubble snail Why can’t Python connect to example.com? Useful type hints for Python How to truncate the middle of long command output AirPlay Receiver can interfere with Flask apps What’s the main prefix in SQLite queries?
What is WS11 1DB?
2026-09-09 · via alexwlchan’s notes

Stripe’s placeholder postcode is an industrial park just north of Birmingham.

I was filling in my credit card details on a website this evening:

A credit card details form. There’s a field for card number (with placeholder 1234 1234 1234 1234), postal code (WS11 1DB) and mobile number (07400 123456).

I got curious about the placeholders. They seem to be consistently used across instances of this form; not specific to the single instance I was seeing.

Two of them seem straightforward, where somebody has used sequential digits to indicate a dummy value:

  • 1234 1234 1234 1234 isn’t a real credit card number. The final character of valid credit card numbers is a check digit, calculated using Luhn’s algorithm, used to detect mistakes and typos. This card has the wrong check digit, so we know it isn’t real.

  • 07400 123456 could be a real UK phone number. Ofcom publish numbering data, and every phone number starting 07400 belongs to “Hutchison 3G UK Ltd”, more commonly known as “Three”. They can choose which numbers to allocate within this range, and given it’s a popular placeholder in online forms, I wonder if this number is deliberately unused. (No, I didn’t dial it to find out.)

But what about the placeholder post code? What is WS11 1DB?

It’s a road in Cannock, just north-west of Birmingham. I thought maybe it would be a pseudo-address, like the building in Delaware which is the registered office of thousands of businesses – or perhaps the address of a Stripe office – but no, it looks like it’s just a regular postcode.

You can find local businesses that list it as their address, like an optician, a ceiling insulation firm, and a metal fabricator – nothing to do with online payments. (Most of the businesses at the postcode don’t even have an online presence except Companies House and listing aggregators.)

Occasionally the postcode appears in other places, but it’s only instructing people how to use a form. “Fill in your real postcode, not WS11 1DB.”

I can’t find any information about why this was chosen as the placeholder, and now I’m intensely curious. Does Stripe have a secret link to Cannock? Does this code provide some useful UI property? Was it A/B tested and found to be easily recognised as a placeholder?

If you know what’s going on, please get in touch.