Private travel control tower

Your trip has a command center.

Roamarr brings flights, stays, documents, companions, reminders, expenses, sharing, and the messy middle of travel into one self-hosted itinerary hub backed by SQLite.

Self-hostedNo hosted travel account required.
SQLite corePortable itinerary data under your roof.
Scoped sharingPublic links and feeds without oversharing.
Local instance online
Roamarr logo centered inside the route map
Flight noted
Stay recorded
Receipts attached
F
AA 1846 to DenverFlight number, seats, timezone, booking notes
S
Check in at Glassline HotelRoom preferences and confirmation number
$
Split airport transferMulti-currency receipt and settlement
Shared
Mission

The calm layer between confirmation chaos and the trip itself.

Travel planning does not live in one place by default. Roamarr turns the scattered pieces into a practical trip workspace designed for repeated, private use.

Everything has context

Trips, dates, timezones, notes, tags, booking status, favorites, archives, comments, and printable itineraries are treated as part of one living plan.

Built for real logistics

Track rideshares, parking, directions, points of interest, food plans, todos, events, trains, boats, rental cars, and free-form notes.

Group travel without fog

Coordinate attendees, polls, packing templates, kid gear, accessibility notes, dietary details, room preferences, and emergency sharing.

Current scope

Clear about what Roamarr is, and what it is not claiming.

Roamarr is broad and practical, but it is not pretending to be a hosted travel network, inbox parser, or automatic booking-sync service.

Manual organizer first

Store trip data you enter or import. The app does not claim airline account sync, hotel portal sync, inbox scanning, OCR, or AI itinerary extraction.

Fare-watch plumbing

Fare provider accounts, watch records, scheduler hooks, and notifications exist. The built-in provider is a demo stub; live fare data depends on adding real providers.

Backups with boundaries

Settings can download and restore the SQLite database. Receipt files live beside it in an attachments directory, so include that folder in volume snapshots.

Modules

Click the moving parts. Watch the hub recalibrate.

Each module is a different travel lane connected by the same local database. Select a card to preview how Roamarr frames that part of the trip.

Roamarr logo at the center of connected modules
Module 01

Printable itineraries that remember every detail.

Plan the trip as a sequence of itinerary segments with booking status, notes, tags, favorites, archives, comments, timezones, and export-ready structure.

FlightsHotelsTrainsEventsFree-form notes
SQLite-backed

Keep the heart of the app portable, scriptable, and easy to snapshot.

SvelteKit shell

Fast server-rendered pages with an app experience designed for repeated use.

Drizzle ORM

A practical database layer for schema-driven application data.

Under your roof

Private by default, shareable on purpose.

Roamarr is built around the idea that itinerary sharing should be explicit, scoped, and revocable while sensitive travel data stays protected at rest.

Hosted where you decide.

The SQLite database can live on persistent storage that fits your setup. Built-in backup downloads cover the database; receipt attachments live beside it so volume snapshots can include both.

1
ROAMARR_SECRET requiredThe app refuses to boot until a secret is configured.
2
AES-256-GCM sensitive fieldsTravel document numbers, fare-provider keys, and SMTP secrets are encrypted at rest.
3
Reduced viewer dataPublic links and feeds use scoped viewer projections instead of exposing every private trip field.
Trip ops

A dashboard for the unglamorous details that actually matter.

Use the switches below to restage the demo dashboard. The cards update instantly, just like a travel operations board for your household or group.

Family weekendSeattle - 4 travelers - 3 days
Planning view

Pack the practical things.

Room preference confirmed, medication reminders scheduled, emergency itinerary link expires after the trip, and kid gear is assigned by person.

14Tasks
6Documents
3Shares

Before 3

Renew entry requirement checklist
Assign stroller and kid snacks
Print hotel confirmation

During 3

Medicine reminder at breakfast
Share ETA with grandparents
Capture parking receipt

After 2

Settle transfer split
Archive public link
Deploy

Clone.
Install.
Run Roamarr.

The design intentionally keeps the launch path visible: source-first setup, environment configuration, and a production build that listens on your chosen port.

roamarr/setup.sh
# clone when the repo opens
git clone https://github.com/visorcraft/Roamarr.git
cd Roamarr

npm ci
cp .env.example .env
openssl rand -base64 32

# paste ROAMARR_SECRET, then boot
npm run dev
open http://localhost:5173/setup

Source-first runtime, local-data confidence.

Roamarr is a SvelteKit app shell powered by Node, SQLite, Drizzle, and a guarded scheduler for reminders, fare-watch job hooks, expired sessions, and run pruning.

ASet ORIGIN behind your reverse proxy.
BKeep DATABASE_PATH on persistent storage.
CDownload database backups, review health checks, and audit activity from Settings.