DEV Community

Cover image for I Built an Enterprise SaaS for HTTP 418 — The World's Most Useless Teapot
Aadarsh Kannan
Aadarsh Kannan

Posted on

I Built an Enterprise SaaS for HTTP 418 — The World's Most Useless Teapot

April Fools Challenge Submission ☕️🤡

This is a submission for the DEV April Fools Challenge


What I Built

TEAPOT.EXE — a fully designed, production-grade enterprise SaaS landing page for a teapot that does exactly one thing: refuse to brew coffee.

It returns HTTP 418 I'm a Teapot. That's the whole product.

I built a complete startup website — custom 3D Three.js teapot with orbiting rings and steam particles, pricing tiers, fake testimonials, a live HTCPCP/1.0 terminal trace, SOC 2 compliance badges, and a scrolling ticker that reads "COFFEE REQUESTS REFUSED · LARRY MASINTER APPROVED" — for a server whose entire value proposition is that it will never, under any circumstances, produce coffee.

The more overengineered and earnest it looked, the funnier it got. So I made it look extremely legitimate.


The Lore (IYKYK)

On April 1, 1998, a man named Larry Masinter published RFC 2324 to the IETF. It specified the Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) — a fully realized, technically rigorous internet standard for controlling, monitoring, and diagnosing coffee pots over IP networks.

It included:

  • A BREW HTTP method
  • A Content-Type: message/coffeemaker header
  • The Safe-Additions header (for sugar, cream, etc.)
  • And a single, glorious error code: 418 I'm a Teapot

"Any attempt to brew coffee with a teapot should result in the error code '418 I'm a Teapot'. The resulting entity body MAY be short and stout."

The RFC was a joke. But it was a technically complete joke, written with all the dry formality of a real internet standard. And the HTTP community loved it so much that 418 survived every attempt to reclaim the status code for something useful. It lives on to this day — an immovable monument to internet absurdity.

TEAPOT.EXE is my love letter to Larry Masinter, RFC 2324, and every developer who has ever typed 418 into a status code field with a quiet smile.


Demo

🔗 Live Site → TEAPOT.EXE

(Deploy your own in 30 seconds — it's a single index.html, zero build step, zero dependencies beyond a CDN.)

What you'll find on the site:

Hero section — An interactive 3D teapot (Three.js) floats against a cinematic warm-lit background. Orbiting golden rings pulse around it. Steam particles rise from the spout in real time. You can drag to rotate, scroll to zoom. In the corner: a 418 status badge and a live instance indicator.

Scrolling ticker☕ COFFEE REQUESTS REFUSED · RFC 2324 COMPLIANT · LARRY MASINTER APPROVED ✕ — repeating, infinitely.

Enterprise logosBrewCorp. HTTPFOLIO. Kettlebase. Masinter.io. Starbytes. RFC Ventures. All proudly displayed as trusted clients who should be using a coffee machine.

Feature grid — Six enterprise features including:

  • Zero Coffee Guarantee™ — "We pledge, contractually and spiritually, that your instance will never produce a drop of coffee."
  • SOC 2 Teapot Certified — "We hired a firm to audit our teapot. They confirmed it is, in fact, a teapot."
  • Steam Streaming API — "Real-time server-sent steam events across 3 global steam regions."

How It Works — A 4-step process. Step 3 is: "We refuse. This is the entirety of our product."

Live terminal — An animated HTCPCP/1.0 request trace showing a BREW /coffee request hitting the endpoint and receiving a 418 I'm a Teapot response with headers X-Teapot-Type: short, stout and Retry-With: a coffee machine.

Plan Price Description
Kettle $0/mo 1 teapot instance. Unlimited 418s.
Caddy $49/mo Geo-distributed 418 fabric. Priority refusal SLA (99.9%).
Samovar $∞/mo Private teapot cloud. Quarterly tea ceremony. SOC 2 cert (framed).

Testimonials from Arabica Roastwell (VP of Hot Liquids, BrewCorp) and Darjeeling Xu (Senior Tea Engineer, Kettlebase Inc.)

Footer links — Terms of Tea · Privacy Kettle · Cookie Policy · No Coffee Policy


Code

🫖 TEAPOT.EXE

Enterprise Teapot Infrastructure — RFC 2324 Compliant · HTCPCP/1.0 Native · Zero Coffee Guarantee™

HTTP Status RFC Coffee Brewed Dependencies License


The world's most over-engineered implementation of RFC 2324. A complete enterprise SaaS landing page — custom 3D teapot, pricing tiers, fake testimonials, live HTCPCP terminal — for a server whose entire purpose is to refuse to brew coffee.

→ Live Demo

TEAPOT.EXE Screenshot

What is this

On April 1, 1998, Larry Masinter published RFC 2324 — a fully specified internet standard for the Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0). It defined a BREW HTTP method, a Content-Type: message/coffeemaker header, and a single legendary error code:

