Source-of-truth for fictional companies used to populate engaging, representative demo data in Odoo databases. Each company lives in its own folder under universes/ — pick one, load it into an Odoo DB, tell a story.
The cast, product catalog, customer roster, CRM pipeline, BOMs, and projects live here as versioned YAML/Markdown. When we want a fresh Odoo demo DB, we replay a chosen universe's content via MCP against a target Odoo instance.
- Engagement — prospects should recognize real workflows in a memorable story, not "Company XYZ / Product A / Partner 1"
- Reproducibility — any dropped DB can be repopulated from this repo
- Iterable — stories evolve in git, with diffs and history
- Legally clean — every person, customer, and supplier is fictional. No real trademarks.
- Multi-vibe — different audiences want different moods; one repo, many universes.
| Slug | In one line |
|---|---|
bean-forge |
Bean Forge BV — Utrecht-based precision coffee-roaster manufacturer. Documentary-realism B2B industrial vibe. |
unicorn-inc |
Unicorn Inc. — cheerful cooperative of fabelwezens supplying real superpowers (pegasus wings, dragon fire, mammoth fur, …). Pixar-styled storybook vibe. |
provisional-bureau |
The Provisional Bureau — Amsterdam boutique brand strategy & design studio. Services-led; late-1980s Dutch agency pastiche imagery. |
Each universe folder has its own CLAUDE.md (identity + tone) and the same YAML schemas (see ARCHITECTURE.md).
odoo-demo-data/
├── README.md you are here
├── ARCHITECTURE.md schema + conventions + how data flows to Odoo
├── CLAUDE.md repo-wide project context for Claude Code
├── LICENSE MIT
├── scripts/ universe-agnostic tooling (--universe flag)
│ ├── populate.md order + notes for populating Odoo via MCP
│ ├── generate_images.py FLUX image generation
│ └── generate_odoo_product_images.py
└── universes/
└── <slug>/
├── CLAUDE.md story identity for this universe
├── story/ company.md + YAMLs
├── images/ flux-presets.yaml + generated/
└── scratch/ (optional) ad-hoc inputs
Today: hand-driven via Claude Code + the Odoo MCP server. See scripts/populate.md for the layer order. Decide which universe first.
Future: a batch script that reads all YAML files of a given universe and issues MCP calls in sequence.
python scripts/generate_images.py --universe bean-forge logo
python scripts/generate_images.py --universe bean-forge headshots --only teun-boon
python scripts/generate_images.py --universe bean-forge all --dry-run
Requires BFL_API_KEY in .env. See scripts/populate.md for the image workflow.
- Create
universes/<slug>/{story,images}/and anCLAUDE.mddescribing tone and identity. - Copy
universes/bean-forge/images/flux-presets.yamlas a starting point and rewrite the brand block + presets. - Fill in
story/company.mdand the YAMLs — schemas live in ARCHITECTURE.md.
MIT — see LICENSE. All content is fictional. Use freely for demos, training, screenshots, tutorials.