Hey friends! I have been thinking about building a new file hosting service for a long time. A few months ago, I launched CipherDrop, a privacy-first file sharing platform. All files were encrypted and decrypted on the client side, with no server logs at all.
Unfortunately, it got blacklisted within two weeks by services like SpamHaus. Still, I believe secure and private file sharing is important. You never know who is watching. That is why I am starting UwU File.
I already own the domain, and I thought it would be funny to give a cute name to something that is actually quite technical. That is the whole reason.
UwU File will not be just a website. It will be built on top of the IPFS network. This means files might stay accessible even after you try to delete them. But it also means anyone can access them from anywhere. UwU File will come in a few forms:
Every file will be encrypted using ChaCha20-Poly1305 with a key generated on the client side. The server never sees the key. To share a file, you just send someone the IPFS content ID and the encryption key. This way, the encrypted file is visible to anyone, but only someone with the key can actually open it.
Yes, one downside of IPFS is that files cannot be easily deleted. They might be cached or pinned elsewhere. But that is the tradeoff for making files accessible everywhere. Sharing is as simple as sending someone a CID and a key.
I know the name might sound silly, but I am serious about this project. The UwU File Server will let users upload and download files through a web interface. You can run it yourself to pin files on your own IPFS node. Or you can let other users upload temporary files to your instance, which then get shared across the network.
Downloads work the same way. The main UwU File website will let anyone fetch files from the IPFS network. If you upload something to your personal UwU server, someone else could download it from the official site. Or the other way around. You can even pin files yourself to help keep them alive. It is giving strong torrent vibes, but honestly, that is kind of the point.
Here is the big idea:
This is where it gets fun. The UwU File Client will include its own IPFS server. That means you can connect directly to the network without going through a web server. You can download any file on the network. You can also upload files that will be shared directly from your own device.
When you upload a file from the client, it will be available to anyone connected to IPFS. But your device needs to stay online until the person downloading finishes. It is kind of like peer-to-peer file sharing. No central server needed. Just you and the person you're sharing with.
I think that is pretty awesome.
I have already built a simple Go server that accepts files and pins them to the IPFS network. I also finished collecting 200 unique UwU faces to show on the website. This was clearly a top priority.
On a serious note, I will work on this slowly. I am starting a new job in about six weeks. Running a public UwU File instance will cost some money, so I will wait until my first paycheck.