# modelearth/webroot architecture

> Architecture diagram of the GitHub repository modelearth/webroot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-04-18). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/modelearth/webroot
- Repository: https://github.com/modelearth/webroot

## Overview

1. This repository is a static webroot for “PartnerTools Webroot,” not a traditional application server. The primary runtime is plain file hosting: `python -m http.server 8887` serves the repo directly, and paths like `/team/` and `/projects/` map to folders in the tree.

2. The top-level `index.html` is the landing page, and the many sibling directories act as route roots or microsites. The architecture is therefore directory-driven: content, pages, and assets are organized by folder rather than assembled by a build pipeline.

3. `localsite/` appears to be the shared site framework or common shell used across sections. Paired folders such as `home/`, `grid/`, `swiper/`, and `montage/` likely hold reusable layout or interaction patterns that multiple pages depend on.

4. The main functional boundaries are the named content areas: `team/`, `projects/`, `reports/`, `trade/`, `community-forecasting/`, `data-pipeline/`, `comparison/`, `engage/`, `realitystream/`, `chat/`, `codechat/`, and similar folders. Each seems to represent a separate subject area or mini-site with its own entry page and assets.

5. There are also product or platform-oriented sections such as `cloud/`, `desktop/`, `better-auth/`, and `streamlit/`, suggesting the repo is used to publish documentation, demos, or landing pages for multiple related tools rather than one cohesive codebase.

6. `example/` is a self-contained sample site, with its own `README.md` and `index.html`, likely used as a reference implementation or test page for the webroot structure.

7. `siteconfig.yaml` and `sites.yaml` are the main configuration boundaries in the repo. These files likely define which site sections exist, how they are grouped, and potentially how cross-links or catalogs are generated.

8. `docker/`, `.dockerignore`, and `.github/workflows/vector_db_sync.yml` indicate lightweight operational automation around the static site. The GitHub Action suggests an external sync process for vector database or search/embedding data, but it is separate from the core static-serving path.

9. `.gitmodules` implies at least some directories are managed as submodules, so parts of the site may be sourced from other repositories or shared content modules. That matters for architecture because some content boundaries are actually repository boundaries.

10. The overall data flow is simple: source files live in the repo, the static server exposes them as web pages, and optional automation updates auxiliary data or synced content. There is no obvious application backend in this repo; the “system” is primarily a curated content/web delivery surface.

11. For an architecture diagram, the central node should be the static webroot, with spokes to the major site sections, a shared-site layer (`localsite` and common UI folders), configuration/catalog files, and external automation/submodule sources. The only explicit runtime is the local HTTP file server used for development.

