KizunaIndex started as a simple public surface for references, but the interesting part was never the index itself. It was the structure behind it.
The lesson
The small schema mattered more than the visual layer. Once the content primitives were clear, it became much easier to reason about:
- What counts as a source
- What counts as an entry
- What needs review
- What can be generated later
The shape that held up
type Entry = { title: string; slug: string; summary: string; sourceLinks: string[]; status: "draft" | "ready" | "published"; };
Why public helps
Public systems force better boundaries. If a structure feels confusing when someone else sees it, it is usually confusing for the builder too. That made KizunaIndex useful as a design exercise, not just a publishing surface.
What I would keep
- Keep the model narrow.
- Keep the review step visible.
- Keep local editing first.
- Keep room for MDX when the content stabilizes.
The site works because the model stays understandable. That is not glamorous, but it scales better than cleverness.