loredata
v0.4.1
Published
Generate personas from pop culture universes. Every field belongs to the same fictional world.
Downloads
53
Maintainers
Readme
Demo: loredata.orchidfiles.com
Why LoreData
- Generic demo users like John Doe, Jane Smith, and
[email protected]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 loredataUsage example
import { person, group } from 'loredata';
const p = person({ universe: 'breaking-bad' });
// {
// firstName: 'Walter',
// lastName: 'White',
// username: 'heisenberg',
// email: '[email protected]',
// 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,lastNameusername,emailaddress,profession,interestsquote,symbol,coloruniverse,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 universesUniverses
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 devDisclaimer
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.
