datopian/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).
它解决了什么
PortalJS 提供一个 AI 原生框架来构建数据门户。它消除选择数据基础设施(存储、计算与目录)以及手动将前端与数据对接的复杂度,让团队能够从需求说明快速转化为可运行的门户,并且不被专有平台锁定。
它如何工作
PortalJS 使用一套为 Claude Code 设计的代理技能框架,引导用户完成架构设计与构建过程。它由三个主要组件组成:
- 代理技能:一组斜线命令(例如
/portaljs-architect、/portaljs-new-portal),提供最佳基础设施栈建议并生成纯粹的 Next.js 代码。 - 三大界面:标准化的布局,包括首页(Home page)、目录(Catalog)用于发现,以及展示页(Showcase)用于浏览单个数据集。
- DataProvider 合约:可插拔的后端系统,使门户能够在静态文件、CKAN、OpenMetadata 或“开放湖仓”(Git + R2 + Parquet + DuckDB)之间切换,而无需更改前端代码。
适用人群
需要构建专业、可扩展数据门户以共享和探索数据集的数据团队和组织,尤其是偏好开源工具和无服务器架构(如 Cloudflare R2/Workers)的用户。
亮点
- AI 驱动的架构:内置顾问技能,根据用户的具体数据需求推荐存储和计算栈。
- 无锁定:生成纯粹、可编辑的 Next.js 代码,全部归用户所有。
- 默认开放湖仓:推广使用 Parquet 与 DuckDB 的现代无服务器栈,取代传统的大型数据仓库。
- 可插拔后端:通过单一 DataProvider 合约支持多种来源,包括 CKAN、GitHub 和 Frictionless Data Packages。
- 丰富工具链:提供专门的技能用于添加数据集、创建图表/地图、定义模式,并可从 ArcGIS Hub 或 Socrata 迁移数据。