DEV Community

πŸ§ πŸ’Ό Unvalidated Ideas
πŸ§ πŸ’Ό Unvalidated Ideas

Posted on • Originally published at

πŸ’‘ Hosted Syncthing (discovery, relay and backups)

Here's an Startup/SaaS idea to try out:

πŸ’Ύ Hosted Syncthing discovery, relay and backups

For technical users, Syncthing is the next coming of Dropbox. Syncthing has a booming community, active user base, runs on a bunch of devices, and people trust it with their data.

There used to be one big problem with Syncthing -- transfering files from one device to another, you needed both devices to be online. That changed, when the untrusted (encrypted) devices feature was merged.

πŸ’Ό 🧠 Build a service for untrusted (encrypted) syncthing devices, enabling users to copy files asynchronously.

Users create their Syncthing setups as normal, then add an untrusted device (a URL you give them), and they can start to treat their Syncthing instances as cloud drives.

It's a hard sell -- many people use Syncthing precisely so they can get away from hosted services, but here's the thing -- they don't have to trust you (and you don't have to convince them to). Thanks to the encryption Syncthing uses, users can treat you as just a dumb redundant temporary host for their data.

Think the user base for this kind of service is impossibly small? Syncthing has close to 50,000 stars on Github. Ansible, the industry standard automation toolkit, has ~56k stars.

More importantly than popularity, there's a r/Syncthing subreddit, which means you have distribution -- even if it doesn't work out, validating this idea should be fast.

This was originally posted @ Unvalidated Ideas (Edition 40)

Top comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.