/portal.js

πŸŒ€ The Javacript framework for creating a portal to your data. Perfect for a single dataset or a full catalog.

Primary LanguageJavaScriptMIT LicenseMIT

πŸŒ€ Portal.JS
The javascript framework for
data portals

πŸŒ€ portal is a framework for rapidly building rich data portal frontends using a modern frontend approach. portal can be used to present a single dataset or build a full-scale data catalog/portal.

portal is built in Javascript and React on top of the popular Next.js framework. portal assumes a "decoupled" approach where the frontend is a separate service from the backend and interacts with backend(s) via an API. It can be used with any backend and has out of the box support for CKAN.

Features

  • πŸ—ΊοΈ Unified sites: present data and content in one seamless site, pulling datasets from a DMS (e.g. CKAN) and content from a CMS (e.g. wordpress) with a common internal API.
  • πŸ‘©β€πŸ’» Developer friendly: built with familiar frontend tech Javascript, React etc
  • πŸ”‹ Batteries included: Full set of portal components out of the box e.g. catalog search, dataset showcase, blog etc.
  • 🎨 Easy to theme and customize: installable themes, use standard CSS and React+CSS tooling. Add new routes quickly.
  • 🧱 Extensible: quickly extend and develop/import your own React components
  • πŸ“ Well documented: full set of documentation plus the documentation of NextJS and Apollo.

For developers

  • πŸ— Build with modern, familiar frontend tech such as Javascript and React.
  • πŸš€ NextJS framework: so everything in NextJS for free React, SSR, static site generation, huge number of examples and integrations etc.
    • SSR => unlimited number of pages, SEO etc whilst still using React.
    • Static Site Generation (SSG) (good for small sites) => ultra-simple deployment, great performance and lighthouse scores etc
  • πŸ“‹ Typescript support

Getting Started

Setup

Install a recent version of Node. You'll need Node 10.13 or later.

Install yarn.

Try out the demo portal

Create a demo portal (for a single dataset):

# note: we have to use `yarn` until #529 is resolved ...
yarn create next-app -e https://github.com/datopian/portal.js/tree/main/examples/dataset-frictionless
# choose a name for your portal when prompted e.g. your-portal or go with default my-app

# then run it
cd your-portal
yarn dev

You should see the demo portal running.

You can try it out with other Frictionless datasets.

Check out more of the examples

Check out more of the examples on how to create a portal for your dataset or datasets in the examples directory e.g.


Appendix: What happened to Recline?

Portal.JS used to be Recline(JS). If you are looking for the old Recline codebase it still exists: see the recline branch. If you want context for the rename see this issue.