This repo contains a set of tools and libraries to help develop _Prtcl compatible web-applications. It does so by implementing a full blown micro-frontend architecture, with pluggable and composable modules to build whole SPAs from simple slices of functionality.
Important: these packages are under heavy development, with alpha release. Expect breaking changes.
To learn about _Prtcl and how to use the packages in this repository, visit our specification and our documentation site (it's WIP, so contribution and feedback are much appreciated).
Clone the project, and run:
npm install
npm run bootstrap
To build all packages, run:
npm run build
To run the tests from all packages, run:
npm test
To run the demo from demo/simple-editor
:
- Run the ethereum provider in the background.
- Run the http provider in the background.
- Run
npm run dev
in the root folder of this repository.
And go to http://localhost:8080. Refer to simple-editor for more advanced instructions.
Orchestrates micro modules in one single web application, following the micro-frontend pattern. Manages the dependencies between modules.
Base modules that make up the Cortex framework, its building blocks and controllers.
Implements services, apollo directives and interfaces that allow your application to consume data from different (de)centralized technologies.
Implements a basic Cortex rendering engine to reinterpret the data together with Cortex patterns.
Provides modules to integrate ApolloClient
in your _Prtcl applications.
Provides modules to integrate redux
in your _Prtcl applications.
These packages provide convenience classes and wrappers around different (de)centralized web technologies so that micro modules can consume them easily.
These services include standard funcionality like a retry mechanism, or a ready()
function to wait for them to be ready.
_Prtcl provider wrappers around @holochain/hc-web-client.
_Prtcl provider wrappers around ipfs-http-client.
_Prtcl provider wrappers around web3.
_Prtcl provider wrappers around the native fetch
API.
These are application modules compatible with micro-orchestrator
that define patterns, lenses and services that can work together to create, interpret and share different kind of objects.
Implements version control for any kind of content addressable object, with different perspectives (branches in git), and proposals to update those perspectives.
Implements documents and folders that can be updated with evees and rendered with cortex.
Implements wikis that can be updated with evees and rendered with cortex.