Skip to content

TravStats vs. AdventureLog

AdventureLog is an open-source (GPL-3.0), self-hostable travel tracker and trip planner. It is the closest thing to TravStats in philosophy — your server, PostgreSQL with PostGIS, Docker, an Immich integration on both sides — and the furthest in emphasis. AdventureLog starts from places and plans; TravStats starts from flights, cruises and stays you have already taken.

TravStatsAdventureLog
HostingYour server (Docker)Your server (Docker Compose; Kubernetes via Kustomize)
DatabasePostgreSQL + PostGISPostgreSQL + PostGIS
LicenseAGPL-3.0GPL-3.0
Core unitA flight, a cruise, a stayA location with visits
TripsGroup flights, cruises, stays and bookingsCollections: itineraries with transportation, lodging, notes, checklists
FlightsFirst-class records with airports, airline, aircraft, registration, delaysA transportation entry on a collection, with flight number and times
Adding recordsBooking emails, PDFs, boarding passes → automatic; list imports; manualManual, with place search; activities from Strava or Endurain
CruisesYes, with ports, sea days and sea routesNo
Places / POIsBeta, behind the instance switchYes — the core of the app
CountriesCounted from your records by evidenceCountries, regions and cities in a world travel book
Planning toolsNoItineraries, checklists, calendar with ICS export, PDF itinerary
Outdoor activitiesRoad, hike and bike sections on a trip (beta)GPX tracks and activities; Strava, Endurain and Wanderer integrations
PhotosImmich albums on a trip (link or import), uploadsUploads, Immich
SharingNo public surfacePublic links, and inviting other users to edit
Sign-inLocal accounts, two-factor, passkeysMFA, social and OIDC sign-in (Google, GitHub, Authelia and more)
Achievements270+—
ExportWhole-logbook spreadsheet (re-importable), JSON, database backupBackup archive (JSON plus media) that it imports again

In AdventureLog a flight is a transportation entry inside a collection. In TravStats it is a record in its own right, enriched from flight-data providers, drawn on a map built for routes, and measured: punctuality, records, distance, CO2, cost per kilometre. Cruises get the same treatment — ship, ports of call, sea days and a reconstructed sea route. If most of your travel history is flying or sailing, TravStats has far more to say about it. See Flights and Cruises.

In AdventureLog you add locations, flights and lodging yourself (place search helps, and activities can come from Strava or Endurain). TravStats reads booking confirmations — mail, PDF, a photographed hotel bill — and boarding passes, decides whether each is a flight, cruise or hotel, and shows what it found before saving. The strongest results need a local language model (Ollama); without one, built-in templates cover single-leg bookings on common European carriers.

TravStats derives your countries from what you recorded — a night slept, a port call, a day on the ground — and keeps a change of planes apart from a visit. Money is kept per currency and converted with ECB rates, and 270+ achievements unlock on their own. See Countries & passport.

AdventureLog is a trip planner as much as a log: day-by-day itineraries, checklists, notes, a travel calendar you can subscribe to over ICS, and a printable PDF of the itinerary. TravStats records bookings, including upcoming ones, but plans nothing.

Locations are AdventureLog’s foundation — categories, tags, notes, photos, attachments, several visits each — and its world travel book goes down to regions and cities. In TravStats, places are a newer domain still behind the beta switch, and there is no counterpart to the regions-and-cities book.

GPX tracks with distance and elevation, and integrations with Strava, Endurain and Wanderer, make AdventureLog a home for hikes and rides. TravStats’ road, hike and bike sections (and Dawarich tracks) are beta.

Collections can be shared by public link or edited together with other users, and sign-in works through Google, GitHub, Authelia and OIDC providers. TravStats has no public sharing and no single sign-on.

There is no AdventureLog importer in TravStats. AdventureLog’s backup is an archive with the data as JSON and the media alongside; TravStats does not read it. Flights and stays from it would have to be turned into CSV — for the logbook and hotel imports — by a script of your own.

Because both run on your own hardware and both talk to Immich, running them side by side is a reasonable answer too: AdventureLog for plans and places, TravStats for the flights, cruises and hotel nights.

If your travel is about where you go and what you do there — planning it, sharing it, hiking it — AdventureLog is the better-shaped tool.

If it is about how you got there and where you slept — every flight, cruise and stay, entered from the booking and counted for you — TravStats is. Neither asks you to hand your history to someone else’s cloud.