LLM application, 2026

Website Chatbot

Spot, the pen that writes on this site, also answers questions about my work. Click the pen to try it.

0leaks in 672 attacks: no instructions, links or private details.

Tools
Claude Haiku 5.5, Anthropic API, AWS Lambda (Node.js 22), Lambda function URL, DynamoDB, Amazon S3, CloudWatch, Next.js
Close-up of a gold fountain pen nib resting on lined paper
LLM application. A photograph of the setting, not the project itself.

The problem

A portfolio only answers the questions its author thought to write down. Spot answers the rest, in plain sentences, from the site's own words and nothing else, and it has to stay safe on a public page anyone can type into.

How I built it

  • The pen is the button.

    Spot lives in the nib that writes the notes on this page. It slows down when a pointer comes near, and a click draws a rectangle that becomes the chat.

  • Only the site's words.

    Its notes are built from this site's own content, so it can never know more than the site says. Each answer cites what it used, and Show me on the page sends the pen to mark the place.

  • Instant basics.

    Greetings and the suggested questions are answered by the page itself, with no wait, while the API wakes up in the background for the next real question.

  • Guarded both ways.

    The same guardrails run in the browser and again on the server. Questions reach Claude wrapped as untrusted text, answers come back as structured output, and every answer is checked for leaked instructions, links and markup before it is shown.

  • Memory.

    Claude sees the last 10 questions word for word and a running summary of anything older, for up to 40 questions in one conversation.

  • Spend and abuse limits.

    Per-address rate limits, a monthly spend cap that falls back to written answers, and email alarms for errors, slow answers, blocked attacks and spend.

  • Tested live.

    A suite of 1,077 real questions checks accuracy and tone, and 672 attacks try to break it. Every chat is logged and archived, so mistakes can be found and fixed.

Results

0

leaks in 672 attacks: no instructions, links or private details.

95%

of 1,077 test answers fully accurate against the site.

4.6 s

typical time to an answer.