Datopian Portfolio

Interactive visualisations of the Datopian portfolio — force-directed map and indented tree, both drawing from the same markdown data source.

This page is intentionally light. The portfolio tree is the main overview. If you want detail on a specific initiative or project, open it from the tree or map via View.

If you want to understand how the KB works or how to add new information, use:

Visualisations

Hierarchical outline view. Filter by status, collapse/expand groups, open any item via View.

Draws from index.js, generated by portfolio/scripts/build-index.js from frontmatter in initiatives/ and projects/.

For the reasoning behind the current structure, see Portfolio Structure Rationale.


Building the data index

# Rebuild manually
python3 portfolio/scripts/build-index.py

# Alternative Node-based rebuild
cd portfolio/scripts && npm install
node build-index.js

If the repo hook is enabled with git config core.hooksPath .githooks, the pre-commit hook rebuilds portfolio/index.js automatically when any initiatives/*.md or projects/*.md file is staged.

Changes merged or pushed to main on GitHub also trigger a GitHub Actions workflow that rebuilds and commits portfolio/index.js automatically, so web edits and clones without hooks still get reflected in the tree.


How To Use This

  • Use Portfolio Tree for the clearest overview of the current structure.
  • Click View on any item to open its own page.
  • Keep richer detail on the item page itself, not here.
  • Edit the markdown source files in initiatives/ and projects/, not the visual pages directly.

This means:

  • portfolio/README.md stays lightweight
  • initiatives/*.md and projects/*.md are the real source material
  • the tree and map are the main overview surfaces
  • portfolio/index.js is a generated data layer, not the primary editing surface

Marketing is a grouping initiative under Internal Systems. It exists to organize related internal initiatives and projects, not to function as a bounded project.

Scope

The portfolio covers:

  • products
  • services
  • internal initiatives
  • bounded projects nested under those initiatives

It is not meant to be a second knowledge base or a duplicate reporting layer.

Conventions

Initiatives

Initiatives are enduring efforts — products, services, or ongoing internal work with no fixed end date.

  • File: initiatives/{slug}.md — stable semantic slug (e.g. queryless.md, ckan-co-stewardship.md)
  • Template: docs/initiative-template.md
  • Required frontmatter: title, type, offer, status, north_star, created
FieldValues
typeproduct | service | internal
statusactive | paused | archived | idea
offertrue = external-facing; false = internal
parentslug of parent initiative (e.g. ckan for ckan-co-stewardship)

Projects

Projects are bounded efforts nested under an initiative — they have a definition of done.

  • File: projects/YYYY-{slug}.md — year prefix + semantic slug (e.g. 2026-ckan-portal-upgrade.md)
  • Template: docs/project-template.md
  • Required frontmatter: title, status, created, parent
FieldValues
statusactive | paused | archived | done
parentslug of parent initiative (e.g. ckan)
ownerlead person (optional)

Current structure

The current top-level portfolio split is:

  • External Offers
  • Internal Systems

Within External Offers, the main structure is:

  • Core Data Infrastructure
  • AI-Native Offers
  • Flowershow

Within Internal Systems, the main structure is:

  • Marketing
  • BizDev
    • RFP and Proposal System
    • OpenGov Instances Campaign
    • Cold Emailing Campaign
    • Revival of Past Opportunities
  • Company Operating System
Built with LogoFlowershow