# Portaljs Add Dataset

Add a dataset (CSV, TSV, JSON, or GeoJSON) to an existing PortalJS portal.

- Repository: https://github.com/datopian/portaljs (2370 stars)
- Category: Data and ML
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add datopian/portaljs --skill portaljs-add-dataset -g -a claude-code -y`
Codex: `npx skills add datopian/portaljs --skill portaljs-add-dataset -g -a codex -y`
Cursor: `npx skills add datopian/portaljs --skill portaljs-add-dataset -g -a cursor -y`
Gemini CLI: `npx skills add datopian/portaljs --skill portaljs-add-dataset -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add datopian/portaljs`

## Description

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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# PortalJS, Add Dataset

## Overview

Register a dataset in a PortalJS (`portaljs-catalog`) portal. The skill appends one entry to
`datasets.json`, the single source of truth for the catalog, and routes the underlying
bytes by **source first, then size**: a local file defaults to R2 via Git LFS, a remote URL
defaults to passthrough (no copy). No per-dataset page is created; the catalog at `/search`
lists the new entry and the dynamic showcase route `pages/[owner]/[slug].tsx` renders it
automatically at `/@<namespace>/<slug>`. Supported formats for the showcase preview: CSV,
TSV, JSON (array), and GeoJSON.

## Prerequisites

- A scaffolded PortalJS portal (see `portaljs-new-portal`) with `datasets.json`,
  `package.json`, and `pages/[owner]/[slug].tsx` present.
- The source data: a local file path or a publicly reachable URL.
- For the R2/Git LFS default route: `git` and `git-lfs` installed, and an Arc account token
  (or an OSS Giftless key) to mint a push-scoped LFS credential.
- Node 18+ and npm available in the portal directory.

## Instructions

The canonical, full step-by-step workflow is
[`.claude/commands/portaljs-add-dataset.md`](https://github.com/datopian/portaljs/blob/main/.claude/commands/portaljs-add-dataset.md), the single source of truth. Read and follow it when executing. Summary:

The rest: https://github.com/datopian/portaljs/blob/HEAD/skills/portaljs-add-dataset/SKILL.md
