Skip to content
~/ tommybuilt .dev

// live build

AI trained on your content.

A demo that actually reads a body of content and answers questions from it, with citations back to the source. Not a generic chatbot, and not a mockup.

It is live right below, answering from ReligionCompare, a site I built and maintain. Ask it anything about world religions and watch it pull the relevant passages and cite them. The same approach works on whatever content you have.

// live demo

Ask Sage anything. It answers from the source.

This is the real system, running right now. Try a question like "what is the difference between Buddhism and Christianity" or "what should I know before visiting a mosque" and read the answer it builds from the actual content, with citations.

This demo is rate limited and cost capped. If you hit a limit, that is the protection doing its job; a real deployment is tuned to your needs.

// what this is

A live demo, reading real content, right now.

Every answer above is generated on the spot. There is no script and no canned response. Ask it something the page never anticipated and it still answers from the source.

The content it reads is ReligionCompare, a 380-page comparison site about world religious traditions that I built and maintain at religioncompare.com. Sage has read every page of it.

Under the name it is a retrieval-augmented generation system, RAG for short. In plain words: it reads the content, finds the passages that actually relate to your question, and answers using only those passages, citing where each point came from. That is the difference from asking a generic chatbot that has never seen your material. It is not guessing and it is not making things up; it is reading your source and showing its work.

// how it is built

Honest about the machinery.

About 1,600 content chunks from ReligionCompare are turned into embeddings and stored in pgvector on Neon Postgres. Every question is embedded the same way and matched against them by meaning, not keywords, so the closest passages surface even when the wording is different.

Generation runs on OpenAI GPT-5.4, with text-embedding-3-small producing the vectors. The answer is built only from the retrieved passages and cites them, which is what keeps it from drifting into things the source never said.

It is built to sit on a public page without getting drained or abused: server-side rate limiting per visitor, Cloudflare Turnstile, content moderation on both the question and the answer, a hard daily cost cap, and an audit log. The widget itself is vanilla JavaScript under 4kb, so it drops onto any page with one script tag.

runtime

Next.js on Vercel

model

OpenAI GPT-5.4

embeddings

text-embedding-3-small

search

pgvector on Neon

widget

vanilla JS under 4kb

abuse defense

Turnstile, rate limits, moderation, cost cap

// your content

If you have a body of content, I can make it answerable like this.

ReligionCompare is just the demo. The same pipeline ingests whatever you already have and turns it into something your visitors, students, or team can ask questions of and trust the answers, because every answer cites the source.

  • Course modules and lessons
  • YouTube channels with transcripts
  • Podcast archives
  • PDFs and ebooks
  • Internal company docs and wikis
  • Knowledge bases
  • Support and help documentation
  • Blog and article archives

// work with me

Built for you, grounded in your own content.

This is a custom build, not a self-serve signup. You hand me your content, I ingest it, tune the retrieval and the voice to fit how you talk, wire in the same protections you see here, and hand you an embed you drop on your site. Email me with what you have and what you want it to answer, and we will talk it through.

Prefer email? Reach me at [email protected] directly.