portaljs logo

portaljs

🌀 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).

npmdiscord
Website GitHub

What is it?

What it is

PortalJS is an open‑source, AI‑native framework that lets teams build, develop, and ship data portals using plain, editable Next.js code. It combines agentic skills that advise on architecture and scaffold the three core surfaces—Home, Catalog, and Showcase—while decoupling the user interface from the data source via a DataProvider contract.

Why it exists

Building a data portal traditionally requires juggling data storage, compute, cataloging, governance, and front‑end wiring, often leading to over‑built warehouses or fragile scripts. PortalJS was created to provide a single, opinionated yet open path that recommends the right stack, scaffolds it automatically, and keeps the portal code portable and lock‑in free.

Who should use it

Data teams, developers, and organizations seeking to build open-source data portals with AI-assisted architecture and scaffolding.

Who should avoid it

Teams without AI integration needs, those preferring closed-source solutions, or lacking technical expertise in Next.js/TypeScript.

How it works

A quick walkthrough in plain English

How portaljs works in 4 steps

Step 1 of 4

Something triggers the flow

A schedule, webhook, or manual click tells portaljs to start.

Features

AI-native framework for building data portals
Agentic skills that advise on architecture and scaffold Next.js code
Three surfaces: Home, Catalog, Showcase
Pluggable DataProvider contract for any backend (static, CKAN, OpenMetadata, GitHub, etc.)
Open lakehouse default: Git + Cloudflare R2 + Parquet + DuckDB
Support for large files via Git LFS and Cloudflare R2
Built-in DCAT feed generation for interoperability
Automatic dataset showcase rendering from CSV/JSON/GeoJSON
CLI and Claude Code skill integration for rapid prototyping
Open-source MIT license with no lock-in
Cloudflare-first but S3-compatible storage
TypeScript-based codebase
Extensible skill set for adding charts, maps, geospatial data, schemas, migration, deployment

Advantages

  • Rapid portal creation with AI assistance
  • Decoupled architecture allows backend swapping without UI changes
  • Open-source and license-friendly
  • Default to scalable, cost-effective open lakehouse
  • Built-in data quality checks and schema inference
  • Automatic DCAT feed support for harvesting
  • Easy deployment to Cloudflare Pages via PortalJS Arc
  • Extensible skill set for custom features
  • Supports large datasets via Git LFS and R2
  • Transparent, editable Next.js codebase
  • Community-driven with Discord and discussions

Disadvantages

  • Requires Node 22+ and TypeScript knowledge
  • Relies on Cloudflare ecosystem (though S3-compatible)
  • Learning curve for agentic skill usage
  • Limited to Next.js front-end framework
  • Potential performance limits for very large datasets without optimization
  • Requires manual configuration for advanced backends
  • Community and ecosystem still growing, may lack mature plugins
  • Dependency on Claude Code skills for AI features
  • May need additional setup for non-Cloudflare storage options

Installation

native

npm create portaljs@latest my-portal
cd my-portal
npm run dev      # → http://localhost:3000

FAQ

How do I get started with PortalJS?

You can quickly create a new portal by running `npm create portaljs@latest my-portal` in your terminal. This scaffolds a Next.js application with Home, Catalog, and Showcase surfaces over sample data.

What are 'agentic skills' and how do I use them?

Agentic skills are Claude Code slash commands that help you architect, scaffold, and manage your portal. After installing them via the provided curl script, you can use commands like `/portaljs-architect` to get infrastructure recommendations or `/portaljs-add-dataset` to automatically register new data.

Is there vendor lock-in with PortalJS?

No. PortalJS is designed to be open and portable. The agentic skills generate plain, editable Next.js code, and the architecture supports various backends (CKAN, Socrata, GitHub, etc.) through a pluggable DataProvider contract.

What is the recommended data architecture?

The framework recommends a modern 'open lakehouse' approach using Git, Cloudflare R2 (S3-compatible object storage), and Parquet files queried via DuckDB, though it also supports traditional warehouses and CKAN backends.

Can I add geospatial data to my portal?

Yes. Using the `/portaljs-add-geo` skill, you can auto-ingest files like GeoJSON, Shapefiles, or KML. The skill normalizes the CRS to EPSG:4326 and generates both PMTiles for interactive mapping and GeoParquet for querying.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for portaljs

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
portaljs | MushyBook