Hello! What’s your background, and what are you working on?

Hello! My name is Mark Jivko. I’ve been writing software professionally for the past 15 years and I have led teams as CTO for the past 10 years. I’ve had the privilege to work on many side-projects during this time, gathering more than 25.000 hours of experience on “side-quests”.

I’m currently working on a tool that helps people detox from social media and recently created EchoDuck, a folder sharing tool.

How does EchoDuck simplify folder-sharing?

In 2024, sharing folders still proves to be a cumbersome process, often involving steps such as archiving folders into files, utilizing FTP servers, or configuring complex systems like git repositories or SSH reverse proxies.

Existing file-sharing tools frequently fall short for basic folder-sharing needs, often by design. This is where EchoDuck steps in, a one-click folder-sharing tool. 

EchoDuck works directly from your browser tab. No installs, no downloads and no tracking. And it’s all free – within reason.

What features does EchoDuck leverage to allow users to share folders directly from their computer without installs or uploads?

EchoDuck runs a tiny JavaScript program in your browser. That program acts like a Static Web Server, responding to external requests. For privacy and security reasons, requests are exclusively logged locally, and only GET requests are answered.

The goal is to streamline folder sharing with a one-click solution that’s easy and straightforward. There’s no need for installs or downloads of any kind and your files are not uploaded before they can be transferred.

You can create a custom link and password-protect it to share folders directly from your computer, keeping all your files secure and avoiding unnecessary data transfers.

How does EchoDuck ensure the privacy and security of shared files?

EchoDuck operates as a secure static web server right in your browser tab, sending data over SSL-encrypted connections.

Your files are never uploaded directly to EchoDuck’s servers. Instead, they are tunneled when a person you trust makes a request to your magic link.

Once you’ve selected a folder to share, it instantly becomes available to those who know your private link and password. With EchoDuck, files never leave your computer, giving you complete control over shared content and enhancing privacy.

What technology does it utilize to achieve secure file transfers?

Fast and secure file transfers are achieved using a combination of modern web browser APIs, WebSockets and a WebSocket-to-HTTP proxy written in PHP.

Echoduck, a free folder sharing tool, here we seen how the process to transfer files securely work.

Remember that WebSockets are actually persistent duplex connections. This allows ad-hoc requests from the outside to be tunneled to your device, even behind multiple layers of firewalls and proxies.

In simple terms, you can now safely host a static website from your laptop on a WiFi connection at McDonald’s!

How does EchoDuck manage varying upload and download speeds for efficient large file transfers?

EchoDuck tackles upload and download speed discrepancies by using a Traffic Lights system. This ensures that upload speeds never surpass download speeds during transfers, which minimizes congestion. More importantly, this method prevents Out-Of-Memory issues on the server.

EchoDuck simplifies folder sharing by running a very simple Static Web Server in JavaScript – inside your browser tab. When you close that tab, the server goes down, so you don’t need to worry about unwanted access to your files.

Files are transferred in 1MB segments, waiting for confirmation at each stage, regardless of file size.

The file transfer process initiated by the visitor’s device is handled by an HTTP-to-WebSocket proxy written entirely in PHP.

To address WebSocket frame size limitations, EchoDuck carefully manages frame sizes to prevent browsers from dividing large frames chaotically. It sends batches of 16 messages, each 65,536 bytes, over the WebSocket connection between your Static Web Server and the EchoDuck proxy.

This approach ensures smooth and predictable data transfers. EchoDuck guarantees fast and secure file transfers among users, achieving speeds of approximately 5 megabytes per second for seamless sharing experiences.

As folder sharing tool, how does EchoDuck provide access control options within the browser tab?

EchoDuck uses one of the following Browser tools: 

  • showDirectoryPicker() method from the Window API 
  • webKitDirectory attribute from the HTMLInputElement API

These methods allow you to point to an entire folder on your device, instead of just one file at a time.

After you click on “Select Folder”, the result is an array of File objects, which are file pointers (sort of) that are kept in memory until someone makes a GET request to your magic link.

Note that these modern Browser APIs are not yet universally available!

Most desktop browsers support selecting folders, but not the same can be said about mobile browsers.

But don’t worry, you can still share one file at a time on any browser that doesn’t support folder selection.

To fulfill GET requests, the tiny JavaScript program in your browser reads from those File objects 1MB at a time. When someone requests a folder path, your local Static Web Server responds with a JSON list of available files and subfolders. For invalid paths, it will respond with a JSON payload marked as “404 – resource not found”.

All other HTTP request verbs are ignored. So POST, PUT, PATCH, DELETE etc., are all just privately logged in your browser tab, without actually performing any action on your device.

What was the budget allocated for bringing the product to life?

EchoDuck was a fun side-project I built because I needed to share files and folders and available options frustrated me. I really don’t like the idea of uploading my data to a huge corporation’s servers before the person I actually trust can download it.

I didn’t have a budget or a timeframe for EchoDuck. It’s currently running on a tiny Virtual Private Server at Linode. Everything else is free – from SSL certificates issued by CertBot and static web app hosting and proxies by CloudFlare. 

So you could say the budget is about a few pizzas per month.

What are you most proud of from creating EchoDuck, and what key lesson did you learn??

The Proof-of-Concept stage is what I like most about my job. When you just tinker with available tools, crappy documentation and an endless list of questions to discover what works and what doesn’t.

I understood that web browsers support WebSockets, and probably a way to select an entire folder – but I wasn’t sure. Then, I knew that an HTTP-to-WebSocket proxy should be doable, in principle. I wavered on whether I should implement it in Node.js or PHP but I chose the latter on a literal coin toss. So I just went on a quest to find out what happens when I duct-tape it all together.

If EchoDuck becomes popular, I’ll probably have to ditch PHP and rewrite that reverse proxy in Rust or Go. So if that happens, it will be just another awesome journey I’m excited to start!


Did you enjoy this interview on EchoDuck – a folder sharing tool? I regularly interview creators who have recently launched their products. Check out additional discussions like this on BetaHunt.io. For updates, follow me on X.