Project Structure

blastodb/
├── .eleventy.js              # Build config: filters, collector logic, shortcodes
├── package.json              # Dependencies and npm scripts
├── content/                  # Eleventy input (every page + all data)
│   ├── *.md                  # Top-level pages (/datasets/, /blog/, /biobank/, …)
│   ├── admin/                # Sveltia CMS (index.html + config.yml), copied as-is
│   ├── data/                 # Collection data + site config
│   │   ├── datasets/ …       # Folder collections: one .md file per entry
│   │   ├── *.json            # File collections (publications, research_labs, people)
│   │   ├── *.yaml            # Vocabularies (countries, datatypes, …) + announcements
│   │   └── header.json …     # Nav, footer, branding
│   ├── documentation/        # This documentation site
│   └── feeds/                # RSS feed templates (.njk)
├── _includes/
│   ├── layouts/              # Nunjucks page layouts (*.njk)
│   └── collector-cards/      # Card templates rendered into collector listings
├── assets/                   # style.css, collector.css, main.js, uploads/
├── images/                   # Static images
├── .github/workflows/        # CI/CD (check, deploy, publish, sync-staging)
└── output/                   # Build output — git-ignored, regenerated each build

Key entries

Path Purpose
.eleventy.js Mail file for eleventy: collection loading, the [collector] system, filters, custom shortcodes.
content/admin/config.yml Defines the datastructure, CMS and some parts of the collector.
content/data/<collection>/ Where Sveltia writes entries (.md per item for folder collections; .json/.yaml for file collections).
_includes/layouts/ Page templates (e.g. dataset-page.njk, documentation.njk).
_includes/collector-cards/ One card template per collection, pre-rendered into listings.
output/ HTML generated by eleventy from the content in content/.

See Sveltia CMS & the Collector for how config.yml, content/data/, and the collector cards fit together.


<- Back to Technical Docs