{"slug": "i-built-an-ai-travel-agent-for-india-s-hidden-destinations-here-s-the-tech-stack", "title": "I built an AI travel agent for India's hidden destinations — here's the tech stack", "summary": "An engineer spent five months building Almanac India, an editorial platform documenting hidden destinations in India, and detailed the tech stack in a blog post. The site uses Next.js 15, Mapbox GL, Firebase Auth, and an AI travel agent powered by Claude Sonnet via Ofox.ai, with features like dynamic context loading and prompt caching. The engineer highlighted distribution as the hardest problem and sought advice for research-heavy content products.", "body_md": "I spent 5 months building almanacindia.com — an editorial platform documenting India's genuinely hidden destinations. Not \"offbeat\" places that show up on every listicle. Places like Bara Bhangal (a permanently inhabited village with no road, reachable only by a 5-day trek over a 4,700m Himalayan pass) and Hunderman (a village that was Pakistani territory until 1971, 8km from Kargil).\n\nHere's everything I built and how.\n\nThe Stack\n\nFramework: Next.js 15 App Router with TypeScript, deployed on Cloudflare Pages via OpenNext. Static generation for 1,500+ pages at build time. No Git — Proton Drive with AES-256 encrypted backups.\n\nMaps: Mapbox GL v3 Standard style. 96 Indian cities, 3D cinematic dusk lighting, destination pins, routing between places, satellite toggle, live rain/snow overlay from Open-Meteo (15-min cache). Night mode activates automatically after 7pm local time.\n\nExpedition Books: Each destination gets a full book — About, History, What Nobody Tells You, The Moment, Before You Go. Books paginate using DOM-height measurement via Range.getClientRects() — not character count. Fonts load before pagination runs via document.fonts.ready. 32 books live.\n\nMedia: Cloudinary for all destination cover photos. g_auto crop handles landscape-to-portrait conversion for book covers. f_auto,q_auto across the board.\n\nAuth: Firebase Auth with OAuth. Community chat via Firebase Realtime Database with admin moderation and 48hr auto-delete.\n\nEmail: Resend for the Inner Circle newsletter. Rotates 100 cities every 2 weeks.\n\nAI Chat: The most interesting piece.\n\nThe AI Travel Agent\n\nBuilt an editorial chat agent that opens with \"Where do you want to disappear to?\" — three starter chips, streams word by word, right-side push sidebar.\n\nProvider: Ofox.ai (official Anthropic partner gateway) — solved the India payment problem after Anthropic's Stripe integration blocked all Indian cards.\n\nModel: Claude Sonnet via Ofox.\n\nArchitecture:\n\nDynamic context loading — max 2 expedition books per question, under 7,000 token budget\n\nPrompt caching — 71.6% cache hit rate on day one\n\nRetrieval logic — books only attach when the question names a specific destination or region, not on departure intent words\n\nPostgres Q&A cache — 80% word-match threshold, 7-day expiry\n\n[ALMANAC_GAP] logs — every unanswered region query goes to a content roadmap\n\nGap rule: When a user asks about a place we haven't documented, the agent acknowledges the gap and redirects to the closest documented region. Never halluccinates.\n\nSEO/GEO Architecture\n\nBuilt specifically for AI citation:\n\nllms.txt at root with all 58 destination URLs and descriptions\n\nrobots.txt explicitly allows GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended\n\nCloudflare AI Crawl Control — all crawlers set to Allow\n\nIndexNow — 1,531 pages submitted on first run\n\nFAQ schema (153 Q&A pairs) for AI answer engine visibility\n\nCanonical URLs enforced across all 1,500+ pages\n\nAttraction descriptions server-trimmed to 120 chars on city pages so full text only lives on attraction pages — fixes the duplicate content problem Google penalises\n\nThe Hardest Problem\n\nDistribution. The product works. Getting the first 1,000 people to see it is the actual problem.\n\nIf you've solved this for a research-heavy content product — I want to hear how.\n\nalmanacindia.com — The India nobody shows you.", "url": "https://wpnews.pro/news/i-built-an-ai-travel-agent-for-india-s-hidden-destinations-here-s-the-tech-stack", "canonical_source": "https://dev.to/krish_dev11/i-built-an-ai-travel-agent-for-indias-hidden-destinations-heres-the-tech-stack-2pkg", "published_at": "2026-08-26 11:51:34+00:00", "updated_at": "2026-08-26 12:14:57.019403+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-products", "developer-tools", "ai-infrastructure"], "entities": ["Almanac India", "Next.js", "Cloudflare Pages", "Mapbox", "Firebase", "Claude Sonnet", "Ofox.ai", "Anthropic"], "alternates": {"html": "https://wpnews.pro/news/i-built-an-ai-travel-agent-for-india-s-hidden-destinations-here-s-the-tech-stack", "markdown": "https://wpnews.pro/news/i-built-an-ai-travel-agent-for-india-s-hidden-destinations-here-s-the-tech-stack.md", "text": "https://wpnews.pro/news/i-built-an-ai-travel-agent-for-india-s-hidden-destinations-here-s-the-tech-stack.txt", "jsonld": "https://wpnews.pro/news/i-built-an-ai-travel-agent-for-india-s-hidden-destinations-here-s-the-tech-stack.jsonld"}}