{"id":19469500,"url":"https://github.com/hackerkid/peerdium","last_synced_at":"2025-04-25T11:33:19.606Z","repository":{"id":71211655,"uuid":"132348995","full_name":"hackerkid/peerdium","owner":"hackerkid","description":" :heart: Decentralized P2P Publishing Using Browser Cache \u0026 Torrents","archived":false,"fork":false,"pushed_at":"2020-10-15T17:57:49.000Z","size":2098,"stargazers_count":207,"open_issues_count":2,"forks_count":19,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-03T21:11:15.199Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://peerdium.vishnuks.com","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/hackerkid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-06T14:59:53.000Z","updated_at":"2025-03-04T12:49:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"705450d6-d4aa-4d8f-8c10-00a817e1a0c7","html_url":"https://github.com/hackerkid/peerdium","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Fpeerdium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Fpeerdium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Fpeerdium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerkid%2Fpeerdium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackerkid","download_url":"https://codeload.github.com/hackerkid/peerdium/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250808458,"owners_count":21490668,"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":[],"created_at":"2024-11-10T18:51:35.662Z","updated_at":"2025-04-25T11:33:19.570Z","avatar_url":"https://github.com/hackerkid.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003cimg src=\"static/images/peerdium_with_name.png\"\u003e\n\n\u003ch2  align=\"center\"\u003e\n  🔥🔥\n  Check out my latest project - \u003ca href=\"http://bit.ly/diff-peerdium\"\u003ediff.blog\u003c/a\u003e\n\u003c/h2\u003e\n\u003cbr\u003e\n\n\nPeerdium is a peer to peer publishing platform. The posts are stored as torrents\nin the browser. Only the people with link to the post can see the content of the post. Peerdium is built using [WebTorrent](https://github.com/webtorrent/webtorrent).\n\n\nPeerdium was [featured](https://news.ycombinator.com/item?id=17060272) in the front page of Hacker News. There was a lot of interesting discussions in the comment section and you should defintely check it out.\n\n\n## How it works?\n\nWhen the publish button is clicked the browser encrypts the post using a random 15 digit key, creates a torrent and starts seeding the torrent.  Each post has a URL in the format `https://peerdium.com/#post_id`. The first 40 characters of the post_id is the magnet URI of the torrent and the rest 15 is the key used for encrypting the content of the torrent. When someone open a post for the first time the magnet URI encoded in the link is used for fetching the torrent from other seeders and the key is used for decrypting the torrent.\n\nClick on the heart button If you like a post and want to to access it later. The post would be saved to your browser and you can see the content of the post even if no one else is seeding.\n\n## How to contribute\nSetting up peerdium development environment is quite easy. There is no backend involved. All you need to do is start a static file server that can serve the index.html and the static assets in /static folder.\n\nHere is how to do this in Linux. Make sure that you have python3 and git installed.\n\n```bash\ngit clone https://github.com/hackerkid/peerdium\ncd peerdium\npython3 -m http.server\n```\n\nYou are all set. Now head over to [localhost:8000](http://localhost:8000) in browser and start experimenting.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackerkid%2Fpeerdium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackerkid%2Fpeerdium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackerkid%2Fpeerdium/lists"}