{"id":19409202,"url":"https://github.com/strawdynamics/pdportal","last_synced_at":"2025-04-24T10:30:57.538Z","repository":{"id":206472318,"uuid":"715976374","full_name":"strawdynamics/pdportal","owner":"strawdynamics","description":"A magic portal for Playdate that enables online multiplayer using Web Serial and WebRTC.","archived":false,"fork":false,"pushed_at":"2024-04-06T02:13:57.000Z","size":1020,"stargazers_count":25,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-06T04:35:48.556Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pdportal.net","language":"Lua","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/strawdynamics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-11-08T08:10:38.000Z","updated_at":"2024-04-06T02:37:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"1e37c45d-ffec-49f4-a9ee-bc7787daf2db","html_url":"https://github.com/strawdynamics/pdportal","commit_stats":null,"previous_names":["strawdynamics/pdportal"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strawdynamics%2Fpdportal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strawdynamics%2Fpdportal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strawdynamics%2Fpdportal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strawdynamics%2Fpdportal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strawdynamics","download_url":"https://codeload.github.com/strawdynamics/pdportal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223948533,"owners_count":17230132,"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-10T12:10:23.280Z","updated_at":"2024-11-10T12:10:24.115Z","avatar_url":"https://github.com/strawdynamics.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pdportal\n\nA magic portal for [Playdate](https://play.date) that enables online multiplayer using Web Serial and WebRTC. This is the web interface (available for use with any Playdate game at https://pdportal.net). If you want to make a multiplayer game that uses pdportal, check out the [lua](./lua) subfolder.\n\nThis technique should now be compatible with Catalog games!\n\n```\n+------------+                             +------------+\n|            |                             |            |\n| Playdate 1 |                             | Playdate 2 |\n|            |                             |            |\n+------------+       WebRTC P2P conn       +------------+\n       ^            established with              ^\n       |                 PeerJS                   |\n    Serial                  |                  Serial\n       |                    v                     |\n       v                .-------.                 v\n+------------+       ,-'         '-.       +------------+\n| Computer 1 |      ;               :      | Computer 2 |\n| (Browser @ |\u003c----\u003e:   Internet    ;\u003c----\u003e| (Browser @ |\n| pdportal)  |       \\             /       | pdportal)  |\n+------------+        '-.       ,-'        +------------+\n                         `-----'\n```\n\n## ⚠️ DISCLAIMER\n\npdportal is not affiliated with or endorsed by [Panic](https://panic.com). Use it at your own risk. If you're having a problem with a game that uses pdportal, contact that game's author for support.\n\nDocs? Currently, the source code is the documentation. Limitations? Probably many. Check out the various README.md files for more details.\n\n## Thanks\n\npdportal uses [pd-usb](https://github.com/cranksters/pd-usb) and info from [playdate-reverse-engineering](https://github.com/cranksters/playdate-reverse-engineering) to communicate with the cheese. It's built with [Svelte](https://svelte.dev/) and [PeerJS](https://peerjs.com/).\n\nInspiration and help with the Lua bytecode parts in the original version came from [pd-camera](https://github.com/t0mg/pd-camera), and code from [Eric Lewis](https://gist.github.com/ericlewis/43d07016275308de11a5519466deea85).\n\n## Want to help?\n\n### Contributing\n\nThanks for your interest in contributing to pdportal! Before you get started:\n\n1. Read and agree to follow the [code of conduct (Contributor Covenant 2.1)](./CODE_OF_CONDUCT.md).\n2. Before you start work, check the [open issues](https://github.com/strawdynamics/pdportal/issues) to make sure there isn't an existing issue for the fix or feature you want to work on.\n3. If there's not already a relevant issue, [open a new one](https://github.com/strawdynamics/pdportal/issues/new). Your new issue should describe the fix or feature, why you think it's necessary, and how you want to approach the work (please use one of the issue templates).\n4. Project maintainers will review your proposal and work with you to figure out next steps!\n\n### Running locally\n\n```bash\nnpm i\n\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\n### Building for production\n\n```bash\nnpm run build\nnpm run preview\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrawdynamics%2Fpdportal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrawdynamics%2Fpdportal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrawdynamics%2Fpdportal/lists"}