418 I'm a Teapot

"Any attempt to brew coffee with a teapot should result in the error code '418 I'm a Teapot'. The resulting entity body MAY be short and stout."

TEAPOT.EXE is the enterprise SaaS that RFC 2324 always deserved and absolutely never needed.


Features

Feature Status
Returns

The entire thing is a single index.html — no framework, no bundler, no npm. Just HTML, CSS, and Three.js loaded from a CDN.

Three.js teapot — built from primitives

The teapot is hand-assembled from Three.js geometry primitives. No external teapot model — I built it the hard way, which is fitting for an RFC that was also written the hard way for absolutely no reason.

// Body — slightly oblate sphere
const bodyGeo = new THREE.SphereGeometry(1.1, 48, 32);
bodyGeo.scale(1, 0.9, 1);

// Spout — CatmullRom curve through control points
const curve = new THREE.CatmullRomCurve3(pts);
const spoutGeo = new THREE.TubeGeometry(curve, 30, 0.14, 14, false);

// Steam — BufferGeometry particle system
// 120 particles, each reset when they float off screen
Enter fullscreen mode Exit fullscreen mode

The steam is a THREE.Points particle system where each particle drifts upward with a gentle lateral sine wave, fades by opacity, then resets to the spout tip. The orbiting rings are THREE.TorusGeometry meshes that pulse opacity and rotate at different speeds on different axes to create a gyroscopic effect.

The design system

The aesthetic was deliberately chosen to be maximally enterprise: warm cream and ink with gold accents, DM Serif Display for headlines (editorial, authoritative), DM Mono for all technical copy (terminal, pricing, badges), Syne for body text. A custom cursor follows the mouse with a trailing ring. The whole thing looks like a Y Combinator-backed startup's Series B landing page. That's the joke.

:root {
  --cream: #f5f0e8;
  --ink: #1a1208;
  --gold: #c9a84c;
  --rust: #b84c2a;
  --font-display: 'DM Serif Display', Georgia, serif;
  --font-mono: 'DM Mono', monospace;
}
Enter fullscreen mode Exit fullscreen mode

How I Built It

Everything is written HTML, CSS, and vanilla JavaScript in a single file. The design philosophy: what if a real startup took RFC 2324 completely seriously?

The Three.js scene uses:

  • MeshPhongMaterial with warm specular highlights for the ceramic teapot body
  • PCFSoftShadowMap for soft shadows
  • ACESFilmicToneMapping for that cinematic warmth
  • A CatmullRomCurve3 for the spout curve, so it flows naturally
  • BufferGeometry with manually managed particle positions for the steam
  • Mouse drag + scroll zoom with smooth lerp interpolation

The CSS uses intersection observers for scroll-reveal animations on every section, a JS-driven lerp cursor trail, and a pure CSS @keyframes ticker.

Total third-party dependencies: 1 (Three.js r128 from cdnjs).


Prize Category

Best Ode to Larry Masinter — because this entire thing exists solely to honor RFC 2324 and the man who wrote a fully specified internet protocol for a teapot on April Fool's Day 1998 and made it stick forever.

Larry Masinter gave the internet its most beloved useless status code. The least I could do was give it a landing page, a pricing tier, and a framed SOC 2 certificate.

"The resulting entity body MAY be short and stout."
— RFC 2324, Section 2.3.2

It is. It always will be. ☕✕


No coffee was brewed in the making of this project. No refund will be issued. Please tip the teapot over.

Top comments (0)