DEV Community

Omer faruk Isil
Omer faruk Isil

Posted on

I built an intelligence database because Resident Evil made me obsessed with classified files as a kid

When Resident Evil Requiem came out I found myself thinking less about the gameplay and more about a specific detail, the intelligence databases, the dossiers, the classified file aesthetic. That fixation has been with me since childhood. I wanted that to exist as a real tool.

So instead of waiting for it, I built it.

What it is

ARCHIVES is a lore database app with a classified intelligence terminal aesthetic. It's not a freeform wiki. Every entity has a type, typed relationships, and a rich set of structured records, infection histories, mutation stages, consciousness transfer logs, intelligence assessments, affiliation histories, death and revival records.

The frontend is a Multiple Document Interface workbench. Dossiers, relationship graphs, interactive maps, and search results all open as draggable resizable windows inside a single workspace. No page navigation. Everything coexists.

Some things I found genuinely interesting to build

The MDI window system

Most SPAs route between pages. I wanted everything open simultaneously like an actual workstation. Each window has position, size, z-index, minimized and maximized state, all managed with Zustand. Clicking an entity link inside a dossier opens that entity in a new window rather than navigating away. React 19 with the Babel Compiler plugin for automatic memoization helped significantly with re-render performance once you have several windows open at once.

The natural language search parser

Beyond keyword search, I built a query parser that tokenizes intent and maps action words to specific relation types and record tables. Searching "who infected" hits infection records. "Who killed" hits death records filtered by killer entity. "Allies of" resolves to affiliation and relation type slugs. There are 50+ mapped action verbs supplemented at runtime by whatever relation types exist in the database. Results include a ranked entity list, a connection subgraph, and a generated intelligence briefing.

Github Repo
Live Demo

Top comments (0)