Every now and then, I build something small that ends up being incredibly useful, both for me and my clients. Recently, I put together a lightweight file upload system, similar in spirit to WeTransfer, but completely custom and built to suit my needs.

Why I Built It

Like many freelancers and small businesses, I often need to collect files from clients,  everything from logos and PDFs to full project archives. Email attachments get messy fast, and third-party file transfer tools are either too bloated, expire files after a short period, or come with too many unnecessary costs.

So, I decided to build my own. I wanted something clean, simple, and 100% under my control, no login required for the client, just a secure link and a straightforward upload interface.

The Benefits of Going Custom

Building it myself gave me a lot of flexibility and a few nice benefits:

  • Low-cost storage: I’m using DigitalOcean Spaces, which offers generous storage and bandwidth at a fraction of the price of similar services.

  • No file expiration: Files stick around as long as I need them to, no unexpected deletions!

  • Private and secure: All uploads are stored in a private bucket, and only I can access them through the admin panel.

  • Fully branded experience: No third-party logos or generic links,  just a smooth, professional process for clients!

 

The Tech Stack

Here’s what I used to put it all together:

  • Laravel — For the core application and routing.

  • Laravel Orchid — To quickly spin up a clean admin interface for creating upload requests and viewing files.

  • DigitalOcean Spaces — As the storage backend, with the AWS S3 driver for Laravel.

  • Dropzone.js — For the drag-and-drop upload interface on the client side.

  • Signed URLs and slugs — To generate secure, one-time upload links for each request.

 

The Problems It Solved

This tool instantly improved a few workflows:

  • I can now create an upload request in seconds and send a secure link to a client — no login, no fuss.

  • Files are automatically sorted and organised, making it easy to find what was uploaded and by whom.

  • I no longer have to deal with email attachments, Dropbox links, or expired WeTransfer files.

 

It’s simple, but it does the job, and most importantly, it’s mine. No ongoing subscription fees, no data handed off to third parties, and a much smoother experience for my clients.

If you have a problem like this, Or need a solution building for a different problem, Get in Touch and lets see if we can get something moving!

Don't miss out on other exciting articles!

Sign up to my mailing list to be kept up to date with exciting blog posts and website tips & tricks.

Name(Required)