NDT / 02

amtaitfy

A toy site that gives deliberately wrong answers, engineered for cost-bounded scale.

What it is.

amtaitfy stands for "allow me to AI that for you." It is a joke site that gives you deliberately wrong answers, generated by an LLM. Ask it anything. It will get it confidently and creatively wrong.

The product is a single page, a single input, a single answer. The premise is the joke. The interesting part is what sits behind it.

Why it exists.

I was looking at the disclaimer Claude and ChatGPT add to the bottom of every conversation, "AI can make mistakes," and the inversion suggested itself. What if a site said "AI will make mistakes," and meant it? amtaitfy is the answer to that question.

How it works.

amtaitfy is a public LLM endpoint with no login and no user-supplied API key. Anyone on the internet can hit it. That makes cost control the central engineering problem, not a deployment afterthought.

The architecture pivots on one decision: GET serves cache only, POST is the only path that triggers fresh inference. When a URL gets shared, screenshotted, or crawled, none of that costs me anything. The first visitor may pay for one inference via POST. Every later visitor to that URL gets the cached answer from Cloudflare KV. Virality cannot balloon cost.

Around that core sit the usual hardening layers: Turnstile verification on POST, session-scoped lockouts (not IP-scoped, because CGNAT makes IP lockouts catch innocent users behind shared NATs), randomized response timing on rejection paths to remove a side channel that would otherwise tell an attacker which inputs hit the prompt-extraction tripwire, and a degraded mode that surfaces cached answers as suggestions when the upstream provider fails or the daily budget caps out. The retry timer in degraded mode honors upstream Retry-After headers when present.

One detail I cannot resist sharing: the first version of the prompt-extraction tripwire responded to obvious probes by echoing my actual system prompt back, followed by "There will be cake." The GLaDOS reference felt clever for about five minutes. The current response gives no useful signal at all, which is what the tripwire should have done from the start.

Full architectural writeup, including the threat model, the cache-key normalization tradeoffs, and the migration trigger from KV counters to Durable Objects, is on dev.to.

Stack.

Edge runtime
Cloudflare Workers
Cache and counters
Cloudflare KV (with a defined migration trigger to Durable Objects if counter drift exceeds tolerance)
Bot mitigation
Cloudflare Turnstile on POST
AI
OpenRouter, currently routed to DeepSeek V3.1 for the wrong-answer voice

Status.

Live. The site is engineered to scale to whatever traffic shows up without me intervening, which is the whole point of the GET-cache, POST-inference split. Modest weekly traffic is the expectation. Ten users a week would make me happy. A hundred would also be fine. Ten thousand would still be fine.

Visit amtaitfy.com →
← All products