A modern web application for exploring and preserving the Culpepper family genealogy
All genealogy data is sourced from Culpepper Connections, a comprehensive genealogy website maintained by Lewis Wyman Griffin Jr.
A custom TypeScript scraper fetches HTML pages from the source website, parsing person records, relationships (parents, spouses, siblings), and biographical details using Cheerio for HTML parsing.
Data is transformed and imported into Neo4j, a graph database ideal for modeling family relationships. Each person becomes a node, with edges representing PARENT_OF, SPOUSE_OF, and SIBLING_OF relationships.
Next.js queries Neo4j to build interactive family tree visualizations, searchable person directories, and detailed person pages. The graph database makes it efficient to traverse family relationships across generations.
D3.js-powered visualization with zoom, pan, and click-to-expand functionality for exploring family connections.
Debounced search across all records with filtering by name, birthplace, and other criteria.
Custom CSS theme system with localStorage persistence and FOUC prevention using blocking scripts.
ConfigCat integration for dynamic feature control with route protection and instant rollback capability.
Mobile-first design with Tailwind CSS breakpoints for optimal viewing on all devices.
Server-side rendering, efficient Neo4j queries, and Next.js optimizations for fast page loads.
@components, @lib, @models for better code organizationOpen source • Built with ❤️ for the Culpepper family