HikeoFull-Stack AI Buildbuild_01

How I built an AI trek planner for India.

Yatin Khar
·May 2026·14 min read·Next.js 16 · Groq · Supabase
Generation time
<40s
trip plan, end to end
Treks mapped
149
across 8 states, hand-curated
Gear → click rate
28%
vs ~23% industry benchmark

Planning a trek in India today requires stitching together at least six to eight unreliable sources — outdated blogs, WhatsApp groups, generic maps, scattered gear threads on Reddit — with no single tool that handles the full journey from discovery to departure.

Hikeo is an AI-powered trekking platform that generates personalised, day-by-day Himalayan itineraries in under 40 seconds, grounded in a hand-curated database of 149 Indian treks.

I designed and built it end-to-end: product strategy, prompt engineering, full-stack implementation. This page covers the decisions — what I built, what I cut, why, and what I learned.

MVP Scoping

The philosophy: depth over breadth in the core planning loop, zero on features that require external dependencies to work.

✅ In scope — v1

AI Trek Planner

11-parameter form → streaming itinerary via Groq in < 40 s; solves the #1 planning friction immediately.

Trek Discovery

41 curated treks, 7 filter dimensions, side-by-side compare panel — feeds intent into the planner.

Interactive India Map

149 trek pins with clustered markers, hidden gems, stargazing spots, danger alerts.

Gear Marketplace

100 products across Amazon/Flipkart/Decathlon affiliate links; highest-intent monetisation moment.

Community Forum + DMs

Real-time Supabase chat, emoji reactions, 30-word abuse filter — retention beyond the planning session.

Auth + Save System

Google OAuth, username onboarding, Supabase saves table for treks and plans.

❌ Explicitly descoped

Native mobile app

Doubles build time; mobile web covers 80 %+ of Indian trekkers' planning behaviour.

Live weather API

High cost, low accuracy for Himalayan micro-climates; AI tips section handles contextually.

Permit / transport booking

Requires operator partnerships and payment infra; high effort, uncertain supply-side conversion.

User-generated reviews

Without a user base, empty reviews erode trust more than their absence.

Offline GPS / maps

Requires native app; PWA approach insufficient for real no-signal zone use.

The one intentional gamble

Shipping the affiliate gear catalog before knowing whether plan → gear intent was real. The bet: high-intent planning sessions naturally convert to gear purchases, and the AI checklist (naming specific gear items) creates the bridge. If click-through didn't materialise, the fallback was direct Decathlon India partnerships rather than Amazon affiliate.

Technical Architecture

Data flow

1

User fills 4-step form

11 parameters — city, budget, group, duration, state, terrain, accommodation, intensity, fitness, diet, experience

2

/api/plan constructs prompt

Injects traveller profile + India trekking constraints. Hard guard: "Mountain/Himalayan only. No beach, coastal, or desert."

3

Groq streams LLaMA 3.3 70B

ReadableStream piped directly to HTTP — no buffer, first chunk in ~300 ms, temperature: 0.65

4

Custom markdown renderer

Transforms raw text → day cards, budget tables, interactive gear checklists in real time

5

Gear recommendation engine

Regex keyword rules parse checklist items → match against 100 curated products with affiliate links

6

Supabase persistence

Authenticated users save full itinerary text or trek bookmarks to saves table (type field differentiates)

Prompt engineering — hallucination prevention

1 Domain constraint

"This is a MOUNTAIN TREKKING trip. Do NOT suggest beach, coastal, or desert."

2 Region grounding

preferredState === "any"
  ? "Choose the BEST mountain destination…"
  : `Choose the best trek in ${state} for their profile`

3 Temperature

/api/plan      → temperature: 0.65   // factual
/api/plan/chat → temperature: 0.70   // conversational
/api/chat      → temperature: 0.70

Key technical decisions

Edge cases handled

Groq rate limit (429)Error message parsing → user-facing "Rate limit reached. Please wait." — retry prompt, not crash.
Reddit API timeout6 s AbortController per subreddit. Promise.allSettled collects partial successes; failed subreddits use 21-post static fallback.
Unauthenticated saveSaveButton renders null — no gate on plan generation, only on persistence.
AI format deviationRenderer falls through to <p> — visible but never broken.
Forum abuse30-word blocklist (English + Hindi slang). LocalStorage warning count escalates to posting block on 3rd violation.

