{"repo":"datopian/portaljs","free":true,"listed":false,"github":"https://github.com/datopian/portaljs","clone":"git clone https://github.com/datopian/portaljs.git","description":"🌀 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).","language":"TypeScript","stars":2341,"topics":["data-portal","ckan","nextjs","open-data-portal","data-mesh","datahub","open-data","openmetadata","dataverse","dkan"],"license":"MIT","category":"mcp-servers","readme_excerpt":"PortalJS The AI-native framework for building data portals. Describe the portal you want — your agent helps you choose an architecture, scaffolds it, and loads your data. Docs · Discussions · Report a bug --- Quickstart Create a portal — one command, nothing to install beyond Node 22+: You get the three surfaces — Home, a Catalog ( /search ), and a dataset Showcase ( /@ / ) — over sample data. Plain, editable Next.js, no lock-in. Add your own CSV/JSON to datasets.json and it renders automatically. Build it with your AI assistant — PortalJS ships Claude Code skills that do the assembly. Install them once (into /.claude/commands ): Then, in a Claude Code session from any directory: /portaljs-new-portal scaffolds the three surfaces; /portaljs-add-dataset (or /portaljs-add-resource ) loads data; /portaljs-connect-ckan points it at a CKAN backend; /portaljs-deploy ships it. (All skills + install →) Prefer the bare template — plain Next.js, no AI, no lock-in: You get Home, a Catalog ( /search ), and a dataset Showcase ( /@ / ) over sample data. Add your own CSV/JSON to datasets.json and it renders automatically. ⭐ If it's useful, a star helps others find it. Why PortalJS Building a data portal has always meant more than a website. You have to decide where the data lives, how it's versioned, how people search it, how it's served, and how it's governed — and then wire a frontend on top. Teams either over-build on a heavy data warehouse they don't need, or under-build on a pile of scr","default_branch":null,"files":null,"tree":[],"storefront":"/r/datopian","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/datopian/portaljs/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}