10traveltips cities
20preview videos (10L+10S)
11race.travel countries
124,506hiking trails (OSM)
race.travel trail + race companion · AllTrails killer · Variant B pricing
Pages · live HTML
Trail catalog · 11 countries
- loading…json
API endpoints
- /docs · OpenAPIdoc
- /api/trails · country indexjson
- /api/plans · fuel plansjson
- /api/difficulty · race-adjustedpost
- /api/watch/progress · Fuel.iq POSTspost
- /api/reports · trip reportscrud
- /plan/auto · GPX→planpost
PWA / offline
- /sw.js · Service Workerjs
- /manifest.webmanifestpwa
- Tile cache (bbox × zoom 11-15)cache
- Plan API network-firstcache
Garmin watch app · Fuel.iq
- fenix 7 · 7 Pro · 7S · 7X Prov2
- fenix 8 43mm · 47mmv2
- fenix 8 Solar 47mm · 51mmv2
- fenix 8 Pro 47mm · fenix Ev2
- vivoactive 5 · 6v2
- Store submit ($99 dev acc)todo
Unique features (vs AllTrails)
- Off-course alert on watchwatch
- Elevation preview per kmwatch
- Race-adjusted difficultymoat
- Hiking / racing modemode
- Live-track buddies (10s poll)web
- Trip reports evergreenseo
- Offline SW + tile cachepwa
traveltips.travel audio city guides · Reels · carousels · affiliate hub
Public pages
City maps (10 live)
- rome-maphtml
- paris-maphtml
- barcelona-maphtml
- amalfi-maphtml
- florence-maphtml
- milan-maphtml
- naples-maphtml
- positano-maphtml
- sicily-maphtml
- venice-maphtml
Preview videos (Reels)
- 10 long-form (en_long.mp4)120s
- 10 short-form (en_short.mp4)30s
- captions.json manifestIG/X/FB/Pin
- OCR filter (TikTok overlay)filter
- Approval gallery UIgate
Content pipeline
- City pool per citypillow
- Music library + cooldown 30audio
- Reels pipeline autoops/reels
- Notion + GitHub + Vercelfactory
- Rome pilot audio guideChirp 3 HD
Admin dashboard
- AdminAnalyticsjsx
- AdminBestPriceSearchjsx
- AdminHealthjsx
- AdminSecretary (partners)jsx
- AdminStrategyjsx
- AdminVideoProductionjsx
Live features
- LiveMap (city walkers)web
- LiveWalk (individual)web
- LiveOpenBeaconweb
- LiveViewers counterweb
- FindTrip AI searchGroq
Integrations 3rd-party APIs powering both projects
Affiliate networks
- Awin · publisher 543962live
- Booking/Hotels/GYG (join in progress)apply
- Travelpayouts · marker 744110live
- CJ Affiliatetodo
- Impact.comtodo
- Rakuten Advertisingtodo
Ads & analytics
- Meta Ads · act_1275995664391141live
- Meta Pixel · 1160425102703738live
- GA4 · property 545311952live
- AdsPower profile k1efgw3slocal
- Postiz Cloud Team ($39/mo)10 socials
AI stack
- Groq · Llama 3.3 70Bchat
- GCP TTS · Chirp 3 HDvoice
- Anthropic Claudewriter
- Ollama · qwen2.5:14bmem0
- Ollama · nomic-embed-textembed
Comms
- Mailgun · outboundemail
- Telegram @ale_clow_botbot
- @screentotravel_botscreens
- LinkedIn Company APIorg
Maps / data
- OSM Overpass APItrails
- OSM tile servers (3 mirrors)tiles
- Google Maps APIgeocode
- Sentinel-2 satellitetodo
- SRTM elevationtodo
Distribution channels
- Instagram + Threadspostiz
- TikTokpostiz
- YouTube Shortspostiz
- Facebook Reelspostiz
- Pinterestpostiz
- X (Twitter)postiz
- Redditpostiz
- LinkedInpostiz
Infrastructure where each thing runs
Hosting
Fly.iorace-travel-fuel (arn, 2gb, live) + race-travel-api (fra, 502 · Neon quota)
Verceltripwell project → traveltips.travel + all city maps
Mac Minimem0 (:8766), narva/estonia_hub (:8765), Ollama, AdsPower
Databases
Neon (new)little-snow-03885671 · race-travel-eu · eu-central-1 · 70 tables · empty
Neon (old)frosty-sun-45438381 · quota exceeded · read-only
Postgres 16local (mem0 pgvector)
SQLitesecretary partners + outreach log
Domains
Repos
tripwell/Users/alex/travelagent/tripwell (Next.js) → traveltips.travel
hermes-travel/Users/alex/travelagent/hermes-travel/hermes-travel → race-travel-api (164 uncommitted)
race-travel-fuel/Users/alex/travelagent/race-travel-fuel/garmin-fuel
ops/Users/alex/travelagent/ops (reels, carousels, partners, meta ads)
Content assets
Visual pools/tripwell/public/pool/{city}/
Music library/ops/reels/music by city + cooldown log
Rome audio guide/rome-pilot/ · NotebookLM RU + Gemini EN + TTS QA
Trail catalog/app/data/trails_{cc}.json.gz × 11 countries
Credentials (paths only)
/tmp/fly.tokFly.io API token
/tmp/namecheap.tokDNS
/tmp/groq.tokGroq LLM
/tmp/gcp_tts.tokChirp 3 HD
~/.tokens/ga4_reader.jsonGA4 SA
Architecture flow data movement between both projects
flowchart LR
User(("User
web+phone"))
Watch["fenix 8 Solar
Fuel.iq"]
subgraph RT["race.travel"]
RTF["race-travel-fuel.fly.dev
trails · plans · live-track · reports"]
RTA["race.travel proxy
(Neon migr.)"]
NEON[("Neon Postgres
eu-central-1")]
end
subgraph TT["traveltips.travel"]
TTP["Vercel Next.js
10 cities · previews · find-trip"]
ADMIN["Admin panel
analytics · partners · videos"]
end
subgraph EXT["3rd party"]
OSM["OSM Overpass
trail catalog"]
GRQ["Groq · Llama 3.3"]
TTS["GCP Chirp 3 HD"]
AWIN["Awin · Travelpayouts
affiliates"]
META["Meta Ads + Pixel"]
GA["GA4"]
end
User -- browse --> RTF
User -- browse --> TTP
Watch -- POST progress --> RTF
RTF -- polyline+elev --> Watch
RTF -- reads gzip --> OSM
RTF -- future GPX push --> Watch
RTA -- DB queries --> NEON
TTP -- captions --> GRQ
TTP -- voice --> TTS
TTP -- outbound clicks --> AWIN
TTP -- pixel events --> META
TTP -- analytics --> GA
ADMIN -- manages --> TTP
Data flow · run day
GPX upload
→ /plan/auto (route + elev + difficulty)
→ /api/plans/save (returns plan_id)
Watch settings on phone
→ polyline + elevPerKm + planId + activityType
Trail run
→ Fuel.iq compute() every second
→ Haversine to nearest route point
Fuel cue OR off-course (dist > 30m for 15s)
→ vibe + red screen
→ POST /api/watch/progress {lat, lon, km, cue}
Buddies open /live/{plan_id}
→ poll every 10s → moving marker + last cue
Finish
→ /report/{plan_id} form
→ publishes to /races/{race_slug} evergreen SEO