{"id":20417523,"url":"https://github.com/tm9657/y-phoenix","last_synced_at":"2026-04-19T01:31:27.222Z","repository":{"id":199955729,"uuid":"703212632","full_name":"TM9657/y-phoenix","owner":"TM9657","description":"The Phoenix Channels Provider is meant to be used as a Yjs Provider for [Generic Socket Rooms](https://github.com/TM9657/generic-socket-rooms). It enables End-to-End encryption, realtime communication between multiple users.","archived":false,"fork":false,"pushed_at":"2023-10-15T08:53:11.000Z","size":136,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-04-15T02:56:35.484Z","etag":null,"topics":["phoenix","phoenix-channels","yjs","yjs-provider"],"latest_commit_sha":null,"homepage":"https://tm9657.de","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TM9657.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-10-10T20:09:09.000Z","updated_at":"2024-08-20T08:06:33.600Z","dependencies_parsed_at":"2023-10-14T18:38:44.428Z","dependency_job_id":"ae019f75-d346-4155-b201-a96f98ef718b","html_url":"https://github.com/TM9657/y-phoenix","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"b947e2c2c7ba364fa11956544f7f164fc9f46e6b"},"previous_names":["tm9657/y-phoenix"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TM9657%2Fy-phoenix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TM9657%2Fy-phoenix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TM9657%2Fy-phoenix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TM9657%2Fy-phoenix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TM9657","download_url":"https://codeload.github.com/TM9657/y-phoenix/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241960837,"owners_count":20049342,"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":["phoenix","phoenix-channels","yjs","yjs-provider"],"created_at":"2024-11-15T06:26:27.042Z","updated_at":"2026-04-19T01:31:27.014Z","avatar_url":"https://github.com/TM9657.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://tm9657.de?ref=github\"\u003e\u003cp align=\"center\"\u003e\u003cimg width=250 src=\"https://cdn.tm9657.de/tm9657/images/generic_socket_rooms.png\" /\u003e\u003c/p\u003e\u003c/a\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://tm9657.de\"\u003e\u003cimg src=\"https://img.shields.io/badge/website-more_from_us-C0222C.svg?style=flat\u0026logo=PWA\"\u003e \u003c/a\u003e\n\t  \u003ca href=\"https://discord.ca9.io\"\u003e\u003cimg src=\"https://img.shields.io/discord/673169081704120334?label=discord\u0026style=flat\u0026color=5a66f6\u0026logo=Discord\"\u003e\u003c/a\u003e\n\t  \u003ca href=\"https://twitter.com/tm9657\"\u003e\u003cimg src=\"https://img.shields.io/badge/twitter-follow_us-1d9bf0.svg?style=flat\u0026logo=Twitter\"\u003e\u003c/a\u003e\n\t  \u003ca href=\"https://www.linkedin.com/company/tm9657/\"\u003e\u003cimg src=\"https://img.shields.io/badge/linkedin-connect-0a66c2.svg?style=flat\u0026logo=Linkedin\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://merch.ca9.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/merch-support_us-red.svg?style=flat\u0026logo=Spreadshirt\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n# Y-Phoenix Provider\n\u003e Phoenix Channels Provider for Yjs\n\nThe Phoenix Channels Provider is meant to be used as a Yjs Provider for [Generic Socket Rooms](https://github.com/TM9657/generic-socket-rooms). It enables End-to-End encryption, realtime communication between multiple users.\n\n## Quick Start\n\n### Install dependencies\n\n```sh\nnpm i @tm9657/y-phoenix\n```\n\n### Start a y-phoenix server\n\nPlease use: [Generic Socket Rooms](https://github.com/TM9657/generic-socket-rooms)\n\n### Client Code:\n\n```js\nimport * as Y from 'yjs'\nimport { PhoenixProvider } from '@tm9657/y-phoenix'\n\nconst doc = new Y.Doc()\nconst wsProvider = new PhoenixProvider(\n  socket, // Socket from Generic Socket Rooms\n  props.room, // Room, please make sure this one is not guessable. Otherwise DDOS attacks on this room are possible, if you do not further prevent them, e.g by checking permission on the server before sending JWT\n  props.token, // JWT Token, signed for the room, please have a look at Generic Socket Rooms for more information\n  props.password, // Password for End to End encryption. E.g generated on the client and shared by QR Code or as part of the URL\n  ydoc // Yjs Document\n)\n```\n\n\n---\n**Provided by TM9657 GmbH with ❤️**\n### Check out some of our products:\n- [Kwirk.io](https://kwirk.io?ref=github) (Text Editor with AI integration, privacy focus and offline support)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftm9657%2Fy-phoenix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftm9657%2Fy-phoenix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftm9657%2Fy-phoenix/lists"}