{"id":13452057,"url":"https://github.com/peer-base/peer-pad","last_synced_at":"2025-04-04T17:09:03.354Z","repository":{"id":54945292,"uuid":"97300570","full_name":"peer-base/peer-pad","owner":"peer-base","description":"📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS.","archived":false,"fork":false,"pushed_at":"2019-09-15T23:00:17.000Z","size":20162,"stargazers_count":678,"open_issues_count":95,"forks_count":57,"subscribers_count":26,"default_branch":"master","last_synced_at":"2024-10-29T14:19:02.741Z","etag":null,"topics":["capabilities","crdt","ipfs","p2p","peer-star"],"latest_commit_sha":null,"homepage":"https://peerpad.net","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peer-base.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null}},"created_at":"2017-07-15T07:46:46.000Z","updated_at":"2024-07-25T15:11:23.000Z","dependencies_parsed_at":"2022-08-14T07:20:11.512Z","dependency_job_id":null,"html_url":"https://github.com/peer-base/peer-pad","commit_stats":null,"previous_names":["pgte/peerpad","ipfs-shipyard/peer-pad"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer-base%2Fpeer-pad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer-base%2Fpeer-pad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer-base%2Fpeer-pad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer-base%2Fpeer-pad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peer-base","download_url":"https://codeload.github.com/peer-base/peer-pad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217189,"owners_count":20903009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capabilities","crdt","ipfs","p2p","peer-star"],"created_at":"2024-07-31T07:01:11.495Z","updated_at":"2025-04-04T17:09:03.331Z","avatar_url":"https://github.com/peer-base.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","ipfs"],"sub_categories":[],"readme":"\u003ch1 align=\"center\" title=\"PeerPad\"\u003e\n  \u003ca href=\"https://peerpad.net/\"\u003e\u003cimg width=\"555\" alt=\"PeerPad logo\" src=\"https://user-images.githubusercontent.com/152863/31819860-8a3d5080-b596-11e7-8e69-55c27f95d95d.png\"\u003e\u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://protocol.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"http://peerpad.net/\"\u003e\u003cimg src=\"https://img.shields.io/badge/project-PeerPad-blue.svg?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"http://webchat.freenode.net/?channels=%23ipfs\"\u003e\u003cimg src=\"https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/ipfs-shipyard/peer-pad\" title=\"Travis build status\"\u003e\n    \u003cimg src=\"https://travis-ci.org/ipfs-shipyard/peer-pad.svg?branch=master\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n[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.\n\n**Test it live at https://peerpad.net or https://ipfs.io/ipns/peerpad.net**\n\nDocs: [Security](docs/SECURITY.md), [Technology](docs/TECHNOLOGY.md)\n\n## 🔓 PeerPad is experimental software. It hasn't been audited, and as such shouldn't be used to create or share sensitive information.\n\n## Table of Contents\n\n- [Install](#install)\n- [Usage](#usage)\n- [Build](#build)\n- [Testing](#testing)\n- [Deploy](#deploy)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Lead Maintainer\n\n[Jim Pick](https://github.com/jimpick)\n\n## Install\n\nWith the following installed:\n- git\n- node \u003e= 8\n- npm \u003e= 6\n\nClone the repo and install the dependencies from npm.\n\n```bash\ngit clone https://github.com/ipfs-shipyard/peer-pad.git\ncd peer-pad\nnpm install\n```\n\n## Usage\n\nFor local *development* with hot code reloading\n\n```bash\nnpm start\n```\n\nThen open [http://localhost:3000](http://localhost:3000) in your browser.\n\n## Build\n\nTo build into the `build` dir, run:\n\n```bash\nnpm run build\n```\n\n## Testing\n\nTo run the **unit** tests:\n\n```bash\nnpm test\n```\n\nTo run the **end-to-end** smoke test that runs PeerPad in multiple, headless Chrome instances run:\n\n```bash\nnpm run build\nnpm run test:e2e:ci\n```\n\nThe 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).\n\nIf 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:\n\n```bash\nnpm run test:e2e\n```\n\nBy 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.\n\n```bash\nDEBUG=true npm run test:e2e\n```\n\nTo run the e2e test against a deployed version, just pass the url as an env var\n\n```bash\nURL=https://peerpad.net npm run test:e2e\n```\n\nTo run the **e2e load tests**:\n\n```bash\nnpm run test:e2e:load\n```\n\n## Deploy\n\nYou can self-host your own PeerPad. For that, run `npm run build` and deploy the `build` directory to a web-server\n\nSee [docs/DEPLOY.md](docs/DEPLOY.md) more info on how PeerPad is deployed to https://peerpad.net\n\nSome dependencies (like webcrypto) require that you're serving under HTTPS — unless it's `localhost`...\n\n## Contribute\n\nThe PeerPad is a work in progress. As such, there's a few things you can do right now to help out:\n\n* **[Check out the existing issues](https://github.com/ipfs-shipyard/peer-pad/issues)**!\n* **Perform code reviews**. More eyes will help a) speed the project along b) ensure quality and c) reduce possible future bugs.\n* **Add tests**. There can never be enough tests.\n\nRead the PeerPad [contributing.md](docs/CONTRIBUTING.md) for details on the latest development flow.\n\n### Want to hack on PeerPad?\n\n[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](docs/CONTRIBUTING.md)\n\n## License\n\n[MIT](https://github.com/ipfs-shipyard/peer-pad/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeer-base%2Fpeer-pad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeer-base%2Fpeer-pad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeer-base%2Fpeer-pad/lists"}