loredata

4 min read Original article ↗

0.4.1 • Public • Published

LoreData

LoreData

Generate coherent personas from pop culture universes.
Each persona comes from one fictional world with no cross-universe mixing.
Built for demos, mockups, screenshots, and seed fixtures where recognizable context matters.

npm version npm downloads per month node version license last commit

LoreData screenshot

Demo: loredata.orchidfiles.com

Why LoreData

  • Generic demo users like John Doe, Jane Smith, and test@example.com work for smoke tests but feel flat in real product demos
  • LoreData generates recognizable personas from a single fictional universe, so fields stay coherent by design
  • Deterministic output via seed keeps fixtures stable across runs
  • Works in Node.js, browser, and as a CLI tool with no network requests

Who this is for

  • developers filling a local database or Storybook stories with recognizable personas
  • designers building mockups who do not want to use John Doe again
  • QA engineers creating more expressive test accounts with different profiles
  • tutorial and conference talk authors who want screenshots that feel less generic

Features

  • [x] 29 universes
  • [x] Single persona and group generation
  • [x] Filter characters by interest, name, universe
  • [x] Deterministic output via seed
  • [x] Browser-safe entry point
  • [x] CLI tool
  • [x] Character symbol and color fields

Install

# library
npm install loredata

# CLI
npm install -g loredata

Usage example

import { person, group } from 'loredata';

const p = person({ universe: 'breaking-bad' });
// {
//   firstName: 'Walter',
//   lastName: 'White',
//   username: 'heisenberg',
//   email: 'blue_sky_cook@lospollos.com',
//   quote: "I am the one who knocks.",
//   profession: 'Chemistry teacher',
//   interests: ['chemistry', 'cooking', 'family'],
//   address: { street: '308 Negra Arroyo Lane', city: 'Albuquerque', state: 'NM' },
//   symbol: '☢️',
//   color: '#4c1d95',
//   universe: 'breaking-bad',
//   universeName: 'Breaking Bad'
// }

const team = group({ universe: 'game-of-thrones', size: 3 });
// [
//   { firstName: 'Jon', lastName: 'Snow', username: 'lord_commander', ... },
//   { firstName: 'Daenerys', lastName: 'Targaryen', username: 'mother_of_dragons', ... },
//   { firstName: 'Tyrion', lastName: 'Lannister', username: 'halfman', ... },
// ]

Persona fields

Each Person includes:

  • firstName, lastName
  • username, email
  • address, profession, interests
  • quote, symbol, color
  • universe, universeName

Deterministic output

If you need reproducible results, for example for test fixtures, just pass a seed:

const p = person({ universe: 'matrix', seed: 42 });
const team = group({ universe: 'matrix', size: 3, seed: 42 });

Given the same seed, you always get the same persona or the same group.

Browser

The library also supports browser environments through a separate entry point with no dependency on fs or path:

import { loadUniverse, personFromData } from 'loredata/browser';

const universe = await loadUniverse('breaking-bad');
const p = personFromData(universe);

It works with Vite, webpack, and any browser bundler.

CLI

loredata person --universe breaking-bad
loredata person --universe breaking-bad --format json
loredata person --interests chemistry,cooking
loredata person --interests chemistry,cooking --interests-mode and
loredata person --name walter
loredata group --universe friends --size 5
loredata universes

Universes

import { universes } from 'loredata';

universes();
// [
//   { id: 'sherlock', name: 'Sherlock', genre: ['crime', 'drama', 'mystery'], description: '...' },
//   { id: 'game-of-thrones', name: 'Game of Thrones', genre: ['fantasy', 'drama', 'action'], description: '...' },
//   ...
// ]

For API/CLI usage, use universe IDs such as the-office and game-of-thrones.

29 universes available out of the box:

  • Avengers
  • Better Call Saul
  • Big Bang Theory
  • Breaking Bad
  • Crown
  • Fast and Furious
  • Friends
  • Game of Thrones
  • Guardians of the Galaxy
  • Harry Potter
  • House MD
  • Lost
  • Matrix
  • Office
  • Peaky Blinders
  • Prison Break
  • Sherlock
  • Simpsons
  • Sopranos
  • South Park
  • Spider-Man
  • Star Wars
  • Stranger Things
  • Supernatural
  • Walking Dead
  • Witcher
  • Vikings
  • Westworld
  • X-Men

Development

# clone repo and install dependencies
git clone https://github.com/orchidfiles/loredata.git
cd loredata
pnpm install

# build in watch mode
pnpm --filter @loredata/dev-kit build
pnpm --filter loredata build:watch

# start web app
pnpm --filter @loredata/web dev

Disclaimer

LoreData is an unofficial fan tool and is not affiliated with the rights holders of these universes, studios, or streaming platforms.

License

MIT


Made by the author of orchidfiles.com — essays from inside startups.
If you found loredata useful, you'll probably enjoy the essays.