// blog

Why I built PlikShare

Have you ever found yourself juggling multiple file-sharing services, WhatsApp groups and Facebook chats, desperately trying to keep track of who sent what and where? Have you ever asked someone to be so nice to send you a new link to the file because original one already expired? I've been there, and it was frustrating. So here is my story.

The background story

In 2023, I was working on an educational platform where aspiring QA engineers could learn how to test software. I started recording video tutorials, and because of that, I had to start editing those videos. I quickly discovered that this is neither something I was particularly good at nor keen on doing myself. I decided to outsource that work to someone else.

It's not easy to find a good freelancer. I was talking to almost 20 different people I found on various Facebook groups and other places. The process usually looked like this: someone who was interested in cooperation would first send me a link to their portfolio, and then if I liked what I saw there, I would assign them a short task to check their skills in action. Sending an assignment to twenty people is easy - I simply put a sample video file with brief instructions into a Dropbox folder, shared it via a link, and sent it to interested candidates. The problem started when those people wanted to send me the results of their work back.

Literally everyone had a different idea of how to send me the result videos. Some people were sending me files directly through WhatsApp or Facebook. Some were emailing me the files as attachments (if they were small enough). Some were sending me links to WeTransfer (which I had to download myself before the link expired), and some were sending me links to their Dropbox/OneDrive accounts. Long story short - utter chaos. I had to be very disciplined to download these files on time (before they expired) and put them somewhere in one place so that I could review them. The process required a lot of work on my side. So I tried something else.

The challenge with existing solutions

My first idea was to create a folder on Dropbox and allow people to upload files there, but it wasn't that easy. First of all, a folder in Dropbox can be shared in two modes: read-only or full access. Additionally, for full access, users need to be logged into Dropbox. Anonymous links allow read-only access and nothing more. That was the first problem. Asking everyone to create a Dropbox account just to send me a file isn't ideal.

The second problem with the folder approach is that it would expose freelancers to each other - and that was something I wanted to avoid. To work around that issue, I ended up creating separate folders for each freelancer and then trying to invite them there, but that, for some reason, just didn't work for me... People were receiving invitation links, but when they tried to use them, they weren't getting access - I don't know why. Was it somehow clashing with the fact that my Dropbox account was a company account with only three seats which were already occupied, or was it some other problem - I don't fully remember right now. The only thing I remember is that I wasn't able to achieve my goal, and that I was really frustrated that Dropbox was so capricious with different strange behaviors. Like for example the one below:

Random Dropbox problem

So I gave up and simply got those files from all those different places manually. And then after some time - when I no longer needed it - I discovered that Dropbox has something called "File requests" which seems to do more or less what I actually needed back then... Maybe it's just me not being the sharpest pencil in the box, or maybe the sheer amount of different features, how they are planned and located in all those ever-growing SaaS-type software is just hard to grasp. I would prefer to have something simpler.

Another issue which is kind of annoying in solutions like Dropbox or OneDrive is the fact that I need to pay per team seat and not per storage. It made absolutely no sense to me to pay for a team of 3 people to get 9TB of storage when I really needed space of 100GB or 500GB at most for two people only. It's just too expensive - at least it was for me. Especially since I barely used it. There were periods when I was using it daily, but also periods where for months my 500GB of files were just lying there, and the only moment I got reminded that I had a subscription was when I received an invoice for about 40 EUR.

The vision for a better file sharing software

The problems I faced trying to collect those files made me think about building something on my own. It would be a product to scratch my own itch. I had several key principles in mind that would guide the development:

  1. Simplicity is paramount - even the most powerful features are worthless if users can't find them in an overcrowded interface.
  2. File flow should be bi-directional. While most file management solutions are very good at sharing files outward, they often neglect the equally important ability to collect files from external sources. Files should be as natural to receive as emails - think of it as an inbox for your files.
  3. These days teams are very often dynamic. One day you work on your own, and the other day there are 20 people you need to cooperate with. Permission system of your software should easily reflect that, and prices should not depend on the team count but on the resources usage. Team of 20 people can work on set of files worth of 100GB while 2 people can work on 20TB of data - bigger team doesn't necessarily mean that you need more space.
  4. Files are the lifeblood of most companies, and access to them should never be at risk. Relying on large providers introduces uncertainty - they could restrict or cut off your access at any time. The more control you have over your file storage, the better.

A self-hosted model emerged as the ideal solution to meet these criteria. This approach embraces the philosophy that you should own what you pay for, especially when it comes to business-critical software. Self-hosting also offers a more straightforward billing model - instead of per-seat pricing, you pay a one-time license fee and then only for the resources you need to host the software. This could be as little as $5 monthly for a VPS, perfect for small teams. You can scale up or down as needed, paying for storage rather than user count.

The trade-off is a slightly steeper learning curve - users need to be comfortable setting up a VPS, configuring DNS records (which requires owning a domain), and running installation scripts. However, this is a small price for true independence, and services like DigitalOcean, Hetzner, and Cloudflare have made this process more accessible than ever.

From the vision to the product

With this vision in mind, I started working on PlikShare, and a few months of development later, here we are. Looking back at my file-sharing challenges from 2023, if I had PlikShare back then while working with freelancers, I would have set up the file upload process like this:

  1. Create a new folder in one of my PlikShare workspaces
  2. Create a new box for this folder (in PlikShare, a box is a special layer that lets you share folders with external users - it's particularly useful when you need to replace a shared folder, as you won't need to reinvite everyone from scratch)
  3. Fill in a box header with requirements and instructions for freelancers - this way, I wouldn't need to repeat the same information every time I start working with someone new
  4. Create an anonymous link (or several links if you want the flexibility to revoke access for specific freelancers without affecting others) with upload-only permissions
  5. Share this link with freelancers so they can start uploading their videos

The entire setup takes about a minute - as you can see in the video below. Freelancers can then upload their files to a single folder without seeing each other's work. Additionally, they have a brief window during which they can delete or rename files they've uploaded - perfect for correcting mistakes or fixing file names.

Looking back, having PlikShare would have made the entire video editing process much smoother for both me and the freelancers. While I'm no longer in the video editing business, I'm confident that PlikShare can help improve file sharing experience for many different business scenarios and use cases. Give it a try - I'm sure you'll find it just as useful!

Damian Krychowski