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: 7 months ago 
        JSON representation
    
📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS.
- Host: GitHub
 - URL: https://github.com/peer-base/peer-pad
 - Owner: peer-base
 - License: mit
 - Created: 2017-07-15T07:46:46.000Z (over 8 years ago)
 - Default Branch: master
 - Last Pushed: 2019-09-15T23:00:17.000Z (about 6 years ago)
 - Last Synced: 2024-10-29T14:19:02.741Z (about 1 year ago)
 - Topics: capabilities, crdt, ipfs, p2p, peer-star
 - Language: JavaScript
 - Homepage: https://peerpad.net
 - Size: 19.2 MB
 - Stars: 678
 - Watchers: 26
 - Forks: 57
 - Open Issues: 95
 - 
            Metadata Files:
            
- Readme: README.md
 - Contributing: docs/CONTRIBUTING.md
 - License: LICENSE
 - Security: docs/SECURITY.md
 
 
Awesome Lists containing this project
- awesome - peer-pad - 📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS. (JavaScript)
 - stars - peer-base/peer-pad - 📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS. (JavaScript)
 - awesome-starred - peer-base/peer-pad - 📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS. (ipfs)
 
README
          
  
[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?
[](docs/CONTRIBUTING.md)
## License
[MIT](https://github.com/ipfs-shipyard/peer-pad/blob/master/LICENSE)