Tooluck logoTooluck
SKILL.md

arcgis-to-portaljs

Agent skill fromdatopian/portaljs

Migrate a whole ArcGIS Hub site into a PortalJS Arc portal end-to-end. Harvests the Hub /data.json (DCAT-US) inventory, exports every FeatureService layer through the ArcGIS REST query API with resultOffset paging, converts each to the serverless dual tier (PMTiles render + GeoParquet query) with tabular items to Parquet, pushes everything to Cloudflare R2 via Git LFS, appends dual-tier datasets.json entries, and writes a source-vs-derived parity report. Use to move a City or sector ArcGIS Hub open-data portal onto PortalJS with no server-side compute.

How to install arcgis-to-portaljs

install arcgis-to-portaljs
# install the portaljs pack with the skills CLI
npx skills add datopian/portaljs

# or add only this skill to Claude Code: copy the folder

skills/arcgis-to-portaljs/

# into

~/.claude/skills/arcgis-to-portaljs/ (all projects)

.claude/skills/arcgis-to-portaljs/ (one project)

skills/arcgis-to-portaljs/SKILL.md

MITFull file
1# ArcGIS Hub → PortalJS
2
3## Overview
4
5Migrate an entire **ArcGIS Hub** open-data site into a **PortalJS Arc** portal in one pass.
6Every Hub site is machine-readable — a DCAT-US catalog at `/data.json`, with every dataset
7backed by an ArcGIS REST FeatureService — so migration is a **harvest → export → convert →
8publish → verify** pipeline that runs almost fully automated on the operator's machine, no
9server-side compute. The tooling is the reusable `arcgis-to-portaljs` migrator: input is one
10Hub URL, output is a ready-to-deploy PortalJS catalog plus a parity report.
11
12The skill is an orchestrator: it reuses the DCAT-US harvest from `portaljs-migrate`, the
13`ogr2ogr`/`tippecanoe`/`duckdb` dual-tier conversion from `portaljs-add-geo`, and the bulk
14Git-LFS → R2 push from `portaljs-migrate`. Its novel parts are the FeatureService REST export
15loop (paged features, not just a link) and the source-vs-derived parity report.
16
17## Prerequisites
18
19- A scaffolded PortalJS portal whose template ships `components/MapPreview.tsx` and
20 `components/GeoQuery.tsx` (PR #1647 or later). Run `portaljs-new-portal` first if none.
21- Native CLIs: **GDAL** (`ogr2ogr`, `ogrinfo`), **tippecanoe**, **duckdb** (with `spatial`),
22 and **jq**. macOS: `brew install gdal tippecanoe duckdb jq`; Debian/Ubuntu:
23 `apt-get install gdal-bin duckdb jq` plus tippecanoe (apt or build from source); Windows via
24 WSL. The skill hard-stops with the install hint if any is missing.
25…

Excerpt shown under the repository's MIT license.

More skills in portaljs

Keep exploring

Similar skill repositories

thedotmack /

claude-mem
116k

Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More

CCCXGHGM+135 skills

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates