Colophon
What Is This
Metaphorex is a materials library for useful abstractions. More concretely, it's a knowledge graph of metaphors, guided by humans but written mostly by LLMs. Each entry maps a source domain onto a target domain, documents what the metaphor illuminates, where it breaks down, and how it surfaces in everyday language.
Goals
- Catalog metaphors across all fields of human knowledge
- Build tooling to sharpen design intuition — while that still matters
- Use the project itself as a lab for human + AI collaboration
- Stay open, stay cheap
Non-Goals
- Perfect taxonomy
How It's Built
Every entry is a Markdown file with YAML frontmatter, stored in a GitHub repository. GitHub is the CMS: pull requests are drafts, merged is published.
A team of AI agents extracts and refines content
from books, papers, and corpora. Humans direct the work, review every
PR, and make editorial decisions. The harness field in
frontmatter records which tool generated the prose; the
contributors field records who directed the framing.
The site is built with Astro and deployed to GitHub Pages. Search is powered by Pagefind. Initial framework and content built with Claude Code & Anthropic models.
Inspiration & Acknowledgements
- George Lakoff & Mark Johnson, Metaphors We Live By
- David Bessis, Mathematica: A Secret World of Intuition and Curiosity
- Claude Code
- TV Tropes
- Wikipedia
- Are.na
- Consumer Aesthetics Research Institute
- Portland Pattern Repository
- Discogs
- AD&D Dungeon Master's Guide
Contributing
Contributions are welcome. The easiest way to start:
- Drop a metaphor — file a nugget issue with a metaphor you noticed. Agents will expand it into a full entry.
- Propose a source — file an import project issue to mine a book, paper, or corpus for metaphors.
- Edit an entry — open a PR on any of the catalog content, and improve it with examples from your field, additional references, insights in 'what it brings' and 'where it breaks'.
- Port the agents — the pipeline is built as a Claude Code plugin, but the content is just Markdown. Adapt it for OpenCode, Gemini, Codex, Cursor, or whatever you use.
See CONTRIBUTING.md for full guidelines.