{"id":43952922,"url":"https://github.com/stopsopa/laymansync","last_synced_at":"2026-04-28T10:01:00.609Z","repository":{"id":336779288,"uuid":"1150154255","full_name":"stopsopa/LaymanSync","owner":"stopsopa","description":"Simple to set up app to sync to an external drive (incrementally - only new or changed files) using a professional rclone internally.","archived":false,"fork":false,"pushed_at":"2026-04-27T18:55:55.000Z","size":3144,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T19:26:27.556Z","etag":null,"topics":["copying","rclone","rsync","synchronisation","synchronization","syncing"],"latest_commit_sha":null,"homepage":"https://stopsopa.github.io/LaymanSync/tldr.html","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/stopsopa.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-05T00:12:23.000Z","updated_at":"2026-04-27T18:47:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/stopsopa/LaymanSync","commit_stats":null,"previous_names":["stopsopa/laymansync"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/stopsopa/LaymanSync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2FLaymanSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2FLaymanSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2FLaymanSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2FLaymanSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stopsopa","download_url":"https://codeload.github.com/stopsopa/LaymanSync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2FLaymanSync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32375625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T09:24:15.638Z","status":"ssl_error","status_checked_at":"2026-04-28T09:24:15.071Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["copying","rclone","rsync","synchronisation","synchronization","syncing"],"created_at":"2026-02-07T04:04:11.162Z","updated_at":"2026-04-28T10:01:00.601Z","avatar_url":"https://github.com/stopsopa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LaymanSync\n\nA simple, user-friendly, and easy-to-install desktop UI for [rclone](https://rclone.org/).\n\n\u003e\n\u003e [!IMPORTANT]\n\u003e Rclone is a professional tool for synchronizing two directories differentially (only new or changed files), which significantly speeds up copying - especially when done many times periodically against the same directories.\n\n# TLDR\n\nJust go [here](https://stopsopa.github.io/LaymanSync/tldr.html)\n\n# Origin and decision chain\n\nThis tool was created after several friends asked me how to properly back up files to external drives. For non-power users, the simplest approach is to keep all files in a single directory and periodically sync it to an external drive.\n\nIn theory, rsync is the ideal solution, but expecting non-technical users to work in a terminal is unrealistic. I looked for GUI frontends for rsync, but found that existing options are either difficult to install, hard to use, or both.\n\nSo then I figured that it wouldn't take too much effort to build some simple UI on top of rsync to just help with just that one case -\u003e two directories sync.\n\nAlso along the way, I found that not all rsync implementations are equal, and when it comes to cross-OS compatibility, rclone seems to be the better choice in terms of consistency across different operating systems. I really only need a single use case: copying or syncing between two directories.\n\nSo instead of rsync which differ per each OS I've decided to use [rclone](https://rclone.org/) and wrap it with simplest possible UI.\n\n[ver1.webm](https://github.com/user-attachments/assets/49673824-ed40-4e17-891d-fe541fa8ff0c)\n\n# Development\n\nProject was built pretty much in about 2-3 evenings with some extra tunnig and debugging.\n\nFrom the beginning I didn't want to spend too much time with it but have it working on Mac and Windows. Hence the choice of using Electron.\n\nElectron is not necessarily the lightest stack available. The UI could use fewer resources if written in something closer to the metal. However, using Electron won’t impact the performance of the underlying rclone.\n\nThe application is meant to be launched, used, and then closed, so Electron’s overhead doesn’t really matter.\n\nFirst evening I've prepared bunch of functions in [electron/src/tools](electron/src/tools) with reasonable amount of testing and rest of development of UI was made with Claude 4.5 Sonnet (non-thinking) via [Antigravity](https://antigravity.google/) simply vibecoded with simple [PLAN.md](PLAN.md) as a guide with some tweaking with Gemini 3 Flash and manual testing after.\n\nOnce app was doing good enough job and was handling errors properly I don't see any reason to spend more time with it since it was meant from the very beginning to represent finite complexity and not to be over-engineered.\n\nSo here it is. I hope you find it useful.\n\n## Key Features\n\n- ✅ **Simple Drag \u0026 Drop** – Easily select source and destination directories.\n- ✅ **Bundled rclone** – No need to install `rclone` separately; it's bundled with the application. Just install the app and you are ready to go.\n- ✅ **Copy \u0026 Sync Modes** – Toggle between [rclone copy](https://rclone.org/commands/rclone_copy/) and [rclone sync](https://rclone.org/commands/rclone_sync/) (with clear warnings for destructive sync operations).\n- ✅ **Real-time Progress** – Track file transfers with progress bars, speeds, and ETA.\n- ✅ **Live Logs** – View the raw output from `rclone` for transparency and troubleshooting.\n- ✅ **Premium UI** – Clean and structured interface inspired by the AWS Console aesthetics.\n- ✅ **Cross-Platform** – Built with Electron for consistent performance on macOS and Windows.\n\n# EXTENDED VERSION\n\n\u003e [!CAUTION]\n\u003e There is [alternative extended (bulk) version](https://github.com/stopsopa/LaymanSync/tree/multiple#readme) of this app where we can work with synchronisation of multiple directories at once through config files\n\n## Installation\n\n\n\u003e [!TIP]\n\u003e There is helper page to assist with choosing right binary for your operating system and architecture: https://stopsopa.github.io/LaymanSync/main/download.html\n\u003e \n\n... or you can choose right version of binary manually from [Releases](https://github.com/stopsopa/LaymanSync/releases) page for your operating system [Choose binary](https://github.com/stopsopa/LaymanSync/wiki/Choose-binary)\n\n### Windows\n\nSelect file:\n\n- **LaymanSync-x.x.x-x64-setup.exe** for Windows with Intel or AMD processor\n- **LaymanSync-x.x.x-arm64-setup.exe** for Windows with ARM processor\n\nfrom: [Releases](https://github.com/stopsopa/LaymanSync/releases) page.\n\nThen follow [WINDOWS_SECURITY](WINDOWS_SECURITY.md) file for further instructions.\n\n### Mac\n\nSelect file:\n\n- **LaymanSync-x.x.x-x64.dmg** for older mac with Intel processor\n- **LaymanSync-x.x.x-arm64.dmg** for newer macs with ARM (M1, M2, M3 and so on...) processors\n\nfrom [Releases](https://github.com/stopsopa/LaymanSync/releases) page.\n\nThen follow [MACOS_SECURITY](MACOS_SECURITY.md) file for further instructions.\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Credits\n\n- Powered by [rclone](https://rclone.org/).\n- Built with [Electron](https://www.electronjs.org/), [React](https://react.dev/), and [Vite](https://vite.dev/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstopsopa%2Flaymansync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstopsopa%2Flaymansync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstopsopa%2Flaymansync/lists"}