Meteor Files: Resume interrupted file uploads without losing any progress
Tags: saas, cloudstorage, productivity, showdev
Published: 2024-03-12 18:16:31

_Have you ever wanted to shut down a computer, close a browser, cut the power, or lose the Internet connection without consequences during file uploads? Meteor Files can resume uploads without losing any progress. For example, while uploading from a USB stick, it can be pulled out in the middle of the process and later resumed from another device!_

Hello 👋 My name is Dmitry. I haven't been available for private launches or writing articles for a while. However, my head is full of ideas, and I always desire to share my knowledge and expertise. I'm CTO and founder by day (_the reason for my absence in the public domain_) and open source maintainer and contributor by night.

I have built many NPM and Atmosphere packages, but one always stood out with the most stars, issues, pull requests, attention, usage, and downloads — `meteor-files` or  `ostrio:files`, to be precise. I've been building and maintaining it for over nine years. This is the most popular package for file uploads and distribution within the Meteor.js ecosystem. These years of experience taught me a lot about file uploads and downloads.

I was also lucky to work in the audio, video, and film production industries. Seeing firsthand how files get distributed across the post-production teams. I saw their pain and struggle, especially when working in remote locations and developing countries/regions. Unstable internet, load-shedding, power cutouts, hardware and software malfunction. Getting final cuts, managing files, and sending them to editors often fell on the shoulders of interns and younger members of teams. Who has to remain on set until the very late point, often to the beginning of the next day. Uploads can not get interrupted; if they do, resuming the upload must be handled manually or restarted from scratch. I've seen people guarding computers in active uploads, so no one has even been allowed to come close to the computer or station in an active upload state!

The raw material must be delivered for post-production as soon as possible; every hour spent uploading or re-uploading costs money for the content-production business.

And here I am, sitting with all this knowledge about uploads and a clear understanding of the problem it can solve. The draft and technical sketches have been with me for four years. Only at the end of 2023 I finally had chance to put all of the ideas and drafts together. 

And here we are now — months later, [its MPV is out](https://meteor-files.com/)! In this release, we focus on the main functionality of uploading, downloading, and sharing files via customized links (with expiration dates and limits to the amount of downloads). Now, our goal is to create the most reliable, resilient, and durable file upload and sharing service on the market, with features that are not present in any of the existing competitors.

The Meteor File application and use cases are wider than usage within content-production teams. Meteor Files will be helpful to anyone who has a need to upload, store, share, organize, and manage files online. It would be great for day-to-day cases, such as:

- Safely sharing an archive of photos via personalized and restricted links
- Storing files for use across multiple devices
- Storing archives and backups

We have a long backlog of tasks that span for months ahead. The next step for the Meteor Files would be B2B and team-focused features. As well as developer-focused features starting with an option to add resilient to interruption file uploads to your website!

Today (Tuesday, March 12th, 2024) is the launch day for Meteor Files [on Product Hunt with an exclusive lifetime offer](https://www.producthunt.com/posts/meteor-files)!

Looking for insight into the tech stack and packages we use to build this project? Here you are: 

#### Our dev stack

- JavaScript
- Node.js
- Meteor.js
- Blaze (Jade notation)
- SASS

#### Our DB stack

- MongoDB
- RedisDB

#### Our DevOps stack

- Linux/Debian
- Nginx
- Haproxy
- CloudFlare

#### 3rd-party services

- CloudFlare — for DNS
- Stripe — for payments
- ostr.io — for SEO pre-rendering, analytics, and monitoring
- SparkPost — only as a fallback to our own email servers

#### Open Source NPM packages

- `ClientStorage`
- `dnscache`
- `fecha`
- `fs-extra`
- `graceful-fs`
- `idb-keyval`
- `josk`
- `mail-time`

Follow the project's progress as we plan to "build in public" on [its Indie Hackers product page](https://www.indiehackers.com/product/meteor-files).

And remember to [grab a lifetime offer at the Product Hunt launch page](https://www.producthunt.com/posts/meteor-files)!

> No one has to struggle with file uploads and sharing! At least no more ha-ha 😝🤘