Hi! My name is Alex Sicart and I have been working on a new way to send files using IPFS, so that everyone can benefit from this technology.
With FileNation you can already send files in a more secure and efficient way using IPFS, a P2P hypermedia protocol. IPFS can save millions in bandwidth, right now FileNation pins files for free.

Also, a tip: You can speed up your service by exposing the bridge on your pinning node. That way, your files don't have to go from node to node, the end user can just fetch them from your node's local pin store.

EDIT: Quickly skimming your code, it seems like you aren't uploading the files anywhere or pinning at all? Unless I'm mistaken, you're running ipfs-js and instantiating a node in the user's browser, which means that the user will have to keep the browser open for the file to be available, no?

Yes right now we are using Eternum API for the MVP to pin the content, but the next feature will be pinning in our server. Uploading the file to IPFS (front-end), then from the emai-server, downloading the file from hash to our own server and then connecting it to gateway https://filenation/ipfs/{hash} (everything in the same server to save a lot in bandwidth)

In your experience, how's the speed with sending and receiving files this way? I have relatively little knowledge about IPFS right now, but the last time I tried to access a site that claimed to be hosted in IPFS (accessing it through a gateway), it was so slow that it failed to load.

That is a constant source of frustration for us as well. We've been having problems where nodes intermittently couldn't discover other nodes, so content that was in one IPFS node would be unavailable on another.

I've spoken to a few people from the IPFS team, but they couldn't figure out the cause. Hopefully the next version makes discovery more reliable and fixes this (the files are quite quick to download once peers discover each other).

Yeah, I have two IPFS nodes, and had to make sure their swarm was bootstrapped with the IP address of each other. And even then, I still sometimes have to `ipfs swarm connect [ip_address]` after a reboot to be able to discover the content they have pinned.

Yep :( It's pretty disheartening to work on a product for some time and have the underlying technology just not work up to your standard.

Hearth is basically hit and miss for that reason, sometimes files show up right away and it's amazing, sometimes they time out and it's useless. Very frustrating, and there's absolutely nothing we can do about it.

Shameless plug: this is pretty similar to my https://filemap.xyz/ in its purposes and in the usage of IPFS and eternum.io, but Filemap kinda uses geographical locations instead of emails to "send" the files.