Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/peer-base/peer-pad

📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS.
https://github.com/peer-base/peer-pad

capabilities crdt ipfs p2p peer-star

Last synced: about 2 months ago
JSON representation

📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS.

Awesome Lists containing this project

README

        


PeerPad logo








[PeerPad](https://peerpad.net/) is a decentralized editor that allows concurrent writing of text. Besides making live changes to a given document, it allows read-only nodes to follow the changes in real-time. It also allows you to publish a self-contained snapshot of the document to IPFS.

**Test it live at https://peerpad.net or https://ipfs.io/ipns/peerpad.net**

Docs: [Security](docs/SECURITY.md), [Technology](docs/TECHNOLOGY.md)

## 🔓 PeerPad is experimental software. It hasn't been audited, and as such shouldn't be used to create or share sensitive information.

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Build](#build)
- [Testing](#testing)
- [Deploy](#deploy)
- [Contribute](#contribute)
- [License](#license)

## Lead Maintainer

[Jim Pick](https://github.com/jimpick)

## Install

With the following installed:
- git
- node >= 8
- npm >= 6

Clone the repo and install the dependencies from npm.

```bash
git clone https://github.com/ipfs-shipyard/peer-pad.git
cd peer-pad
npm install
```

## Usage

For local *development* with hot code reloading

```bash
npm start
```

Then open [http://localhost:3000](http://localhost:3000) in your browser.

## Build

To build into the `build` dir, run:

```bash
npm run build
```

## Testing

To run the **unit** tests:

```bash
npm test
```

To run the **end-to-end** smoke test that runs PeerPad in multiple, headless Chrome instances run:

```bash
npm run build
npm run test:e2e:ci
```

The e2e tests expect the site to already be running, so the `test:e2e:ci` will fire up an http-server before running the tests in [test/e2e](tests/e2e).

If you're running the dev server on the default port (via `npm start`) then you can run the e2e tests without starting a server with:

```bash
npm run test:e2e
```

By default the Chrome instances run headless, so you won't see the robots clicking around in the browser. **To debug** the tests and see what's going pass `DEBUG=true` as an env var.

```bash
DEBUG=true npm run test:e2e
```

To run the e2e test against a deployed version, just pass the url as an env var

```bash
URL=https://peerpad.net npm run test:e2e
```

To run the **e2e load tests**:

```bash
npm run test:e2e:load
```

## Deploy

You can self-host your own PeerPad. For that, run `npm run build` and deploy the `build` directory to a web-server

See [docs/DEPLOY.md](docs/DEPLOY.md) more info on how PeerPad is deployed to https://peerpad.net

Some dependencies (like webcrypto) require that you're serving under HTTPS — unless it's `localhost`...

## Contribute

The PeerPad is a work in progress. As such, there's a few things you can do right now to help out:

* **[Check out the existing issues](https://github.com/ipfs-shipyard/peer-pad/issues)**!
* **Perform code reviews**. More eyes will help a) speed the project along b) ensure quality and c) reduce possible future bugs.
* **Add tests**. There can never be enough tests.

Read the PeerPad [contributing.md](docs/CONTRIBUTING.md) for details on the latest development flow.

### Want to hack on PeerPad?

[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](docs/CONTRIBUTING.md)

## License

[MIT](https://github.com/ipfs-shipyard/peer-pad/blob/master/LICENSE)