Main entry points: [`sites.yaml`](https://github.com/modelearth/webroot/blob/main/sites.yaml) (Site config), [`.gitmodules`](https://github.com/modelearth/webroot/blob/main/.gitmodules) (Submodules), [`projects`](https://github.com/modelearth/webroot/tree/main/projects) (Projects), [`example`](https://github.com/modelearth/webroot/tree/main/example) (Example site)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core surface"]
  node_webroot[("Static webroot<br/>hosting root")]
  node_landing["Landing page<br/>entry html<br/>[index.html]"]
end

subgraph group_shared["Shared UI"]
  node_localsite["Local site<br/>shared shell"]
  node_home["Home<br/>layout pattern"]
  node_grid["Grid<br/>layout pattern"]
  node_swiper["Swiper<br/>interaction pattern"]
  node_montage["Montage<br/>layout pattern"]
end

subgraph group_content["Content sites"]
  node_team["Team<br/>microsite"]
  node_projects["Projects<br/>microsite"]
  node_reports["Reports<br/>microsite"]
  node_trade["Trade<br/>microsite"]
  node_community["Community forecasting<br/>microsite"]
  node_pipeline["Data pipeline<br/>microsite"]
  node_comparison["Comparison<br/>microsite"]
  node_engage["Engage<br/>microsite"]
  node_realitystream["Realitystream<br/>microsite"]
  node_chat["Chat<br/>microsite"]
  node_codechat["Codechat<br/>microsite"]
  node_cloud["Cloud<br/>product site"]
  node_desktop["Desktop<br/>product site"]
  node_auth["Better auth<br/>product site"]
  node_streamlit["Streamlit<br/>integration site"]
  node_example["Example site<br/>sample site"]
end

subgraph group_config["Config & ops"]
  node_sitescfg["Site config<br/>catalog yaml<br/>[sites.yaml]"]
  node_siteconfig["Site config<br/>config yaml<br/>[siteconfig.yaml]"]
  node_github["Sync workflow<br/>automation<br/>[vector_db_sync.yml]"]
end

subgraph group_external["External sources"]
  node_submodules["Submodules<br/>external boundary<br/>[.gitmodules]"]
end

node_webroot -->|"serves"| node_landing
node_webroot -->|"shared shell"| node_localsite
node_webroot -->|"shared pattern"| node_home
node_webroot -->|"shared pattern"| node_grid
node_webroot -->|"shared pattern"| node_swiper
node_webroot -->|"shared pattern"| node_montage
node_webroot -->|"routes to"| node_team
node_webroot -->|"routes to"| node_projects
node_webroot -->|"routes to"| node_reports
node_webroot -->|"routes to"| node_trade
node_webroot -->|"routes to"| node_community
node_webroot -->|"routes to"| node_pipeline
node_webroot -->|"routes to"| node_comparison
node_webroot -->|"routes to"| node_engage
node_webroot -->|"routes to"| node_realitystream
node_webroot -->|"routes to"| node_chat
node_webroot -->|"routes to"| node_codechat
node_webroot -->|"routes to"| node_cloud
node_webroot -->|"routes to"| node_desktop
node_webroot -->|"routes to"| node_auth
node_webroot -->|"routes to"| node_streamlit
node_webroot -->|"routes to"| node_example
node_siteconfig -->|"catalogs"| node_sitescfg
node_sitescfg -->|"indexes"| node_team
node_sitescfg -->|"indexes"| node_projects
node_sitescfg -->|"indexes"| node_reports
node_sitescfg -->|"indexes"| node_cloud
node_github -.->|"syncs"| node_submodules
node_submodules -.->|"supplies"| node_localsite
node_submodules -.->|"supplies"| node_projects
node_example -->|"references"| node_landing

click node_landing "https://github.com/modelearth/webroot/blob/main/index.html"
click node_localsite "https://github.com/modelearth/webroot/tree/main/localsite"
click node_home "https://github.com/modelearth/webroot/tree/main/home"
click node_grid "https://github.com/modelearth/webroot/tree/main/grid"
click node_swiper "https://github.com/modelearth/webroot/tree/main/swiper"
click node_montage "https://github.com/modelearth/webroot/tree/main/montage"
click node_team "https://github.com/modelearth/webroot/tree/main/team"
click node_projects "https://github.com/modelearth/webroot/tree/main/projects"
click node_reports "https://github.com/modelearth/webroot/tree/main/reports"
click node_trade "https://github.com/modelearth/webroot/tree/main/trade"
click node_community "https://github.com/modelearth/webroot/tree/main/community-forecasting"
click node_pipeline "https://github.com/modelearth/webroot/tree/main/data-pipeline"
click node_comparison "https://github.com/modelearth/webroot/tree/main/comparison"
click node_engage "https://github.com/modelearth/webroot/tree/main/engage"
click node_realitystream "https://github.com/modelearth/webroot/tree/main/realitystream"
click node_chat "https://github.com/modelearth/webroot/tree/main/chat"
click node_codechat "https://github.com/modelearth/webroot/tree/main/codechat"
click node_cloud "https://github.com/modelearth/webroot/tree/main/cloud"
click node_desktop "https://github.com/modelearth/webroot/tree/main/desktop"
click node_auth "https://github.com/modelearth/webroot/tree/main/better-auth"
click node_streamlit "https://github.com/modelearth/webroot/tree/main/streamlit"
click node_sitescfg "https://github.com/modelearth/webroot/blob/main/sites.yaml"
click node_siteconfig "https://github.com/modelearth/webroot/blob/main/siteconfig.yaml"
click node_github "https://github.com/modelearth/webroot/blob/main/.github/workflows/vector_db_sync.yml"
click node_submodules "https://github.com/modelearth/webroot/blob/main/.gitmodules"
click node_example "https://github.com/modelearth/webroot/tree/main/example"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webroot,node_landing toneBlue
class node_localsite,node_home,node_grid,node_swiper,node_montage toneAmber
class node_team,node_projects,node_reports,node_trade,node_community,node_pipeline,node_comparison,node_engage,node_realitystream,node_chat,node_codechat,node_cloud,node_desktop,node_auth,node_streamlit,node_example toneMint
class node_sitescfg,node_siteconfig,node_github toneRose
class node_submodules toneIndigo
```

## Components

### Core surface

Primary static hosting entrypoints and the main landing page.

- **Static webroot**: hosting root · Repository served directly as a static site tree.
- [Landing page](https://github.com/modelearth/webroot/blob/main/index.html): entry html · Top-level home page for the webroot. · `index.html`

### Shared UI

Reusable site shell and layout patterns used across sections.

- [Local site](https://github.com/modelearth/webroot/tree/main/localsite): shared shell · Common site framework used across sections. · `localsite`
- [Home](https://github.com/modelearth/webroot/tree/main/home): layout pattern · Reusable home-page structure or content pattern. · `home`
- [Grid](https://github.com/modelearth/webroot/tree/main/grid): layout pattern · Shared grid-based layout or interaction pattern. · `grid`
- [Swiper](https://github.com/modelearth/webroot/tree/main/swiper): interaction pattern · Shared carousel or swipe interaction assets. · `swiper`
- [Montage](https://github.com/modelearth/webroot/tree/main/montage): layout pattern · Shared montage or collage presentation assets. · `montage`

### Content sites

Major directory-driven microsites and subject areas.

- [Team](https://github.com/modelearth/webroot/tree/main/team): microsite · Team-focused content section. · `team`
- [Projects](https://github.com/modelearth/webroot/tree/main/projects): microsite · Project directory and landing content. · `projects`
- [Reports](https://github.com/modelearth/webroot/tree/main/reports): microsite · Report publishing section. · `reports`
- [Trade](https://github.com/modelearth/webroot/tree/main/trade): microsite · Trade-related content area. · `trade`
- [Community forecasting](https://github.com/modelearth/webroot/tree/main/community-forecasting): microsite · Community forecasting section. · `community-forecasting`
- [Data pipeline](https://github.com/modelearth/webroot/tree/main/data-pipeline): microsite · Data pipeline or process-oriented section. · `data-pipeline`
- [Comparison](https://github.com/modelearth/webroot/tree/main/comparison): microsite · Comparative content or benchmarking area. · `comparison`
- [Engage](https://github.com/modelearth/webroot/tree/main/engage): microsite · Engagement or outreach section. · `engage`
- [Realitystream](https://github.com/modelearth/webroot/tree/main/realitystream): microsite · Realitystream product or media section. · `realitystream`
- [Chat](https://github.com/modelearth/webroot/tree/main/chat): microsite · Chat-oriented section. · `chat`
- [Codechat](https://github.com/modelearth/webroot/tree/main/codechat): microsite · Codechat section for code-centric conversations or demos. · `codechat`
- [Cloud](https://github.com/modelearth/webroot/tree/main/cloud): product site · Cloud-oriented documentation or landing area. · `cloud`
- [Desktop](https://github.com/modelearth/webroot/tree/main/desktop): product site · Desktop-oriented documentation or landing area. · `desktop`
- [Better auth](https://github.com/modelearth/webroot/tree/main/better-auth): product site · Authentication-related product or demo section. · `better-auth`
- [Streamlit](https://github.com/modelearth/webroot/tree/main/streamlit): integration site · Streamlit-related section or demo surface. · `streamlit`
- [Example site](https://github.com/modelearth/webroot/tree/main/example): sample site · Self-contained sample web section with its own README and page. · `example`

### Config & ops

Repository-level configuration and lightweight automation.

- [Site config](https://github.com/modelearth/webroot/blob/main/sites.yaml): catalog yaml · Primary site catalog and grouping configuration. · `sites.yaml`
- [Site config](https://github.com/modelearth/webroot/blob/main/siteconfig.yaml): config yaml · Repository-wide site configuration boundary. · `siteconfig.yaml`
- [Sync workflow](https://github.com/modelearth/webroot/blob/main/.github/workflows/vector_db_sync.yml): automation · GitHub Action that runs external sync automation. · `.github/workflows/vector_db_sync.yml`

### External sources

Content boundaries managed outside the main repository tree.

- [Submodules](https://github.com/modelearth/webroot/blob/main/.gitmodules): external boundary · Repository content pulled from other repos or shared modules. · `.gitmodules`

## Connections

- Static webroot → Landing page: serves · The repo is exposed directly as a static site.
- Static webroot → Local site: shared shell · Common shell and framework assets support many sections.
- Static webroot → Home: shared pattern · Reusable home-page structure is available across pages.
- Static webroot → Grid: shared pattern · Grid layout assets are reused across sections.
- Static webroot → Swiper: shared pattern · Swipe/carousel behavior is shared.
- Static webroot → Montage: shared pattern · Montage presentation assets are reused.
- Static webroot → Team: routes to · Directory-backed section root.
- Static webroot → Projects: routes to · Directory-backed section root.
- Static webroot → Reports: routes to · Directory-backed section root.
- Static webroot → Trade: routes to · Directory-backed section root.
- Static webroot → Community forecasting: routes to · Directory-backed section root.
- Static webroot → Data pipeline: routes to · Directory-backed section root.
- Static webroot → Comparison: routes to · Directory-backed section root.
- Static webroot → Engage: routes to · Directory-backed section root.
- Static webroot → Realitystream: routes to · Directory-backed section root.
- Static webroot → Chat: routes to · Directory-backed section root.
- Static webroot → Codechat: routes to · Directory-backed section root.
- Static webroot → Cloud: routes to · Product or documentation microsite.
- Static webroot → Desktop: routes to · Product or documentation microsite.
- Static webroot → Better auth: routes to · Product or documentation microsite.
- Static webroot → Streamlit: routes to · Product or integration microsite.
- Static webroot → Example site: routes to · Standalone sample site within the webroot.
- Site config → Site config: catalogs · Configuration files define site sections and grouping.
- Site config → Team: indexes · Catalog may enumerate available sections.
- Site config → Projects: indexes · Catalog may enumerate available sections.
- Site config → Reports: indexes · Catalog may enumerate available sections.
- Site config → Cloud: indexes · Catalog may enumerate available sections.
- Sync workflow → Submodules: syncs · Automation appears to update external synced content.
- Submodules → Local site: supplies · Some shared content may be sourced from external repositories.
- Submodules → Projects: supplies · Some sections may be managed as submodule-backed boundaries.
- Example site → Landing page: references · Sample site demonstrates the static webroot pattern.
