Zekher (Hebrew for "remembrance") is an AI-powered Holocaust education platform that provides responsible access to historical information and survivor testimonies. Built to combat Holocaust memory challenges from generative AI by providing factual information from authoritative sources.
This application is currently in private beta and is not recommended for production use.
- Experimental Technology: This platform uses experimental AI technology that may produce inaccurate, incomplete, or inappropriate responses
- Potential Hallucinations: AI models may generate false information or "hallucinate" facts that are not historically accurate
- Educational Use Only: This tool is intended for educational exploration and should not be considered a definitive source of historical information
- Verify Information: Always cross-reference AI responses with authoritative historical sources and scholarly materials
- Sensitive Content: The platform deals with Holocaust history and may generate content that could be disturbing or inappropriate
- No Warranty: The platform is provided "as is" without any warranties regarding accuracy, completeness, or appropriateness of content
For authoritative Holocaust education, please consult established institutions like the United States Holocaust Memorial Museum, Yad Vashem, and peer-reviewed academic sources.
Combat Holocaust memory challenges from generative AI by providing AI models with factual information from authoritative sources rather than ignoring AI's educational potential.
- AI Chat Interface - Educational conversations about Holocaust history
- Authoritative Sources - Historical facts from Yad Vashem's Holocaust Lexicon
- Survivor Testimonies - Personal accounts collected by Dr. David P. Boder
- Audio Integration - Access to original survivor testimony recordings
- MCP - Integration endpoints for educational applications
- Hybrid Search - Combines semantic and text-based search for accurate results
- Next.js 15 (App Router) - React framework with server-side rendering
- React 19 - UI library with latest features
- TypeScript - Type-safe JavaScript development
- Bun - Fast JavaScript runtime and package manager
- PostgreSQL - Primary database with vector extensions
- Drizzle ORM - Type-safe database toolkit
- Vector Embeddings - 1536-dimensional embeddings for semantic search
- Hybrid Search - Combines semantic and text-based search
- AI SDK - Vercel's AI toolkit for streaming responses
- Google Gemini 2.5 Pro - Primary language model
- Tailwind CSS 4 - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Motion - Animation library
- Lucide React - Icon library
- Bun - JavaScript runtime and package manager
- PostgreSQL - Database with vector extensions
- Environment variables (see
.env.local.example)
- Clone the repository:
git clone https://github.com/LukeKosner/Zekher.git
cd zekher- Install dependencies:
bun install- Set up environment variables:
cp .env.local.example .env.local
# Edit .env.local with your configuration- Set up the database:
bun db:generate
bun db:migrate- Ingest data sources:
bun ingest- Start the development server:
bun devVisit http://localhost:3000 to see the application.
├── app/ # Next.js App Router
│ ├── api/ # API routes (chat endpoint)
│ ├── about/ # About page
│ ├── build/ # Build page
│ ├── chat/ # Chat interface
│ ├── components/ # Page-specific components
│ ├── handler/ # MCP handler routes
│ ├── mcp/ # MCP configuration page
│ └── sources/ # Data sources page
├── components/ # Reusable React components
│ ├── layout/ # Layout components
│ └── ui/ # UI component library
├── docs/ # Documentation
├── hooks/ # Custom React hooks
├── lib/ # Core business logic
│ ├── database/ # Database layer & schema
│ ├── ingestion/ # Data processing pipeline
│ ├── monitoring/ # Error tracking & analytics
│ ├── navigation/ # Navigation utilities
│ ├── search/ # Search infrastructure
│ ├── shared/ # Shared utilities
│ ├── tools/ # AI tool implementations
│ └── utils/ # General utilities
└── public/ # Static assets & images
bun dev # Start development server
bun build # Build for production
bun start # Start production server
bun lint # Run ESLint
bun type-check # TypeScript type checkingbun db:generate # Generate Drizzle migrations
bun db:migrate # Run database migrations
bun db:studio # Open Drizzle Studio
bun db:push # Push schema changes
bun db:reset # Reset databasebun ingest # Ingest all data sources
bun ingest:lexicon # Ingest lexicon data only
bun ingest:testimony # Ingest testimony data only
bun ingest:clear # Clear all ingested data- Students & Educators - Seeking accurate Holocaust information
- Developers - Building educational applications
- Researchers - Accessing survivor testimonies and historical data
- Sentry - Error tracking and performance monitoring
- Vercel Analytics - Usage analytics
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Ensure 100% test coverage:
bun test:coverage - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Zekher - Preserving memory through technology, ensuring Holocaust education remains accessible and accurate in the digital age.