Registry website for ACT components published at ghcr.io/actpkg/*.
At build time, scripts/crawl-components.sh pulls each known component from OCI, extracts metadata from the act:component custom section (no instantiation) and tool list via act info --tools, and writes one JSON file per component to src/data/components/. Astro reads those JSONs at build time and renders static HTML.
Deployment:
- CI/CD:
.github/workflows/deploy.ymlruns on push tomainand daily at 04:00 UTC. Fresh crawl → rebuild → GitHub Pages. - Manual refresh:
gh workflow run deployorACT=act bash scripts/crawl-components.sh && npm run build.
npm install
ACT=/path/to/act bash scripts/crawl-components.sh # populate src/data/
npm run dev # preview at http://localhost:4321Requires the act CLI on PATH (npm i -g @actcore/act or a local build).
- Publish to
ghcr.io/actpkg/<name>:<version>(OCI artifact with the.wasm). - Append the name to the
COMPONENTSarray inscripts/crawl-components.sh. - Next daily build picks it up, or push a PR to accelerate.
When the list grows large, crawl-components.sh will be replaced with an API-driven query against the GitHub Packages listing for the actpkg org.
- Static site, dynamic data. SSG (Astro) with a crawl step. No runtime server, no database. Rebuild when the component set changes.
- No component execution on the server. All surfaced metadata — name, version, description, capabilities, skill — comes from WASM custom sections readable without instantiation. Tool list requires instantiation but runs in the build sandbox, not at request time.
- Single source of truth. Component metadata lives in the
.wasm, not in this repo. This repo only caches it.