Back to projects

Haydov

Self-Hosted Travel Platform with Sovereign Geographic Data

Distributed SystemsBackend EngineeringRustKubernetesWebAssemblyNode.jsGeospatial SystemsAI Applications
Haydov logo

Most travel apps optimize for speed—shortest routes, popular landmarks, predictable paths. Haydov takes the opposite approach: enabling slow travel by surfacing meaningful detours and lesser-known places along the way.

I designed and built Haydov as a fully self-hosted travel platform powered by OpenStreetMap, with an AI layer that suggests contextual deviations from a planned route—encouraging exploration beyond predefined itineraries.

The system is built on sovereign geographic data: routing, geocoding, and indexing are all owned end-to-end, with no dependency on commercial APIs.


Core Capabilities

  • Self-hosted routing and geocoding (Valhalla + Pelias)
  • AI-driven suggestions to enrich travel routes with nearby points of interest
  • Full geographic data pipeline from raw extracts to production services
  • Mobile app for route visualization and interaction
  • Extensible provider system for adding new geographic data sources

Key Results

  • Built a complete mapping stack with no reliance on commercial APIs
  • Enabled automated ingestion and indexing of global geographic datasets
  • Designed a modular pipeline supporting multiple data providers via plugins
  • Delivered a mobile-first experience for exploratory travel

Architecture Overview

Haydov is a polyglot distributed system spanning Rust, Node.js, Go, and mobile clients:

  • Data Pipeline (Rust + WebAssembly)
    Downloads and processes geographic data using pluggable provider components loaded at runtime
  • Import & Indexing (Node.js + RabbitMQ + gRPC)
    Coordinates ingestion into a self-hosted Pelias geocoding stack backed by Elasticsearch
  • Routing Engine (Valhalla)
    Provides route computation using the same OSM-derived data
  • Mobile App (React Native / Expo)
    Displays routes and integrates AI-driven suggestions for exploration

Technical Highlights

  • Designed a WebAssembly plugin system (WIT interface) for geographic data providers
  • Built a streaming ingestion pipeline with S3-compatible storage and multipart uploads
  • Implemented event-driven orchestration via RabbitMQ
  • Deployed full stack on Kubernetes with reproducible environments (Nix + Tilt + Kustomize)
  • Developed a Go CLI with terminal UI for managing local environments
  • Implemented polyline encoding/decoding for efficient route serialization

My Role

Owned the system end-to-end:

  • Designed architecture and data pipeline
  • Built core services (Rust downloader, Node.js importer)
  • Implemented orchestration and deployment setup
  • Developed mobile application and developer tooling