Itihas — интерактивная платформа для исторических данных и нелинейных нарративов
Ссылка: https://itihas.vercel.app
Репозиторий: https://github.com/LiiChar/itihas
Общее описание и мотивация
Itihas (санскр. «история») — это полноценная веб-платформа, позволяющая создавать, публиковать и изучать интерактивные исторические нарративы и визуализации временных шкал. Проект задумывался как инструмент для историков, преподавателей, музеев и энтузиастов, которым не хватает гибкости в существующих решениях типа TimelineJS или Tiki-Toki. Основная идея — объединить мощный редактор нелинейных историй с красивой интерактивной временной шкалой и возможностью встраивания мультимедиа.
Технологический стек
- Frontend: React 18 + TypeScript + Vite
- UI: Tailwind CSS + Headless UI + custom компоненты
- Состояние: Zustand (лёгкий и быстрый аналог Redux)
- Визуализация таймлайна: Visx (низкоуровневая обёртка над D3.js) + custom zoom/pan логика
- Редактор блоков: Tiptap (headless ProseMirror) с кастомными расширениями для эмбедов карт и таймлайнов
- Хранение данных: SQLite через Drizzle ORM (локальная разработка) + Turso (libsql) в продакшене
- Бэкенд: Node.js + Express + Drizzle ORM
- Аутентификация: NextAuth.js (переиспользуется в API routes)
- Деплой: Vercel (frontend + serverless API)
Уникальные фичи
- Нелинейные ветвящиеся истории — пользователь может создавать несколько веток событий с условными переходами.
- Двухсторонняя связь редактора и таймлайна — изменение даты в редакторе мгновенно отражается на шкале и наоборот.
- Глубокий зум таймлайна — от миллиардов лет до секунд с сохранением производительности (виртуализация + LOD).
- Встроенные карты — интеграция с Mapbox GL JS, события можно привязывать к геоточкам.
- Экспорт в статический сайт — один клик генерирует полностью автономный HTML с встроенными данными.
- Мультиязычность контента — каждое событие может иметь переводы, переключение языка на лету.
- Версионирование историй — как в Git: можно откатиться к любой версии.
Как запустить локально
# Клонируем и заходим
git clone https://github.com/LiiChar/itihas.git
cd itihas
# Устанавливаем зависимости
npm install
# Создаём .env (пример в .env.example)
cp .env.example .env.local
# Запускаем dev-сервер (одновременно фронт + бэк)
npm run dev
# → http://localhost:5173
Для работы с Turso:
npx turso dev # создаст локальную БД
# или используй удалённую: turso db create itihas-prod
Roadmap (2025–2026)
- Импорт данных из Wikipedia / Wikidata API
- Коллаборативное редактирование в реальном времени (Y.js + Liveblocks)
- AI-генерация событий по текстовому описанию эпохи
- Плагины и темплейты от сообщества
- Мобильное приложение (Tauri + React Native)
- VR-режим для Oculus (WebXR)
Itihas уже сейчас является одним из самых технически сложных и красивых open-source инструментов для работы с историческими данными. Проект активно развивается и приветствует контрибьюторов любого уровня.