A privacy-first genealogy visualization tool that transforms GEDCOM family tree files into an interactive, time-based map experience. See where your ancestors lived, traveled, married, and died — across generations and through time.
- GEDCOM Upload — Drag-and-drop
.gedfiles from FamilySearch, Ancestry, MyHeritage, Gramps, etc. Parsed entirely in the browser. - Interactive Map — Explore ancestor locations on a Mapbox GL map with markers color-coded by generation (up to 12 generations).
- Life Path Animations — Animate individual ancestors' journeys across their lifetime, drawing connection lines between life events.
- Event Filtering — Toggle event types (birth, death, marriage, burial, immigration, military, census, residence) to focus on what matters.
- Generation Navigation — Step through generations with a slider and see person counts per generation.
- Person Details — Click any marker to view names, relationships, and navigate to related family members.
- Privacy-First — All data stays in your browser's IndexedDB. No server uploads, no accounts, no tracking. Only location strings are sent to geocoding APIs.
- Persistent Storage — Return later and pick up where you left off, or upload a new tree.
- Svelte 5 + SvelteKit (static adapter)
- Mapbox GL JS for map rendering and geocoding
- Dexie.js for IndexedDB client-side storage
- read-gedcom for GEDCOM parsing
- TypeScript, Vite, Vitest
npm install
npm run devCreate a .env file with your Mapbox token:
VITE_MAPBOX_TOKEN=your_token_here
| Command | Description |
|---|---|
npm run dev |
Start dev server |
npm run build |
Build static site |
npm run preview |
Preview production build |
npm test |
Run tests |
- Upload a GEDCOM file
- Pick how many generations to display
- Locations are geocoded (Mapbox → GeoNames fallback) and cached locally
- Explore the map — filter events, scrub the timeline, play life path animations
Builds to a static site via @sveltejs/adapter-static. Deploy anywhere: Vercel, Netlify, GitHub Pages, etc.