Treename 以父母與祖父母的母語進行訪談,將他們的回答編織成家族故事、活的族譜與一本孩子將珍藏的書。
AI 翻譯
Treename interviews your parents and grandparents in their own language and turns their answers into a family story, a living tree and a book your children will keep.
生活風格TypeScript · JavaScriptGitHub @wrcmbb5t28-coder上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證TREE
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Family history, told by your family. Treename берёт голосовые интервью у родителей, бабушек и дедушек на их родном языке и превращает ответы в историю семьи, живое дерево, путь семьи на карте и семейную книгу. Этот репозиторий — MVP по плану «первые 90 дней» из документа Treename 2.0 — Blueprint.檢視完整 README ↗
Family history, told by your family. Treename берёт голосовые интервью у родителей, бабушек и дедушек на их родном языке и превращает ответы в историю семьи, живое дерево, путь семьи на карте и семейную книгу.
Этот репозиторий — MVP по плану «первые 90 дней» из документа Treename 2.0 — Blueprint.
| Часть | Где в коде | Статус |
|---|---|---|
| Сайт на 6 языках (EN, DE, FR, IT, ES, RU), SEO, hreflang, sitemap, OG-картинки | src/app/[lang], src/i18n | готово |
| Страница «Вопросы бабушке и дедушке» (SEO + отправка в WhatsApp) | src/app/[lang]/questions | готово |
| Онбординг из 8 шагов, регистрация только в конце | src/components/Onboarding.tsx, src/app/api/onboarding | готово |
| Вход без пароля (ссылка на e-mail) | src/lib/login.ts, src/app/api/auth | готово |
| Ask Grandma: страница ответа без аккаунта, запись голоса или текст | src/app/a/[token], src/components/Recorder.tsx | готово |
| Расшифровка голоса (любой OpenAI-совместимый endpoint) | src/lib/transcribe.ts | нужен ключ |
| AI-история и факты с уровнем уверенности, без выдумок | src/lib/ai.ts, src/lib/stories.ts | нужен ключ Anthropic |
| Подтверждение фактов → дерево и таймлайн | src/app/app/actions.ts (confirmFact) | готово |
| Дерево семьи, карточки людей, скрытые ветки | src/app/app/family, src/lib/tree.ts | готово |
| Journey: таймлайн и путь семьи | src/app/app/journey | готово |
| Истории, фото, редактирование, приватность историй | src/app/app/stories | готово |
| Приглашения родных (ссылка, WhatsApp, роли) | src/app/app/invite, src/app/join | готово |
| Семейная книга (печать / PDF, QR-код к голосу) | src/app/app/book | готово (печатная книга — через партнёра, позже) |
| Семейная страница по закрытой ссылке (вирусная петля) | src/app/f/[slug] | готово |
| Эмблема (простая, из данных семьи) | src/components/Emblem.tsx | базовая; AI-версия — фаза 2 |
| Оплата: Family $59/год, Legacy Gift $99, Founding Family $249, подарочные коды | src/app/api/stripe, src/app/app/billing | нужен Stripe |
| Экспорт всего (JSON) и дерева (GEDCOM), удаление семьи | src/app/api/export, Settings | готово |
| Аналитика событий и North Star (Contributing Families, 28 дней) | src/lib/analytics.ts, /app/admin | готово |
Не входит в MVP (по стратегии — позже): чат «Ask Your Family» (фаза 3), AI-эмблема, заказ печатной книги, нативные приложения, перевод интерфейса приложения (сейчас приложение на английском; сайт, онбординг и страница ответа для рассказчика — на 6 языках).
Сайт рассчитан на Vercel: база Neon Postgres и закрытое хранилище файлов Vercel Blob, всё во Франкфурте (vercel.json → регион fra1).
TREE → Deploy. Первый деплой пройдёт без базы — это нормально.DATABASE_URL и DATABASE_URL_UNPOOLED.BLOB_STORE_ID (новый способ, через OIDC) или BLOB_READ_WRITE_TOKEN (старый) — код понимает оба.ADMIN_EMAILS (ваш e-mail). APP_URL нужен только когда подключите свой домен (https://treename.ai). Для закрытого теста без почты — SHOW_LOGIN_LINKS=1 (убрать перед открытым запуском!).prisma db push).ANTHROPIC_API_KEY, TRANSCRIBE_API_KEY, RESEND_API_KEY + EMAIL_FROM, ключи Stripe. После добавления переменных — Redeploy.Строка «Data hosted in…» на сайте берётся из DATA_REGION: по умолчанию «Europe». «Switzerland» включайте (DATA_REGION=ch) только когда база, файлы и AI действительно будут в Швейцарии.
Ограничение Vercel: одна загрузка — до 4,5 МБ. Поэтому запись ответа ограничена 15 минутами (голос пишется с низким битрейтом), фото — до 4 МБ.
Нужны Node.js 20+ и Postgres (например, docker run -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres:16).
npm install
cp .env.example .env # адрес базы уже указан для docker-варианта
npm run setup # создаёт таблицы и демо-семью Rossi
npm run dev
Откройте http://localhost:3000.
/login → [email protected]. Без настроенной почты ссылка для входа показывается прямо на экране (только в режиме разработки)./a/... печатается в консоли после npm run setup..env)| Переменная | Зачем |
|---|---|
DATABASE_URL, DATABASE_URL_UNPOOLED | Postgres (на Vercel создаются Neon автоматически) |
BLOB_STORE_ID или BLOB_READ_WRITE_TOKEN | закрытое хранилище записей и фото (Vercel Blob) |
ANTHROPIC_API_KEY, ANTHROPIC_MODEL | истории и факты (по умолчанию claude-sonnet-5-5) |
TRANSCRIBE_API_KEY, TRANSCRIBE_URL, TRANSCRIBE_MODEL | расшифровка голоса |
RESEND_API_KEY, EMAIL_FROM | письма со ссылкой для входа и подарками |
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_PRICE_* | оплата; webhook: https://<домен>/api/stripe/webhook, события checkout.session.completed, invoice.paid, customer.subscription.deleted |
ADMIN_EMAILS | доступ к странице метрик /app/admin |
DATA_REGION | eu или ch — что написано на сайте о месте хранения данных |
SHOW_LOGIN_LINKS.src/app/[lang]/privacy) должен проверить юрист (nDSG + GDPR)./api/onboarding, /api/auth/request, /api/answers (Vercel Firewall).tsc без ошибок, next build проходит. Сквозной тест в браузере (на локальной базе): главная на DE, онбординг → вход по ссылке → вопрос → ответ рассказчика с телефона → история → подтверждение факта → дерево → Journey → приглашение → семейная страница → книга → экспорт GEDCOM/JSON → оплата (страница) → метрики. Голос, AI, почта и Stripe проверены только в режиме «без ключей»: с реальными ключами их нужно прогнать один раз на стейджинге.
prisma/ схема базы и демо-данные
src/app/[lang]/ сайт: главная, вопросы, приватность, онбординг
src/app/a/ страница ответа для рассказчика
src/app/app/ приложение семьи (истории, дерево, journey, книга, настройки, оплата, метрики)
src/app/api/ API: онбординг, вход, ответы, файлы, экспорт, Stripe, аналитика
src/components/ UI-компоненты
src/i18n/ тексты на 6 языках
src/lib/ AI, расшифровка, почта, хранилище, аналитика, дерево