Skip to main content

Fanboat

@bixu/fanboatv2026.09.23.5· 13d agoMODELS
01README

Skim over the surface of your swamp and enjoy the view.

Fanboat maps a swamp repo as one graph and draws it as an interactive D3 page: workflows, models, vaults, types, extension modules and packages. It flags anything that looks broken or suspicious, for example a workflow that calls a method its type does not define.

swamp extension pull @bixu/fanboat
swamp model create @bixu/fanboat fanboat
swamp model method run fanboat map

Example: Generate a Map in CI

This GitHub Actions job maps the repo on every push to main and publishes the page to GitHub Pages. It assumes the runner already has the swamp CLI on PATH. The job maps the checkout from a scratch swamp repo, so it never writes to the datastore of the repo it maps.

name: Repo map
on:
  push:
    branches: [main]
jobs:
  map:
    runs-on: ubuntu-latest
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
    steps:
      - uses: actions/checkout@v4
      - name: Map the repo
        working-directory: ${{ runner.temp }}
        run: |
          set -euo pipefail
          mkdir fanboat site && cd fanboat
          swamp repo init --json > /dev/null
          swamp extension pull @bixu/fanboat --json > /dev/null
          swamp model create @bixu/fanboat fanboat --json > /dev/null
          swamp model method run fanboat map \
            --input path="$GITHUB_WORKSPACE" --json > /dev/null
          repo=$(basename "$GITHUB_WORKSPACE" | tr '[:upper:]' '[:lower:]' | tr -c 'a-z0-9\n' '-')
          swamp data get fanboat "$repo-page" --json | jq -r .content > ../site/index.html
      - uses: actions/upload-pages-artifact@v3
        with:
          path: ${{ runner.temp }}/site
      - uses: actions/deploy-pages@v4

To fail a pull request when the map finds something broken, add this line after the map step:

test "$(swamp data get fanboat "$repo-graph" --json | jq .content.stats.broken)" -eq 0

The README lists every lane, the problem rules and the limits.

02Models1
@bixu/fanboatv2026.09.23.1fanboat.ts
fn map(path?: string)
Map a swamp repo's extensions, models, workflows, vaults and datastore into one graph, and render it as an interactive D3 page.
ArgumentTypeDescription
path?stringRepo root to map. Defaults to the swamp repo this model runs in.

Resources

graph(30d)— Nodes and edges for one repo: workflows, models, vaults, types, modules, packages

Files

html(text/html)— Self-contained D3 page that draws the graph
03Previous Versions4
2026.09.23.4
2026.09.23.3
2026.09.23.2
2026.09.23.1
04Stats
A
100 / 100
Downloads
20
Archive size
4.4 MB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License declared1/1earned
  • Verified public repository2/2earned
05Platforms
06Labels