RadarTopicsBuildersWeeklyReads
Open Source Radar
datopian/

portaljs

GitHubWebsite

PortalJS is an open-source AI-native framework for building data portals. It scaffolds three surfaces (Home, Catalog, Showcase) and supports pluggable backends like CKAN/OpenMetadata, with CLI and Claude Code integration.

2.3kstars
333forks
73issues
MITlicense
2011since
Star historydaily snapshots by VibeCrowd

Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).

Alternatives & relatedmatched by topic overlap
Reviewgenerated from repository data · Aug 5, 2026

What it is

PortalJS is an AI-native framework for building data portals. It describes the portal you want; an agent helps you choose an architecture, scaffolds it, and loads datasets. It provides three surfaces—Home, Catalog (/search), and Showcase (/@<namespace>/<slug>)—and uses a DataProvider contract to read data from various backends.

How it works

The system uses agentic skills to advise on architecture and then generate plain, editable Next.js code with no lock-in. It supports multiple backends (static files, CKAN, OpenMetadata, GitHub, frictionless data, and more) via a pluggable DataProvider layer. It ships Claude Code skills to turn briefs into portals and to scaffold datasets and backends. Data loading can push large files to Cloudflare R2 via Git LFS.

Getting started

  • Quickstart: create a portal by one command and run locally:
npm create portaljs@latest my-portal
cd my-portal
npm run dev      # → http://localhost:3000
  • Install Claude Code skills (for AI-assisted scaffolding):
curl -fsSL https://raw.githubusercontent.com/datopian/portaljs/main/scripts/install-portaljs-skills.sh | bash
  • To scaffold a portal manually:
npm create portaljs@latest my-portal
  • Bare template option:
npx tiged datopian/portaljs/examples/portaljs-catalog my-portal
cd my-portal && npm install && npm run dev      # → http://localhost:3000

Recent releases

Latest releases include create-portaljs@0.6.0 (2026-06-18) with minor changes, followed by 0.5.0 (2026-06-15), 0.4.0 (2026-06-15), 0.3.0 (2026-06-14), and 0.2.0 (2026-06-14).

Traction

GitHub stars: 2337. Forks: 333. Open issues: 73. Last push: 2026-08-03.

Behind the repo

The project is maintained by Datopian with a modular structure including core, CKAN integration, OpenMetadata, and example portals. The repository layout includes .claude/commands for skills, examples portals, and packages such as core and ckan.

Caveats

License: MIT. Created: 2011-10-14. Last push: 2026-08-03. Language: TypeScript. The README mentions multiple backends and Cloudflare-based storage (R2) as default; open-source licensing and integration details are provided in the docs and ROADMAP.

Agent skills inside · 14
All skills →
arcgis-to-portaljsMigrate 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.Databasesportaljs-add-datasetAdd 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.Data & Analyticsportaljs-add-dcatMake 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.Data & Analyticsportaljs-new-portalScaffold 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.Data & Analyticsportaljs-add-geoAuto-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.Data & Analyticsportaljs-add-chartAdd 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.Data & Analytics
SharePost on XLinkedIn
All trending reposRevenue-verified startups →