/peer-pad

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

Primary LanguageJavaScriptMIT LicenseMIT

PeerPad logo

PeerPad 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, Technology

🔓 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

Lead Maintainer

Jim Pick

Install

With the following installed:

  • git
  • node >= 8
  • npm >= 6

Clone the repo and install the dependencies from npm.

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

Usage

For local development with hot code reloading

npm start

Then open http://localhost:3000 in your browser.

Build

To build into the build dir, run:

npm run build

Testing

To run the unit tests:

npm test

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

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.

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:

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.

DEBUG=true npm run test:e2e

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

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

To run the e2e load tests:

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 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!
  • 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 for details on the latest development flow.

Want to hack on PeerPad?

License

MIT