Entity-Oriented Website Design Manual
Entity-Oriented Website Design Manual
Core Principle
Design the website around things that exist in the subject matter, not around pages, menus, or articles.
Ask:
"What are the things I want to know about?"
not
"What pages do I want on my website?"
Step 1: Identify Core Entities
An entity is something important enough to deserve its own page.
For Contraptions, examples include:
- Contraption
- Sound
- Voice
- MIDI Map
- MIDI Map Entry
- Function
- Registration
- Effect
- Article
- Tech
The test is:
Would I ever want to browse, search, categorize, or link to this thing directly?
If yes, consider making it an entity.
Step 2: Separate Things from Stories
Distinguish between persistent objects and temporary narratives.
Objects
Things that exist over time:
- Topsy
- Glockenbox
- MIDI Interface
- Reuter 1674
Stories
Things that document activity:
- Build logs
- Progress reports
- Announcements
- Historical articles
Objects accumulate stories over time.
Step 3: Normalize Concepts
Separate different dimensions of classification.
For example:
What it IS
Instrument
Interface
Controller
Rank
Tool
This belongs in:
Contraption Type
What disciplines are involved
Electronics
Mechanical
Woodworking
Software
Physics
Music
This belongs in:
Genre
A single taxonomy should answer a single question.
Step 4: Prefer Relationships Over Hierarchies
Many systems naturally form networks rather than trees.
Avoid forcing this:
Parent
└─ Child
when reality looks more like:
A relates to B
A uses C
A inspired D
B controls E
Use flexible relationships whenever possible.
Step 5: Model Reality, Not Implementation
Example:
Don't ask:
"Should MIDI Controller be a content type?"
Ask:
"What is a MIDI Controller in the real world?"
The answer determines the model.
A database should describe reality rather than software structure.
Step 6: Create New Entities Only When Necessary
Avoid creating content types for every idea.
Ask:
Is this fundamentally different?
If not, use an existing entity.
For example, we discovered many "components" are actually specialized contraptions:
- Pipe chest
- MIDI interface
- Bellows
- Test bench
Rather than creating a new Component entity, they can remain Contraptions.
Step 7: Use Taxonomies for Classification
Use content types for things.
Use taxonomies for categories.
Good entity
Contraption
Good taxonomy
Contraption Type
Good taxonomy
Genre
Step 8: Make Relationships Discoverable
Store the relationship once.
Examples:
Topsy
→ related contraption
→ MIDI Interface
Then use Views to discover:
What references this item?
instead of storing reciprocal links manually.
Step 9: Let Real Content Drive the Model
Avoid endless redesign.
Enter real content.
Examples:
- Topsy
- Reuter 1674
- Glockenbox
- MIDI Interface
Then observe:
- Which fields feel useful?
- Which relationships keep appearing?
- Which categories emerge naturally?
The content will reveal the proper architecture.
Step 10: Think Like a Museum Curator
The website is not a collection of pages.
The website is a collection of interconnected knowledge.
For Contraptions:
Each item can be viewed from multiple perspectives without duplicating information.
Guiding Question
Whenever you are unsure how to model something, ask:
"Is this a thing, a category, a relationship, or a story?"
Most content-modeling decisions fall naturally out of that question.