Skip to content

chasingimpact/ged2json

Repository files navigation

ged2json.com

A privacy-first GEDCOM to JSON converter. Files are automatically deleted after 60 minutes.

Production Site: https://ged2json.com/

API Documentation: https://ged2json.com/developers

Features

  • Bidirectional conversion between GEDCOM and JSON formats
  • Zero data retention - files auto-delete after 60 minutes
  • Rate limiting (100 conversions per day per IP)
  • Family tree analytics and visualization
  • Dark/light theme support
  • Mobile responsive design

Tech Stack

  • Next.js 14 (App Router)
  • React 18
  • TypeScript
  • Tailwind CSS
  • Radix UI components

Getting Started

Prerequisites

  • Node.js 18+
  • npm

Installation

npm install

Development

npm run dev

Open http://localhost:3000 in your browser.

Build

npm run build
npm start

Environment Variables

Copy .env.example to .env.local and configure:

NEXT_PUBLIC_APP_URL=http://localhost:3000
RATE_LIMIT_MAX=100
RATE_LIMIT_WINDOW=86400000
FILE_DELETION_TIMEOUT=3600000

API Usage

Convert GEDCOM to JSON

curl -X POST https://ged2json.com/api/convert \
  -F "file=@family.ged" \
  -F "direction=ged-to-json"

Convert JSON to GEDCOM

curl -X POST https://ged2json.com/api/convert \
  -F "file=@family.json" \
  -F "direction=json-to-ged"

Response

{
  "success": true,
  "fileId": "uuid",
  "treeUrl": "https://ged2json.com/api/download/{fileId}/tree",
  "jsonUrl": "https://ged2json.com/api/download/{fileId}/json",
  "deleteIn": "59:59",
  "remaining": 99
}

Project Structure

ged2json/
|-- app/
|   |-- api/
|   |   |-- convert/       # Main conversion endpoint
|   |   |-- download/      # File download handler
|   |   +-- email/         # Email collection
|   |-- layout.tsx
|   +-- page.tsx
|-- components/
|   |-- ui/                # Radix UI components
|   |-- UploadZone.tsx
|   |-- TreeVisualizer.tsx
|   |-- JSONPreview.tsx
|   +-- ...
|-- lib/
|   |-- parser.ts          # GEDCOM/JSON conversion
|   |-- storage.ts         # Temp file management
|   |-- rate-limit.ts      # Rate limiting
|   |-- analytics.ts       # Family tree analytics
|   +-- types.ts           # TypeScript types
+-- tmp/                   # Temporary file storage

Supported GEDCOM Features

  • Individuals (names, genders, dates, places)
  • Families (marriages, divorces, children)
  • Events (birth, death, marriage, etc.)
  • Sources and citations
  • Repositories
  • Notes
  • Multimedia links
  • GEDCOM 5.5.1, 5.5.5, and 7.0 features

Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel
  3. Deploy

Other Platforms

The app can be deployed to any platform that supports Next.js:

  • Netlify
  • Railway
  • Render
  • AWS Amplify
  • Self-hosted

License

MIT

About

Bidirectional JSON, GEDCOM file conversions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published