Skip to content
leeveel

Writing · since 2024

Notes from the studio.

Things we've learned. Things we've changed our minds about. Drafts in public.

★ Featured · Nº 016 ·6 min read

Every script on your payment page can read the card

Every script on a payment page has the same access as your own code, including to what the customer types. British Airways lost £20m to twenty-two lines of JavaScript. PCI DSS now asks you to know every script on the page and to notice when one changes. Here's what that means — and how to start in an afternoon.

by Nephele K.#security
Read on →

Archive

15 posts
  1. Nº 015

    Native or React Native for a hospitality app?

    Three of the six projects on this site are hospitality or culture apps, and a fourth reads rapid tests through a phone camera. All four shipped in React Native. That's a record, not a rule — here's the order we ask the questions in, and where the answer flips to native.

    Thanos K.5 min#mobile
  2. Nº 014

    Your schema markup is a second copy of the page

    Schema markup is the page written a second time, for machines — and second copies drift. We don't keep ours honest by checking it. The page and its structured data come from the same record, so neither can say something the other doesn't.

    Nephele K.5 min#seo
  3. Nº 013

    The QA list nobody wants to read

    91% of the bugs that reach a real user are off the happy path everyone tested. So before every ship we run the QA list nobody wants to read — empty states, double-submits, offline mid-action, names with an apostrophe. Here it is, in order.

    Ria P.5 min#process
  4. Nº 012

    We trained the model in-house

    A recommender doesn't need a foundation model. We shipped one for a hospitality client — a few thousand parameters, retrained every Monday on a single CPU. Most 'AI feature' briefs we see are a ranking problem in a costume.

    Thanos K.6 min#ai
  5. Nº 011

    The spreadsheet is the spec

    Before we replace a client's spreadsheet with a real internal tool, we read every column, every macro, and every dead tab. The spreadsheet already is the system — the rebuild is a transcription with permissions and a query layer.

    John P.6 min#custom-systems
Showing 5 of 15