How this site works
The chat on this site is a real language model answering live. Each question goes through infrastructure I built and run myself, and ends at a small computer in my house. I'm a PM, so people reasonably wonder how much of this I actually built. This page is the answer.
The path of one question
Design decisions
Abuse controls run on hardware I control
Serverless functions restart constantly, so any rate-limit state you keep there gets wiped. The real controls, the quotas, caps, and kill switch, run on the home server, where state persists and nothing gets in without a shared secret.
It degrades instead of breaking
If the home server is off, the tunnel is down, or the day's budget is spent, the site falls back to pre-written answers. Nobody sees an error page. The chat just gets a bit dumber for a while.
Bots cost me nothing
A scraper hitting the chat endpoint gets the canned answers. Model tokens only get spent on verified humans, inside hard per-visitor and per-day limits.
The prompt is a security boundary
Before launch I spent a while trying to break it: prompt injection, pretending to be me, asking for my phone number. Feel free to try. It is polite about it.
I can see everything
Every conversation lands in a log with a local dashboard. A Telegram bot I built sends me the day's questions each morning, and a monitor messages me when any layer goes down and again when it comes back.
Install me in your agent
The same backend is available as a remote MCP server, so you can ask your own agent about me without opening this site:
claude mcp add --transport http ask-nikhil \ https://www.nikhilkaul.com/api/mcp
One tool, ask_nikhil(question). I launched an open-source set of agent skills for Kubernetes at work, so making myself installable felt consistent.
What's intentionally missing from this page
Vendor names, endpoints, model identifiers, rate-limit numbers, and tunnel details. Publishing a diagram of your own attack surface is a bad idea, and the design decisions are the interesting part anyway. If you want the rest, email me: nkaul2345@gmail.com.