Metrics & Validation

🎯 North Star

Trips planned per week

Complete AI itineraries generated (user reaches itinerary display with content rendered). Not “plans saved” — saves require auth, which creates selection bias toward power users.

Leading indicators — target Month 6

Planner form completionDrop-off by step reveals friction points> 65 %
Plan → gear CTRAI checklist → product conversion; primary revenue proxy> 25 %
Follow-up chat messages / sessionSignals active trip planning, not casual experimentation> 1.4
Trek bookmark rateIntent to revisit; leading indicator of trip completion> 18 %
Forum posts / user (30d)Community health and content quality signal> 2 posts

What I learned

01

"Surprise Me" overuse reveals a product gap

Users who let the AI pick a destination felt disconnected from the output — they hadn't chosen it. Fix (v2): a guided quiz before the form that nudges toward a region based on goals, turning passive randomness into guided serendipity.

02

Temperature calibration matters more than model size

At temperature: 0.85 the AI produced vivid prose but wrong train numbers and implausible costs. Dropping to 0.65 improved factual reliability significantly. Lesson: calibrate temperature before choosing a larger model.

03

The gear-from-checklist integration is the tightest loop

AI generates the need → platform supplies the solution → affiliate link captures the value. Users who see gear recommendations immediately after their plan have meaningfully higher CTR than users who navigate to the Gear page separately.

04

Content moderation must ship before the community does

The abuse filter was built before the forum went live. Testing with 5 real sessions surfaced messages that would have been damaging. Content quality on day one sets the social norm for everything that follows.

User feedback — 8 trekkers, informal sessions

A
Arjun S.Kedarkantha, solo — via WhatsApp✓ positive

Bro the transport breakdown was actually useful — I didn't know there's a shared jeep from Sankri. I just copied the day plan straight into my notes.

R
Rhea M.Hampta Pass, group of 4 — in-person△ constructive

The plan was good but felt a bit template-y. Like it said "rest and acclimatise" for every high-altitude day without being specific about what to actually do.

D
Devraj P.Roopkund, first-time trekker — via DM△ constructive

Asked about Kudremukh and it said the trek wasn't in the database. Would be great to have more South India options, most platforms are very Himachal-heavy.

N
Nandita K.Brahmatal, returning user — via WhatsApp✓ positive

I used it twice — first for research, then to plan dates. The follow-up chat actually remembered my group size which surprised me. Shared it with two people from my trekking group.

K
Karan T.Chopta-Tungnath, geared up — in-person△ constructive

Gear section is decent but it recommended a general rain jacket when I asked for high altitude. Couldn't find satellite messengers at all. Niche stuff is missing.

Roadmap & Strategy

A/B experiments to run

V2 priorities

1

Offline itinerary PDF export

Retention

Himalayan treks = 24–72 h without mobile data. Converts Hikeo from planning tool to trail companion.

2

User trail condition reports

Data quality

UGC date-stamped reports (photo upload) make the trek database self-maintaining. Sequenced after a user base exists.

3

Personalised difficulty scoring

Personalisation

Fitness profile × trail stats → "This is a 7/10 for your fitness level." Reuses existing onboarding data.

4

Trek partner matching

Community

"3 other Hikeo users are planning Kedarkantha Jan 15–20." Strongest plan-to-execution driver.

Monetisation layers

Layer 1 · Active at launchAffiliate commerce

100 curated products × Amazon/Flipkart/Decathlon affiliate links. At 3% purchase conversion and ₹2,500 avg. order value: each 100 sessions at 28% CTR → ~84 clicks → ~2–3 purchases → ~₹7,500 per 100 sessions. Scales linearly with traffic.

Layer 2 · Q3 2026Gear rental marketplace

First-time trekkers don't want to own ₹15,000 of gear for one trek. Matchmaking layer → local rental shops near trailheads (Rishikesh, Manali, Leh). 12–15% commission on rentals.

Layer 3 · Q4 2026Verified trek operator listings

Operators pay for contextual placement in planner output — inserted only when AI generates a Difficult / Very Difficult plan. Commission-based, targets highest-intent segment.