Services Case Studies Insights About Start a project →

Vagabond Tourist, an AI-fed content platform.

Web AI Cloudflare Workers · D1 · Claude 2026
Visit www.vagabondtourist.com ↗

The brief

Vagabond Tourist is a budget, solo, and sustainable travel publication at www.vagabondtourist.com. The goal was not another travel blog on a rented platform. It was an owned, fast, search-optimized property that could publish evergreen guides, capture an email audience, monetize through display ads and affiliates, and, the ambitious part, keep filling itself with new, fact-checked articles on a schedule without a full-time writer. We built the whole thing: the site, the backend, the email machinery, an on-site AI assistant, and an autonomous content pipeline that drafts new posts three times a week.

A static front, a real backend

The reader-facing site is deliberately boring in the best way. Guides are authored in Markdown with structured frontmatter, and a small Node build step turns them into fully static HTML, hero images, canonical tags, Open Graph, Twitter cards, and JSON-LD article schema baked in at build time. The generated pages are committed to the repo, so hosting needs zero build command and pages are served straight from Cloudflare's edge with no framework and no client-side hydration tax. The result loads fast on a phone on hostel Wi-Fi, which is exactly where this audience reads.

Behind that static shell runs a Cloudflare Worker backing everything dynamic: a Cloudflare D1 (SQLite) database with tables for newsletter subscribers, gated PDF downloads, AI chat history and visitor contacts, and reader-submitted stories. Transactional email, the welcome message, the unsubscribe confirmation, goes out through Brevo, with a cron trigger that sweeps recent unsubscribes and sends confirmations within about a minute. It is a complete publishing platform running on infrastructure that costs almost nothing at this scale.

Growing an audience, not just traffic

Traffic that leaves and never returns is worthless, so the platform is built to convert readers into a list the site owns. A free one-bag packing checklist is gated behind an email capture. Newsletter signups flow into D1 and trigger a templated welcome email, with a proper double-sided unsubscribe path so the list stays clean and compliant. A community stories feature lets readers submit their own travel write-ups through a moderated queue: submissions land as pending, the owner gets a one-click approve or reject email, and approved stories publish to a public page, a token-protected admin panel handles the rest. It turns readers into contributors and gives the site a steady stream of original content it did not have to commission.

An AI Travel Advisor on the site

Every page carries a self-contained chat widget backed by Anthropic's Claude. Before the conversation starts it collects a name and email, so an engaged reader is also a captured lead. The assistant answers travel questions grounded in the site's own published guides, keeps multi-turn context in D1, and is rate-limited to keep costs predictable. When a visitor ends the chat, the full transcript is emailed to the owner with the visitor's contact details attached, so a late-night question about Bolivia bus routes becomes a warm lead in the inbox by morning.

The autonomous content pipeline

The most interesting part never touches the reader directly. A second, independently deployed Cloudflare Worker runs a scheduled content pipeline three mornings a week. It is a real agent chain, not a single prompt, and every stage is designed to fail safe rather than invent:

  • Discover. Three distinct trend searches (via Tavily) across destinations, travel news, and practical budget angles are pooled and de-duplicated, then a model call picks the single best topic for this audience, and is required to cite the specific search results that justified the pick, or say plainly that it can't.
  • Research. An agentic loop runs additional searches, pairing every extracted fact with the source URL that backs it, assessing gaps, and deciding whether it has enough concrete detail (prices, dates, specifics) to write, capped so it never loops forever.
  • Write. A drafting call grounded in those facts, primed with two of the blog's own published posts as tone references and the house voice rules, instructed to write around gaps rather than fabricate numbers.
  • Optimize & edit. An SEO pass proposes keywords, a meta description, and an on-brand slug; an editorial pass fact-checks every specific claim against the gathered facts and flags anything unverified for a human.
  • Publish as a pull request. The finished draft is committed to a new branch and opened as a GitHub PR, never merged automatically. A human always reviews and merges. The PR body carries the topic reasoning, keywords, and any unverified-claim flags as a reviewer checklist.

The whole chain is covered by a test suite that runs inside a real Workers runtime with every external API mocked, asserting call counts, the research loop's iteration cap, error handling that halts on a malformed response instead of shipping garbage, and the exact shape of the PR it opens. The pipeline generates leverage; the tests and the human-in-the-loop PR gate keep it honest.

What it demonstrates

Vagabond Tourist is a compact showcase of how we like to build: a fast static edge for the reader, a genuine serverless backend where it earns its keep, AI used where it creates leverage rather than as decoration, and guardrails, fact-to-source tracing, unverified-claim flags, tests, and a mandatory human merge, wherever an agent can act on its own. It is content, commerce, and applied AI in one small, cheap-to-run codebase.

Want a platform that fills itself?

Start a conversation →
KT Solutions Assistant

Before we start, please share a few details so we can follow up with you.

Please enter your name and a valid email address.

End this conversation? Your chat will be emailed to us.