Search for characters or series

Most character databases treat a character as a single page of information - a description, some attributes, maybe a list of books they appear in. OpenFiction does something different: it tracks characters through books, chapter by chapter, recording what changes and when.
This post explains what that means in practice and why we built it this way.
The fundamental design decision behind OpenFiction is that every piece of character data is linked to the specific place in a book where it's established, changes, or ends.
When we say Kelsier appears in Chapter 1 of The Final Empire as a point-of-view character, that appearance is a discrete piece of data tied to that exact chapter. When we say a character dies, that death is tied to the chapter where it happens. When we say two characters become allies, that relationship has a start point - and sometimes an end point - in specific books.
This granularity is what makes spoiler filtering possible. Because we know where every piece of information comes from, we can show or hide it based on how far you've read.
The most basic unit of character tracking is an appearance. Every time a character shows up in a chapter, that's recorded with a type:
Point of view - the chapter is told from this character's perspective. You see events through their eyes, hear their thoughts.
On page - the character physically appears and participates in the scene, but the chapter is from someone else's perspective.
Mentioned - the character is talked about, referenced, or remembered, but doesn't physically appear.
These distinctions matter more than you might think. Knowing that a character is the point-of-view character in 30 chapters versus being mentioned once gives you a real sense of their importance to the story. And for series with rotating POV characters (like The Stormlight Archive or A Song of Ice and Fire), tracking who has the perspective in each chapter is genuinely useful.
Appearances can also have notes - brief descriptions of what happens, like "Arrives at Luthadel" or "Confronts the The Lord Ruler." These provide context without requiring you to re-read the chapter.
Life events are the big moments: deaths, injuries, resurrections, transformations. These are tied to specific chapters and represent significant changes in a character's status.
The system tracks these as state changes rather than just flags. A character isn't simply "dead" - they're alive from Chapter 1 to Chapter 45, then dead from Chapter 46 onwards. If they're resurrected later, that's another state change at another specific point.
This temporal tracking is essential for spoiler filtering. If you've read up to Chapter 30, you see the character as alive. Read past Chapter 46, and their status updates. The system shows the most recent state that's within your reading progress.
Character relationships are tracked with start and end points. A mentor relationship might begin in Book 1, Chapter 5, and end in Book 2, Chapter 20. An alliance might start in one book and still be ongoing.
Each relationship has a type (ally, enemy, family, romance, mentor, rival, friend) and can have subtypes for family relationships (sibling, parent, child, spouse). Relationships can be symmetric (both characters are allies to each other) or asymmetric (one is the mentor, the other the mentee).
The start and end points serve the same purpose as everywhere else: spoiler filtering. If a betrayal happens in Book 4, readers who've only finished Book 3 will see the characters as allies. The relationship change is invisible until they've read far enough to know about it.
Characters change over time. Hair colour might change, beliefs shift, new abilities are gained, old ones lost. OpenFiction tracks all of these with the same temporal model: a value, a start point, and optionally an end point.
This means you can see a character's physical description as it was at any point in the series, their evolving beliefs and loyalties, and the abilities they've gained or lost - all filtered to your reading progress.
Group memberships - factions, families, organisations - are tracked the same way. A character might join a group in Book 1 and leave in Book 3. If you've only read Book 2, you see them as a member. The departure is hidden until you've reached it.
All of this structure serves one purpose: letting you look up a character and see an accurate picture of who they are at the point you've reached in the story. Not who they become by the end. Not a summary that assumes you've read everything. Just what you know so far.
For a series like Mistborn, where a character's status, relationships, and abilities change dramatically across books, this is the difference between a useful reference and a spoiler minefield.
It's also what makes OpenFiction fundamentally different from a wiki. A wiki gives you the full picture. We give you your picture - the version of the character you've met so far, with everything else waiting for when you're ready.
All of this data - appearances, life events, relationships, attributes - is contributed by the community and reviewed by curators. If you spot something missing or incorrect, you can contribute directly. Every contribution goes through review to make sure it's accurate and properly tied to the right point in the story.
It's a lot of data to build out, and we're still early. But every appearance added, every relationship mapped, every life event recorded makes the database more useful for everyone reading these books.