iRemember
Bilingual family genealogy & biography archive — permissioned stories, AI timelines, public snapshots. Live on this server.
iRemember · 家族记忆档案 — a production-shaped demo for recording family genealogy and private biography material: a single-screen genealogy workspace, permissioned biography entries, AI-generated timelines, and shareable public biography snapshots — all in a bilingual (中文 / English) UI.
/iremember/ (Next.js, Docker). Demo data only — no real personal records.Built to show how a privacy-first family archive holds together end to end — from the data model and permission engine to the AI pipeline and the public-facing blog — without leaking private source material into anything public.
Surfaces
- Dashboard — family cards, member/relationship counts, and pending claim invitations
- Genealogy workspace — one-screen family graph with branch-range controls (ancestors / descendants / direct family / custom depth / full tree) and a person panel
- Person biography — private entries, original-media metadata, an AI timeline, a blog draft, and a live permission summary
- Public blog — a published biography backed by a curated snapshot, never the private source
Architecture
- App — Next.js 14 (App Router, RSC) rendered server-side and run as a
standaloneDocker container behind the host nginx, mounted under/iremember/viabasePath - Data model — a PostgreSQL + Prisma schema (users, families, persons, relationships, biography, media, timeline, blog, permissions, audit) designed for the long-term product
- Core libraries — a policy-based permission evaluator, application-layer encryption helpers for private text, genealogy graph/branch utilities, a storage-provider adapter, and a pluggable AI provider (mock in the demo)
Highlights
- Permission-gated AI — timeline and blog generation only ever read entries the actor is authorized to
ai_process/publish, evaluated through the same policy engine as the rest of the app - Private-by-default — biography text is stored as ciphertext + nonce with a key version; public snapshots are a separate, deliberately-published artifact
- Bilingual throughout — every surface renders in Chinese or English from a shared dictionary, server-rendered per request
Stack: Next.js · React · TypeScript · Tailwind CSS · Prisma · PostgreSQL · Docker · nginx
Live and self-hosted — the demo above is the primary entry point.