Two weeks ago we wrote that PortalJS is now AI-native. Today is launch day: the skills are live, installable anywhere, and rolling out across the agent skill directories.
One command
npx skills add datopian/portaljs
That installs the PortalJS skills into your AI coding agent. Claude Code is the primary target today, and the skills follow the open SKILL.md standard. Prefer to start from the template instead?
npm create portaljs@latest my-portal
Both paths give you the same thing: a plain Next.js portal you own, with no lock-in and any backend.
What shipped
Since the AI-native announcement the skill set has grown to 12, covering the unglamorous parts a real portal needs:
-
/portaljs-new-portalscaffolds a portal from a plain English brief -
/portaljs-add-datasetloads CSV, TSV, JSON, and GeoJSON and builds dataset pages -
/portaljs-add-dcatgenerates standards compliant metadata: DCAT v2 and v3, DCAT-US, DCAT-AP with country profiles, GeoDCAT-AP, and Croissant for ML datasets -
/portaljs-migratepulls an existing catalog out of CKAN, Socrata, OpenDataSoft, or ArcGIS -
/portaljs-connect-ckankeeps your backend and replaces only the frontend -
/portaljs-deploybuilds a static export and publishes it with a live URL
Charts, maps, schema inference, and data quality checks round out the set.
Example: a city portal in 30 minutes
We rebuilt the City of Kyle, TX open data portal in about 30 minutes: 62 datasets across 6 departments, budget charts, and department groupings, all from one prompt. Four of us built four versions from the same brief and voted for the best one. The full writeup is here on Dev.to, and the winner is live at city-of-kyle-open-data.arc.portaljs.com.
Where this is going
The bigger idea: your agent builds the portal, and your users' agents will query it. DCAT and Croissant support is the first half of that story. An MCP server in every published portal is on the roadmap.
PortalJS is open source (MIT), built by Datopian and the community. If this is useful, a star on GitHub helps others find it, and the Discord is where the conversation happens. Try it on your city's data and show us what you build.
Top comments (0)