Arbor is a lightweight family tree editor built with Vite, React and TypeScript. It supports importing GEDCOM and JSON files, visualizing a simple tree, editing person nodes, and exporting the tree back to GEDCOM or JSON.
src/— React application source: components, store, types, and utilities.data/— sample GEDCOM files (e.g. data/complex_2000.ged).public/— static assets (favicon, images).scripts/— small helper scripts (GEDCOM generation:generate_gedcom.js,generate_gedcom.cjs).package.json,vite.config.ts,tsconfig.*.json— project configuration.
- Vite
- React
- TypeScript
- TailwindCSS (utility styles)
- Node.js 18+ and npm or yarn
Install dependencies:
npm installStart the development server:
npm run devBuild for production:
npm run buildPreview the production build:
npm run preview- Use the header (top-right controls) to import or export data.
- Supported import file types:
.json,.ged,.gedcom. - Export options: JSON or GEDCOM from the current tree.
- Example sample GEDCOM: data/complex_2000.ged.
- Sample GEDCOM files live in data/.
- Use the scripts in
scripts/to generate sample GEDCOM files:
node scripts/generate_gedcom.js
# or
node scripts/generate_gedcom.cjs- The app uses
useTreeStore(Zustand) for state andutils/gedcomHandler.ts/utils/jsonHandler.tsfor import/export. - Internationalization is handled via
react-i18next— toggle language from the header.
Contributions are welcome. Please open issues for bugs or feature requests and submit small, focused pull requests. When adding features, update this README as needed and include sample data if appropriate.
Original author: Arnaud BEUX
For a full list of contributors see the repository contributor list.
MIT