Startups are prototypes

Startups are prototypes

A startup isn’t just an early-stage company. It’s a mechanism to reduce uncertainty. Every early customer, product release and funding round exists to answer one question: have we learned enough to justify the next investment? A startup is essentially a super complex prototype designed to validate...

Strategy
2d ago
Shapeshifting the Future

Shapeshifting the Future

Every year we open our doors for a week to a student trying to find their way into the industry. Not work experience in the shadowing-only sense but a real placement, with a real brief. We do the same for a roomful of UCL students, in the studio for an afternoon. From the outside, a career in this...

Studio
8d ago

Your biggest asset in an RFP, your website

Your biggest asset in an RFP, your website. I’ve spent most of my career in B2B, and at Made by ON I spend my weeks talking to leaders of the world’s most exciting B2B businesses. Lately those conversations keep circling one question, which I put to our strategists and UX team: what happens when...

Studio
21d ago
From static frames to a creative operating system

From static frames to a creative operating system

Looking beyond the flashy generative UI, shader effects and animation features at Figma Config signaled a deeper, more structural shift: the transition from a static repository of files and rules into a behavioural operating system. I left San Francisco with a camera roll of screenshots and pages...

Design
Engineering
1mo ago

Standardise the foundations, not the brand experience

Detailed work at scale comes down to one judgement: which parts of a project are worth building fresh for every brand, and which should be solved once and reused everywhere. Shared functionality on one side, brand expression on the other Engineering teams have plenty of frameworks and platforms to...

Engineering
2mo ago
Putting video back where it belongs

Putting video back where it belongs

The problem with putting video in a git repo. The repo kept getting heavier, sprint after sprint. We were committing big MP4s next to the code, builds were slowing down, and deploys with them. Case studies lead with video, so every new client made it worse. We needed the media to live somewhere...

Engineering
2mo ago
The theme is the guardrail

The theme is the guardrail

WordPress can now describe itself to machines. WordPress 7.0 landed back in May with AI infrastructure in core. There’s an AI Client, a Connectors screen where the provider keys live, and the Abilities API, which actually arrived back in 6.9. Abilities are how core, plugins and themes describe what...

Engineering
15d ago
Cache Components: the right content at the right time

Cache Components: the right content at the right time

Cast your mind back to the earlier days of the world wide web. A website was essentially a digital document, the web a library, and the internet the mechanism of delivery. Updating a document meant editing HTML on your computer and uploading it to a server by hand, usually over FTP. In 1995 PHP...

Engineering
29d ago
We build by leaving things out

We build by leaving things out

Most of what makes a WordPress site good is what we choose to leave out of it. WordPress runs a large part of the web on a big promise: whatever you need, there’s a plugin for it. That promise is one of its greatest appeals, and its most costly trap. Almost everything that harms a WordPress site...

Engineering
1mo ago
Letting type move

Letting type move

We treat type as something that sits still — fixed in place, headings always the biggest thing, motion bolted on at the end. For one Creative Spark we dropped those rules and asked what type could do once it started moving. Creative Spark is our in-house R&D session: ninety minutes, a single theme,...

Engineering
2mo ago

The form we actually trust

Rhona MackayRhona Mackay Engineering
28 May 2026
3 min

In February 2026, we replaced our contact form with a submission pipeline we built and own.

For the two years before that, it was a Pipedrive iframe inside our page. We had no control over fields, no client-side validation, no error handling beyond whatever Pipedrive showed inside its frame. When a submission failed, we found out from the client, not the system.

A screenshot of the new form we designed, built and tested. A form we built, designed and control.

Two forms, one pipeline

The start-a-project form is the full version: budget, brief, file upload, preferred dates, auto-detected timezone. It’s built as a Preact component with React Hook Form and Zod handling validation on the client. A minimal variant, just name, email and consent, runs on the AI Brand Engine page where a lighter touch makes more sense.

Both variants share the same submission pipeline. Different form surfaces, identical processing underneath. Every entry point gets the same validation, error handling and recovery, regardless of which page the inquiry came from.

The pipeline

The submission pipeline handles the sequence after the form is sent: validate with Google Recaptcha, create the contact and lead in our CRM, attach any uploaded files and send a confirmation email. Newsletter signups follow a shorter version of the same flow.

Both pipeline functions accept a typed dependencies object and every external service is injected rather than imported directly, which keeps the pipeline decoupled from its environment and makes each service boundary explicit. (How this enables testing is covered in a separate post.)

When things go wrong

If the lead is created but a secondary step like file upload fails, the submission still returns success to the user. The lead is safe. A structured alert fires to our team channel with enough context to recover manually.

Fatal errors, when the lead itself fails to create, alert the team with the same detail and rethrow so the user sees an error state. Nobody loses an inquiry silently.

Zod on both ends

The server-side actions run the same Zod schema again on the incoming data. Same validation, different boundary. A tampered request that bypasses client-side checks gets caught before it reaches the CRM.

From the user’s side

A form that validates as they type, shows clear error states when something’s wrong and lands on a confirmation screen with links to Labs and our Instagram, not a generic “thank you” page. They don’t know about the pipeline. They just know the form worked and the response didn’t feel like an afterthought.

The contact form's success state: "Thank you! We've received your submission and will reach out within 24 hours," followed by links to our Instagram and Labs, sitting below the form's privacy checkbox and Submit button. The success screen — links to Labs and our Instagram, not a generic thank-you message.

Since the pipeline went live in February, every submission failure has alerted the team within seconds, with enough context to recover manually.

Jul 2026

One of the 214 hand-drawn sheets of Inō’s map of Japan, and his team surveying Mitarai in 1806

Measure

In 1800 a retired sake brewer named Inō Tadataka set out to walk Japan’s coast. He spent 17 years and 35,000 km on foot, and died before the work was done. His team finished the first accurate map of Japan in 1821, and it stayed in use for a century.

Jun 2026

William Badcock, A Touch-stone for Gold and Silver Wares (1677)

Hallmark

The word hallmark comes from an actual hall, Goldsmiths’ Hall in London, where since 1300 silver has been tested against the sterling standard and struck with the hall’s mark, so you could trust it without knowing the maker.

May 2026

Alan Kay: His Sketches, Piano, and Computer

Notes

A note can be a written record, a struck key, or the act of noticing, and each sharpens how we understand the world. A piano is an instrument, but also a technology built on the notes it makes possible.

Apr 2026

Photographs of a red cloth bound travel handbook from 1894. The book is open to show pages with maps and illustrations.

Change

A red cloth spine caught my eye in a Tokyo bookshop last week. A handbook for travellers in Japan, fourth edition, 1894. I was 132 years late, yet most of what it describes still stands.

Mar 2026

Screenshots from the development process of the new ON release notes page

Taking the temperature

You walk into a room and you can feel it. Whether there is energy or not. We describe someone as warm. We talk about things cooling down. Temperature is something we sense before we have words for it.

Feb 2026

Pixelised image of a horse running

Rethinking video, prototyping faster, and encoding brand logic

In Japanese, the character for hand is 手. Joined with the character for craft, it becomes 手仕事 (teshigoto), or handwork.

Want to know more?

On the last Sunday of every month, we share insights on creative thinking, emerging tools, technology.