DEV.co
MCP Servers · datopian

portaljs

PortalJS is an open-source framework for building data portals using AI-assisted scaffolding. It provides three core pages (Home, Catalog, Showcase) that connect to pluggable data backends like CKAN, GitHub, or static files, allowing teams to launch a working portal in minutes.

Source: GitHub — github.com/datopian/portaljs
2.3k
GitHub stars
333
Forks
TypeScript
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorydatopian/portaljs
Ownerdatopian
Primary languageTypeScript
LicenseMIT — OSI-approved
Stars2.3k
Forks333
Open issues81
Latest release[email protected] (2026-06-18)
Last updated2026-07-08
Sourcehttps://github.com/datopian/portaljs

What portaljs is

TypeScript/Next.js framework with agentic Claude Code skills for portal generation. Abstracts data access through a DataProvider interface supporting static files, Git LFS, CKAN, OpenMetadata, and DuckDB-queryable Parquet on object storage. Scaffolds plain, editable code with no vendor lock-in.

Quickstart

Get the portaljs source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/datopian/portaljs.gitcd portaljs# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Quick public data portal launch

Organizations with datasets (CSV/JSON/GeoJSON) needing a searchable, catalogued portal in days rather than months. AI-guided architecture advisory removes decision paralysis.

Open data compliance and governance

Government or institutional data teams publishing DCAT-AP or similar metadata standards. Supports both lightweight (Git + R2) and traditional (CKAN) backends without code rewrites.

Multi-format data integration

Teams combining data from multiple sources (static files, APIs, warehouses, data lakes). Single DataProvider abstraction lets you swap backends as infrastructure evolves.

Implementation considerations

  • Node 22+ required; scaffolding uses npm create and tiged for templating. Ensure Node version parity across team and CI/CD.
  • AI skills (Claude Code) streamline setup but require Anthropic API access and Claude Code environment; not a pure offline workflow.
  • Data backends (CKAN, object storage, DuckDB) introduce operational complexity. Cloudflare R2 is the recommended default, but S3-compatible alternatives are supported.
  • The three-surface model (Home, Catalog, Showcase) is opinionated. Significant deviations from this layout require custom Next.js work.
  • Security review needed for your chosen storage/compute stack; PortalJS itself is a UI framework and does not handle auth/encryption beyond what Next.js provides.

When to avoid it — and what to weigh

  • Real-time, low-latency transactional systems — PortalJS is designed for data discovery and serving static/batch datasets. Not suitable for high-frequency updates or sub-second query requirements.
  • Proprietary, complex data governance without CKAN/OpenMetadata — If your data governance model is bespoke and incompatible with supported backends, custom DataProvider implementation is required. Evaluate effort before committing.
  • Minimal Node/TypeScript expertise in your team — While AI skills reduce hands-on coding, customization, debugging, and maintenance still require JavaScript/React/Next.js competency. Pure no-code it is not.
  • Offline-first or client-side-only data portals — PortalJS assumes a server/backend; it does not support offline-first PWA architectures or browser-only rendering of large datasets.

License & commercial use

MIT License — permissive OSI-approved license. Allows commercial use, modification, and distribution without restriction, provided the license and copyright notice are included.

MIT is a permissive license. Commercial use is permitted. However, evaluate your data backend's license (e.g., CKAN if chosen) and any third-party dependencies separately. No support SLA is provided by the open-source project; Datopian offers commercial services separately.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

PortalJS is a Next.js-based UI framework. Security posture depends on: (1) your data backend (CKAN, object storage permissions, DuckDB query isolation), (2) Next.js version and dependencies (no audit data provided), (3) authentication/authorization layer (not built-in; user responsibility). Public data portals are lower-risk, but evaluate sensitive dataset exposure and API rate limiting separately. No security policy or CVE history provided in data.

Alternatives to consider

CKAN

Full-featured open-source data portal platform with built-in auth, publishing workflow, and plugin ecosystem. Heavier than PortalJS; better for large teams managing complex governance, but steeper operational overhead.

OpenDataSoft

SaaS data portal with strong out-of-the-box features (search, APIs, visualizations). Removes infrastructure burden but introduces vendor lock-in and recurring costs. Suitable if managed operations are prioritized.

Socrata

Enterprise SaaS platform widely used in government. Full-stack solution (hosting, auth, sharing). Higher cost and vendor lock-in; PortalJS is lighter and open-source alternative for teams wanting control.

Software development agency

Build on portaljs with DEV.co software developers

Start with `npm create portaljs@latest` or use Claude Code skills for guided setup. Own your code, choose your backend, scale on your terms.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

portaljs FAQ

Can I use PortalJS without Claude Code AI skills?
Yes. You can scaffold the template directly with `npm create portaljs@latest` or `npx tiged` and edit manually. AI skills are convenience, not required.
What if I want to switch data backends later (e.g., static files to CKAN)?
The DataProvider abstraction is designed for this. Swap the provider config; the three surfaces and pages remain unchanged. Implementation requires backend support or custom DataProvider code.
Does PortalJS handle authentication or access control?
No. Authentication and authorization are your responsibility. Layer them via Next.js middleware, a reverse proxy, or your backend (e.g., CKAN API keys). PortalJS assumes public or pre-authenticated data.
What is the cost of using PortalJS?
PortalJS itself is free (MIT license). Costs come from your infrastructure: Cloudflare R2 storage, Workers runtime, or your chosen data backend (CKAN hosting, DuckDB compute). No SaaS fee.

Software developers & web developers for hire

Need help beyond evaluating portaljs? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and mcp servers integrations — and maintain them long-term.

Launch Your Data Portal Today

Start with `npm create portaljs@latest` or use Claude Code skills for guided setup. Own your code, choose your backend, scale on your terms.