{"id":22300102,"url":"https://github.com/rohitedathil/syncserv","last_synced_at":"2025-10-13T22:31:50.787Z","repository":{"id":138305775,"uuid":"562144005","full_name":"RohitEdathil/syncserv","owner":"RohitEdathil","description":"A simple web app to sync text across multiple devices. Made with Go and Svelte","archived":false,"fork":false,"pushed_at":"2022-11-15T18:17:44.000Z","size":162,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T19:38:05.202Z","etag":null,"topics":["backend","gin","go","golang","real-time","teaching-tool","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RohitEdathil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-11-05T12:54:18.000Z","updated_at":"2025-03-15T19:19:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"d1b94679-090b-43b4-9b57-997995314e7f","html_url":"https://github.com/RohitEdathil/syncserv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RohitEdathil/syncserv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Fsyncserv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Fsyncserv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Fsyncserv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Fsyncserv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RohitEdathil","download_url":"https://codeload.github.com/RohitEdathil/syncserv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Fsyncserv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017161,"owners_count":26085983,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["backend","gin","go","golang","real-time","teaching-tool","websocket"],"created_at":"2024-12-03T18:09:08.997Z","updated_at":"2025-10-13T22:31:50.782Z","avatar_url":"https://github.com/RohitEdathil.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TypeSync\n\nA simple web app to sync text across multiple devices.\n\nThe idea is that there is a broadcaster who types in code and listeners who see the code in real time. Sort of like a text-only Google Meet. Backend is written in **Go** and frontend is written in **Svelte**. This could be particularly useful for teaching and learning.\n\nThis repo contains the backend code.\n\nFind the frontend code [here](https://github.com/RohitEdathil/syncfront).\n\n## Features\n\n- Broadcast code from a broadcaster to multiple listeners\n- Broadcaster can see how many listeners are connected\n- Listeners can let the broadcaster know if they are able to follow along\n\n## [Demo](https://typesync.vercel.app/) 🪄\n\n## Usage\n\n## Broadcaster\n\n### 1. Create a TypeSync room\n\n\u003cimg src=\"img/1.jpg\" width=\"500px\"\u003e\n\n### 2. Share the room link with your listeners\n\n\u003cimg src=\"img/3.jpg\" width=\"500px\"\u003e\n\n### 3. Start typing, press \"Send\" (Or Ctrl + Enter) to send the code\n\n\u003cimg src=\"img/4.jpg\" width=\"500px\"\u003e\n\n### 4. See how many listeners are connected and how many are following along\n\n\u003cimg src=\"img/5.jpg\" width=\"500px\"\u003e\n\n## Listener\n\n### 1. Go to the room link shared by the broadcaster (Or enter the room code)\n\n\u003cimg src=\"img/2.jpg\" width=\"500px\"\u003e\n\n### 2. Let the broadcaster know if you are able to follow along (Press to toggle)\n\n\u003cimg src=\"img/6.jpg\" width=\"500px\"\u003e\n\n## Notes\n\nIf there are no listeners, broadcaster closes the tab, and is not seen for 30 minutes, the room will be deleted within a another 30 minutes.\n\n## Frameworks and Libraries\n\n- [Gin](https://github.com/gin-gonic/gin) : Web framework\n- [WebSockets](https://github.com/gorilla/websocket) : For real-time communication\n\n## Why?\n\n- I thought this would be a fun project to work on\n- I wanted to learn Go\n- I wanted to get better at backend development\n- I wanted to learn Svelte (Not really, but was a good excuse to learn it)\n- I wanted to showcase my skills in improving a prduct (i.e. More updates to come)\n\n## Contributing\n\nPlease feel free to open an issue or a PR if you have any suggestions or improvements.\nAlso, if you find any bugs, please open an issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohitedathil%2Fsyncserv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frohitedathil%2Fsyncserv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohitedathil%2Fsyncserv/lists"}