portaljs
✅ Recently maintained🌀 AI-native framework for building data portals. Scaffold a full portal from a brief and load datasets in minutes with agentic skills — any backend (CKAN, GitHub, Frictionless).
TypeScript · MIT · Last push 2026-10-28
Official repository & installation ↗🧩 Skills in this repository
Uses are declared in source documents. Stars and maintenance belong to the parent repository. Check host, dependency and licensing requirements.
arcgis-to-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.
skills/arcgis-to-portaljs/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18/19, Node 18+). Requires native GDAL, tippecanoe, duckdb, and jq on the operator's machine (macOS or Linux/WSL). Runs from any project via the plugin, a personal install, or a portaljs
Skill source & instructions ↗
License source ↗portaljs-add-chart
Add a chart (line, bar, area, pie, or scatter) to a dataset's showcase in a PortalJS portal. Installs recharts, writes a reusable Chart component, and renders it in the showcase Views section. Use when visualizing a dataset already registered in datasets.json.
skills/portaljs-add-chart/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-add-dataset
Add a dataset (CSV, TSV, JSON, or GeoJSON) to an existing PortalJS portal. Appends an entry to datasets.json so the catalog and showcase render it automatically; routes the data by source (local file vs remote URL) — R2 via Git LFS by default, remote URLs by passthrough. Use when registering a new dataset in a scaffolded portal.
skills/portaljs-add-dataset/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-add-dcat
Make a PortalJS portal harvestable by national/EU/US open-data portals — emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML at build, with autodiscovery and per-profile conformance checking. Use when a portal needs to be harvested by data.europa.eu, data.gov, or a national open-data catalog.
skills/portaljs-add-dcat/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-add-geo
Auto-ingest a geospatial file (GeoJSON, Shapefile, GeoPackage, KML/KMZ, FlatGeobuf, CSV-with-geometry) into a PortalJS portal on the user's own machine, with no server. Normalizes CRS to EPSG:4326, derives a PMTiles render tier and a GeoParquet query tier, pushes all three artifacts to Cloudflare R2 via Git LFS, and appends one dual-tier datasets.json entry the showcase auto-renders. Use when the source is a vector geo format that needs a map or spatial-query view.
skills/portaljs-add-geo/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18/19, Node 18+). Requires native GDAL, tippecanoe, and duckdb on the user's machine (macOS or Linux/WSL). Runs from any project via the plugin, a personal ~/.claude/commands install, or
Skill source & instructions ↗
License source ↗portaljs-add-map
Render a GeoJSON dataset on an interactive Leaflet map in the Views section of a dataset's showcase. Installs react-leaflet and a Map component, then renders the map for the chosen dataset. Use when a dataset's data is geographic and a map view is needed alongside the showcase's default metadata and download.
skills/portaljs-add-map/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-add-resource
Add another file (resource) to an EXISTING dataset in a PortalJS portal — a data dictionary, methodology, or an additional data file. Turns a single-file dataset into a multi-resource one; the showcase renders a section per resource. Use when a dataset needs a second file, such as a data dictionary, methodology doc, or an additional period's data.
skills/portaljs-add-resource/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-architect
Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from stated needs, then hand off to the build skills. The advisory entry point. Use when starting a new data-portal project and the underlying architecture has not yet been decided.
skills/portaljs-architect/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-check-data-quality
Audit a local or remote tabular file (CSV/TSV) for common data quality issues — schema, nulls, types, duplicates. Read-only. Use when a dataset needs a quality check before publishing, or a showcase renders wrong (blank cells, garbled numbers, an unsortable date column) and the cause needs isolating.
skills/portaljs-check-data-quality/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-connect-ckan
Wire a scaffolded PortalJS portal to a CKAN backend over its API. Generates a tiny server-side fetch client (no runtime dependency) and feeds the /search catalog and /@namespace/slug showcases from CKAN instead of datasets.json. Use when connecting an existing portal to a live CKAN instance instead of a static manifest.
skills/portaljs-connect-ckan/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-define-schema
Define a dataset's metadata profile — infer a Frictionless Table Schema from its data, add Data Package metadata (license, sources, keywords), and write it into datasets.json so the showcase renders a typed field table. Extend or customize via the L0-L3 profile ladder. Use when a registered dataset needs field types, constraints, or catalog metadata before publishing.
skills/portaljs-define-schema/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-deploy
Deploy a PortalJS portal to PortalJS Arc — Datopian-managed static hosting on Cloudflare. Builds a static export, uploads it, and returns a live SLUG.arc.portaljs.com URL. One command, one target. Use when a portal is ready to publish or redeploy to a live URL.
skills/portaljs-deploy/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-migrate
Migrate (harvest) datasets between open-data platforms. Reads CKAN, a DCAT-US /data.json catalog (DKAN, ArcGIS Hub, data.gov), a DCAT / DCAT-AP RDF feed (JSON-LD, Turtle, or RDF/XML), Socrata, OpenDataSoft, or an ArcGIS FeatureServer, and writes them to a static PortalJS catalog or pushes them into a CKAN instance over its API. Use when moving datasets from an external open-data platform into a PortalJS portal, or bridging one CKAN instance to another.
skills/portaljs-migrate/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗portaljs-new-portal
Scaffold a new PortalJS data portal from a brief. Copies the canonical template from examples/portaljs-catalog and substitutes project tokens. Use when starting a brand-new data portal project from scratch.
skills/portaljs-new-portal/SKILL.md · MIT · 2026-11-02Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
Skill source & instructions ↗
License source ↗GitValue · Value evidence
Unscored · Evidence coverage 0%
Provisional rubric; documentation and runtime testing are separate. Missing evidence does not imply low value.
Star history
View historical data
| Date | Stars |
|---|---|
| 2026-10-05 | 2,355 |
| 2026-10-06 | 2,355 |
| 2026-10-07 | 2,356 |
| 2026-10-08 | 2,356 |
| 2026-10-09 | 2,356 |
| 2026-10-10 | 2,357 |
| 2026-10-11 | 2,358 |
| 2026-10-12 | 2,360 |
| 2026-10-13 | 2,360 |
| 2026-10-14 | 2,360 |
| 2026-10-15 | 2,360 |
| 2026-10-16 | 2,361 |
| 2026-10-17 | 2,361 |
| 2026-10-18 | 2,366 |
| 2026-10-19 | 2,366 |
| 2026-10-20 | 2,366 |
| 2026-10-21 | 2,367 |
| 2026-10-22 | 2,368 |
| 2026-10-23 | 2,368 |
| 2026-10-24 | 2,368 |
| 2026-10-25 | 2,368 |
| 2026-10-26 | 2,368 |
| 2026-10-27 | 2,368 |
| 2026-10-28 | 2,368 |
| 2026-10-29 | 2,368 |
| 2026-10-30 | 2,368 |
| 2026-10-31 | 2,370 |
| 2026-11-01 | 2,370 |
| 2026-11-02 | 2,369 |
| 2026-11-03 | 2,369 |
Get the project
git clone https://github.com/datopian/portaljs.gitCloning downloads the source. For dependencies and installation, follow the project README.
Related projects & alternative candidates
Related domains do not imply feature parity. Review official documentation and licenses.