DEV Community

Cover image for Meteor Files: Resume interrupted file uploads without losing any progress
Dmitriy A.
Dmitriy A.

Posted on

Meteor Files: Resume interrupted file uploads without losing any progress

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! 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!

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.

And remember to grab a lifetime offer at the Product Hunt launch page!

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

Top comments (2)

Collapse
 
smart_egg profile image
Dmitriy A.

Watch demo:

Collapse
 
smart_egg profile image
Dmitriy A.

Questions and feedback are welcome! Let's spark the discussion ✨