Open source · AI-native

Build a data portal
by describing it.

The AI-native framework for data portals. Tell your AI agent what you want — it scaffolds the site, loads your data, and wires a backend. You own plain, editable code.

ChatChat · no setup
Open the chat
TerminalCLI · for devs
$ npm create portaljs@latestCopy
Read the docs

One framework, two ways to drive it. Same AI skills, same plain editable code — from your terminal, or in chat.

Chat>_ Terminal
PortalJS StudioAI builder
What do you want to build?
Describe your portal in plain language — PortalJS builds it for you.
Describe your portal…
PortalJS Studio

Trusted by data leaders worldwide

Leading governments, enterprises, and research institutions trust PortalJS

OECD logoBank of England logoTransport Data Commons logoFIND DXConnect logoScottish & Southern Electricity Networks logoIDPO (University of Sydney) logoSigma2 logoUAE Ministry of Energy and Infrastructure logoMarcus Institute logoManufacturing Technology Centre logoODNI logoHounslow logoCity of Ann Arbor logoWinnipeg Metropolitan Region logo
How it works

Describe → Scaffold → Publish

Three steps from an idea to a live portal — skills do the assembly, and the output is plain, editable code.

01

Describe

Tell your AI assistant the portal you want — the audience, the data, the look. Plain language, no boilerplate.

/portaljs-new-portal "Auckland Council open data portal"
02

Scaffold

Skills assemble a real Next.js project: pages, tables, charts, and maps wired to your data. The output is plain, editable code.

/portaljs-add-dataset ./data/air-quality.csv
03

Publish

Ship a fast static site or connect a live backend. Own every file — there is no magic runtime to lock you in.

/portaljs-deploy → auckland.portaljs.app
Why PortalJS

Built to fit your stack, not replace it.

A decoupled framework: keep the catalog, metadata system and frontend tooling you already run.

Open source, MIT

No lock-in, no license traps. Fork it, ship it, own it.

AI-native

Skills do the assembly. Your assistant scaffolds pages, loads data, and wires up views.

Any backend

CKAN, DKAN, OpenMetadata, Microsoft Purview, DataHub, GitHub, Frictionless, or your own.

Bring your own stack

Adapt PortalJS to your frontend tooling and design system. Plain, editable code throughout.

Community-driven

An active Discord and open discussions. Built in the open, used in production.

Integrations

Decoupled. Works with what you already have.

Point PortalJS at your catalog or metadata system. Swap backends without rewriting your frontend.

CKANDKANOpenMetadataMicrosoft PurviewDataHubGitHubFrictionless+ custom backends
Scale & deploy

From a KB of CSV to multi-GB datasets.

The same portal grows with your data — big files on object storage, queried in the browser, shipped with one command.

Scale your data

Large files version with Git LFS and stream to Cloudflare R2 via Giftless. Your repo stays light while datasets scale to gigabytes.

Scaling data

Query in the browser

Convert to Parquet and the showcase reads it with DuckDB-Wasm — SQL over big files, fetching only the bytes a query touches. No server.

In-browser query

Deploy to Arc

Run /portaljs-deploy to publish a static export to PortalJS Arc — Datopian-managed hosting on Cloudflare — live at a <slug>.arc.portaljs.com URL.

PortalJS Arc
Extensibility

Skills are first-class.

Every capability is a documented skill — composable, inspectable, and yours to extend. Author your own and the assistant picks them up.

Built-in skills

/portaljs-new-portal·Scaffold a portal from a brief
/portaljs-add-dataset·Add a CSV, TSV, JSON, or GeoJSON dataset
/portaljs-add-chart·Drop in a line, bar, area, pie, or scatter chart
/portaljs-add-map·Render GeoJSON on an interactive map
/portaljs-deploy·One-shot deploy to Vercel or static hosting

Write your own

Skills are plain, documented, and version-controlled. Add a capability once — reuse it across every portal you build.

Build your data portal today.

Open source, AI-native, no lock-in. Describe it once — ship plain, editable code you fully own.