Blaze is a file sharing progressive web app built using WebTorrent and WebSockets

Overview

Blaze - Fast peer to peer file sharing web app ⚑ | Product Hunt Embed Digital Ocean

Blaze - A file sharing web app ⚑

Blaze is a file sharing progressive web app(PWA) that allows users to transfer files between multiple devices. It works similar to SHAREit or the Files app by Google but uses web technologies to eliminate the process of installing native apps for different devices and operating systems. It also supports instant file sharing with multiple devices at once which many file sharing apps lack.

Blaze primarily uses WebTorrent and WebSockets protocol (as a fallback) to transfer files between multiple devices. Files shared via WebTorrent are peer-to-peer(as they use WebRTC internally) which means there is direct transfer between the sender and receiver without any intermediate server. Do note that tracker servers in WebTorrent are used which carry metadata and facilitate the file transfer but do not get the complete file in any form.

Try it out!

  • Go to a deployed client of Blaze - https://blaze.now.sh
  • Set a basic nickname(this is not stored on any server)
  • Create a new room. Room is where peers must join to share files among each other.
  • On another device, follow the above steps and join the same room. (Make sure to give a different nickname)
  • Both your devices should show up. Now start sharing some files!

Read more about how Blaze works at a basic level in this Medium article.

Deploy your own instance of Blaze

Deploy Try in PWD

Read more on Deploying on your own server

Table of Contents

Sponsors

Blaze is sponsored by:

Project structure

The project is structured into following directories - backend, frontend, common and nginx.

Backend

All the backend(or server) related source code resides under the server directory. It is built on Node.js with express for HTTP server and ws library for WebSockets. Thin wrappers have been created for easier interfacing with sockets.

Frontend

The frontend source code is in the client directory. The dependencies of the frontend has been kept to a minimum to keep bundle sizes low. Once the frontend is built for production, all the built files are stored in build directory which can be deployed as a static app.

  • Preact is being used on the frontend(previously used Svelte).
  • Sass is used for CSS pre-processing and maintaing consistent themeing across the frontend.
  • /app route is a PWA, single-page app. Rest of the routes are pre-rendered during build time.
  • Feather icons is used for icons.

Sub-directories

  • assets - used to store the static assets such as images.
  • components - contains all the UI components of Blaze.
  • hooks - custom Preact hooks
  • routes - components related to different routes of Blaze and router configuration.
    • App - subroutes of the single-page app under /app route.
    • Pages - rest of the routes that need to be pre-rendered.
  • scss - theme level scss. (Note: component specific scss goes within the corresponding component directory)
  • utils - javascript utility functions

Common

The common directory contains javascript modules that are shared by both frontend and backend. These include constants in constants.js file and utility functions in utils sub-directory.

Nginx

The nginx directory contains configuration files for nginx to be used in Docker containers. These usually don't change much.

  • compose-nginx.conf - Used when the project is run using docker-compose.
  • image-nginx.template - Used when the project is run on a single container from higher level Docker image.

Build process

The build process for the frontend internally setup with webpack via preact-cli. Overrides can be made in preact.config.js file. Following environment variables can be set in the build process:

variable description default
client
WS_HOST URL to the server that is running the Blaze WebSockets server. 'ws://:3030'
SERVER_HOST URL to the server that running the Blaze HTTP server. 'http://:3030'
WS_SIZE_LIMIT Max file size limit when transferring files over WebSockets in bytes. 100000000 (100 MBs)
TORRENT_SIZE_LIMIT Max file size limit when transferring files over WebTorrent in bytes. 700000000 (700 MBs)
server
ORIGIN Array of string URLs to allow CORS. *
PORT Port for the server to run 3030
WS_SIZE_LIMIT Max file size limit when transferring files over WebSockets in bytes 100000000 (100 MBs)

Deploying on your own server

Blaze can be easily deployed on your own server using Docker. The frontend and the backend is completely decoupled from each other. Following Docker images are available:

  • Blaze Server: This is the backend Node.js server that is used for WebSockets. The environment variables listed for the server above can be passed to the container. It exposes port 3030.
  • Blaze Client: This is the frontend progressive web app of Blaze used by clients for sharing files. Nginx is used as a web server for this statically generated frontend. The environment variables listed above can be passed as ARGS while building the image. The frontend container exposes port 80.
  • Blaze: This is a higher level image that includes both Blaze Server and Blaze Client images above. It must be used when docker-compose is not available in the environment, or there is a limit to run only a single container. docker-compose must be used to run Blaze in other cases which is explained in next section.

Using docker-compose

A docker-compose.yml file is present at the root of this project which runs both the server and client containers and sets up a proxy for WebSocket connections on the frontend in Nginx configuration. To run using docker-compose:

git clone https://github.com/blenderskool/blaze
cd blaze
docker-compose up -d

Contributing

Documentation on contributing can be found in CONTRIBUTING.md

Running Blaze in production

Building the frontend

npm run build:fe

The frontend built code would be located in the client/build directory.

Starting the server and frontend app

npm start

Blaze app can now be accessed at port 8080 πŸŽ‰

Privacy and Analytics

  • Blaze server does not track or record the files that are being shared both by WebSockets and WebTorrent.
  • Any user related data like nickname, room names are always stored on device, and are only shared with the server when the user joins a room for file sharing.
  • Blaze client uses Google Analytics to record the following:

License

Blaze is MIT Licensed

Comments
  • Can't rejoin room if network connectivity is interrupted

    Can't rejoin room if network connectivity is interrupted

    Issue

    If one of the devices loses network connectivity after joining a room, said device does not seem to be able to re-join the same room right after.

    Steps to Reproduce

    • Create a new room using device A, and join said room with device B
    • Disconnect device B's network access
    • Try to rejoin the same room with device B

    A Connection Error that says User with same name exists in this room gets displayed.

    Potential Solution

    Maintaining a temporary state locally which keeps tracks of connectivity, maybe? Periodical ACKs from receiver device might also help.

    bug 
    opened by thazhemadam 25
  • CONTRIBUTING.md Project setup issue

    CONTRIBUTING.md Project setup issue

    Under project setup, the steps mentioned are out of order. According to me, 'cd blaze' command must come before 'git remote add upstream https://github.com/blenderskool/blaze.git'.

    opened by abhishek-aa 7
  • Remove dependency on unique nick names

    Remove dependency on unique nick names

    The unique nicknames rule was originally added to prevent multiple sessions from the same browser window. It is used in some places to identify a peer in the room. This dependency on the unique nicknames should be removed and auto-generated unique id must be used.

    Update This description was not clear in terms of when peers would be allowed in the room or not. Here are the cases that can happen:

    • Should peers with the same nicknames be allowed in the same room? Yes, peers with the same nicknames would be allowed in the same room (assuming they have unique ids).
    • Can the same peer join the same room from a different tab? No, this shouldn't be allowed. This would cause two peers with the same id in the same room which isn't needed.
    • Can the same peer join two different rooms from different tabs? Yes, this should be possible.
    refactor enhancement 
    opened by blenderskool 7
  • Fix basic accessibility issues

    Fix basic accessibility issues

    There are some basic accessibility issues on the landing page of Blaze which can be seen on Lighthouse.

    image

    The complete report can be found here https://lighthouse-dot-webdotdevsite.appspot.com//lh/html?url=https%3A%2F%2Fblaze.now.sh%2F#accessibility

    good first issue minor hacktoberfest 
    opened by blenderskool 6
  • Show copy link button when web share API is unavailable

    Show copy link button when web share API is unavailable

    Since some browsers don't support web share API (which is shown on mobiles to share the link to Blaze room), a copy link button can be shown in its place which would copy the link to the clipboard.

    We can make use of copy-to-clipboard package for this.

    For reference, on mobiles, this is the share button.

    good first issue hacktoberfest enhancement 
    opened by blenderskool 6
  • Update design of onboarding screen

    Update design of onboarding screen

    The current onboarding screen only shows an input field to choose a nickname. New design can include some more context as to what nicknames do in Blaze.

    enhancement 
    opened by blenderskool 5
  • NGINX Reverse Proxy

    NGINX Reverse Proxy

    Hi Folks,

    I have only one public IPv4. Is it possible to use an nginx proxy on an other server than the machine wich the docker image is on?

    Greetings from Germany

    question 
    opened by elearningdienst 5
  • docker-compose fails at prerender

    docker-compose fails at prerender

    I get an error in blaze-client when running docker-compose up -d output:

    Step 16/20 : RUN npm run build
     ---> Running in 891660796c3a
    
    > [email protected] build /app/client
    > preact build
    
    Browserslist: caniuse-lite is outdated. Please run:
    npx browserslist@latest --update-db
    
     ssr-bundle.e1978.css β–   4.12 kB (+4.12 kB)
            ssr-bundle.js β–   30.6 kB (+30.6 kB)
    
    
       ssr-bundle.e1978.css β–   0 B (-4.12 kB)
              ssr-bundle.js β–   0 B (-30.6 kB)
           bundle.5f534.css β–   4.04 kB (+4.04 kB)
        bundle.*****.esm.js β–   33.8 kB (+33.8 kB)
     polyfills.*****.esm.js β–   2.02 kB (+2.02 kB)
                      sw.js β–   10.6 kB (+10.6 kB)
                  sw-esm.js β–   10.6 kB (+10.6 kB)
            bundle.fc54b.js β–   34.5 kB (+34.5 kB)
         polyfills.694cb.js β–   2.01 kB (+2.01 kB)
    
    
    ReferenceError: window is not defined
    method: os/r
    at: /app/client/src/utils/urls.js:5:8
    
    Source code:
    
    export default {
      WS_HOST: (() => {
        if (WS_HOST) return WS_HOST;
        if (window.location.protocol === 'https:') {
          return `wss://${window.location.host}/ws`;
        } else {
          return `ws://${window.location.host}/ws`;
        }
    
    This is most likely caused by using DOM or Web APIs.
    Pre-render runs in node and has no access to globals available in browsers.
    
    Consider wrapping code producing error in: 'if (typeof window !== "undefined") { ... }'
    
    Alternatively use 'preact build --no-prerender' to disable prerendering.
    
    See https://github.com/developit/preact-cli#pre-rendering for further information.npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! [email protected] build: `preact build`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] build script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2021-02-21T14_52_57_033Z-debug.log
    The command '/bin/sh -c npm run build' returned a non-zero code: 1
    ERROR: Service 'blaze-client' failed to build
    

    Thanks! -Michael.

    bug help wanted 
    opened by lilmike 5
  • Fix social link preview

    Fix social link preview

    Actually the bug is False-positive. I cross checked with Facebook Sharing Debugger and LinkedIn Post Inpector. Both the Results shows the Site Preview Image.

    The real bug relies not with Blaze but with the https://socialsharepreview.com/ , only there the Site Image is not showing. All other official debuggers show the site preview image.

    What I added?

    • [x] While debugging Facebook Sharing meta tags. It seems og:title and og:urlare required so I added those.

    This closes #92

    opened by SreejithNS 5
  • Prevent rooms with reserved symbols

    Prevent rooms with reserved symbols

    While joining a new room, the room name must not contain characters such as #, ?, & ... which have a special meaning in a URL. When these characters are used, the app stops working as expected.

    Hence the room name must be validated to prevent reserved symbols.

    bug good first issue hacktoberfest 
    opened by blenderskool 5
  • Update version of WebTorrent library

    Update version of WebTorrent library

    Blaze currently uses WebTorrent v0.108.6 script. We should update it to the more recent versions.

    To anyone who's interested in picking this up, make sure to:

    • Check if the new versions of WebTorrent (v1.x) are backward compatible with v0.x versions (that Blaze uses currently).
    • Check if file sharing works as expected after the upgrade.
    • Add a comment here if any breaking change of WebTorrent library requires changes in the Blaze codebase as well.
    good first issue hacktoberfest 
    opened by blenderskool 4
  • Allow new members to select old files

    Allow new members to select old files

    In my usecase I tend to select a file for transfer and then send the "link" to people over chat or email. Currently I use nextcloud shares for that but that lacks the ability to swarm files. I tried instant.io but its UX has some "gaps" compared to blaze.

    Currently members whom have not already be joined before the transfer has been started would not be able to access that file. In this case it would be nice to allow these newly joined members to select the old transfers are still being seeded by the current members of the room. Since it looks like currently the transfer is stored in memory this could get expensive for the group members. It might be feasible to retain past transfers in local storage so that new members to see those torrents on join. The new room members can then select that torrent for download from the current group members. I would suggest session storage but the maximum size would be too small to share anything meaningful. To keep the local storage from getting out of control some sort of LRU can be used to only keep the N most recent transfers. One other option might be to pair the cache with the room so that when a member leaves a room the cache can be cleared. This would allow the ability for members to join/leave instant rooms when their interest in the content changes.

    feature 
    opened by geiseri 3
  • Local synchronization and communication

    Local synchronization and communication

    Really love Blaze for the time I have used.

    Why not share the files over local connections if available like Bluetooth, wifi, wifi-p2p. This will remove the necessity to have internet or even wifi. There is no integrated solution at present, I think Blaze can do that.

    There are some open-source implementations available for local device discovery, network management. We can use those!

    opened by vkkhare 4
  • Keep a file queue on multiple simultaneous uploads for a zip of all files

    Keep a file queue on multiple simultaneous uploads for a zip of all files

    This would be very helpful when transferring a few dozen images from an iPhone to PC, it would be great to download all of them at once rather than hitting save after each file transferred.

    opened by Gerrit0 5
  • Add sending text feature

    Add sending text feature

    Can you add a feature of sending text messages? I think this will be useful, especially between many devices of one person. eg, sending url or memo from phone to pad.

    feature 
    opened by chrisxvin 1
  • [RFC] Ask permission while receiving a file

    [RFC] Ask permission while receiving a file

    When a file is sent in a room, other peers in the room must get an option to accept/ignore the file receive request initially. If they ignore the file, files would only be transferred to people who accepted the request.

    Not sure if it makes sense as Blaze already has rooms in place which would encourage people interested in the files to join a common room and then share the file. If we go with implementing this, few things need to be chalked out:

    • How file download acceptance is managed in WebTorrent and WebSocket.
    • In group sharing with WebSockets, files are broadcasted to all peers at once. If a peer does not accept/decline the file request, the other peers(who accepted the request) may end up waiting. A timer may be added when the request is shown which would by default ignore the request after the timer runs out. Would need some inputs here.
    feature 
    opened by blenderskool 0
Releases(v3.0.0)
  • v3.0.0(Jan 4, 2023)

    TLDR; Bunch of new features and improvements to Blaze!

    Personal note

    v3.0.0 marks a new milestone for Blaze. It's been 4 years since I started Blaze project and I never thought I'd be maintaining it for this long! The goal back then was β€” To make peer-to-peer file sharing as seamless as possible across different networks and devices which is true even to this day. I learnt various things from my time maintaining Blaze as a FOSS project which I shared in a talk at IndiaFOSS 2.0 last year.

    https://user-images.githubusercontent.com/21107799/210567425-2336079d-d092-4724-a989-97c7e28dc326.mp4

    3 Major changes in v3.0.0 ⚑️

    With Blaze v3.0.0, the focus has been to introduce new features and refinements to improve the flow of file sharing. This time, I made a public roadmap so that anyone could pickup tasks / suggest new features. This worked great for the major version bump, but I won't be maintaining this for upcoming minor releases.

    1. Knock, knock! Who's there? It's Local file sharing room! 🏠

    Rooms in Blaze allow multiple devices to share files with each other. Until now, all these rooms were public on the internet and anyone could join if they had(or guessed) the room name. One of the special and more common use-case that I personally observed was that most of us have multiple devices on our home networks and often, it's between these devices that we share the most amount of files.

    Blaze v3 brings a special room called "Local network" room for sharing files with your devices in your local network. No one can explicitly join this kind of room without actually connecting to your local network! On a technical level, It makes use of the public IP addresses of the devices for creating these groups, and thus works great if there's a NAT in place that maps individual IP addresses of different devices to a single public IP address.

    If for whatever reason, Blaze is not able to detect devices in your local network, you can easily join a named room like before to share files, no changes there πŸ™‚

    Closes #65

    2. New settings & support pages βš™οΈ πŸ’š

    One of the confusing aspects of Blaze was how the nickname system worked. There were cases where people trying out Blaze for the first time set same nicknames on two different devices and when they joined a common file sharing room, one of the devices could not join(because of the clashing nicknames). Unfortunately, there was no way for the user to resolve this without clearing the site data.

    Blaze v3 brings a settings page that has option to edit your nickname and even clear all the locally stored data by Blaze. This page can be updated more in the future as and when new options make sense for this page. Additionally a support page has also been added which lists down various ways of supporting this project πŸ’š

    Closes #25

    3. Redesigns πŸ’„

    One of the most distinctive visual change in the Blaze app UI is the bottom tabs section which provides navigation to new pages added(as mentioned above). Other redesigns can be seen in the Rooms page where each room also shows the last join time, and the new user onboarding screen for entering nickname which also gives some context of what nicknames do.

    If you have a keen eye, you'll notice fresh new UI animations in the app! There are animations when entering / exiting pages, and also in the file transfer visualizer with smoooooth spring animations indicating peers joining / leaving rooms.

    Closes #132, #143, #151

    Other changes

    • Option to show a QR code for sharing the room link, that other devices can scan. Closes #126
    • Install button in the UI to install the Blaze PWA.
    • App shortcuts for joining local network / instant file sharing room directly from the home screen. Thanks to @gVirtu
    • Sending a file from clipboard by simply pasting it in the file sharing room. Closes #109
    • Updated version of WebTorrent library to v1.9.6. This is a substantial version bump as Blaze v2 was using 0.x version of WebTorrent.

    Minor changes & Bug fixes πŸ›

    • Fixed issue in rejoining a file sharing room when network connectivity was interrupted. Fixes #84.
    • Fixed memory leak in the file transfer visualizer animation loop.
    • Fixed room name matching logic to trim leading / trailing whitespaces and convert all non-alphanumeric characters in URL to spaces.
    • Fixed styles of outlined variant buttons causing layout shifts.
    • Fixed height of the Blaze app on mobiles(with keyboard open).
    • Fixed default margins around buttons on Safari.
    • Fixed "Join an Instant room" overflowing to new line on small screens. Thanks @Medmly20208
    • Fixed typos and copy in the UI.
    • Updated Donate link on home page to GitHub sponsors link.
    • Updated usage of Blaze logo to svg imports instead of embedded svgs.
    • Updated backdrop blur of Modals.
    • Updated versions of various dependencies to the latest releases wherever possible.
    • Updated supported Node.js version to 16.19.0 LTS.
    • Updated default NGINX config to proxy server-side-events endpoints correctly. These are used in the local rooms feature.
    • Added help descriptions while creating / joining a named / instant room.
    • Added new size variants of buttons and new shades of accent color in the default palette.
    • Added DISABLE_SSE_EVENTS environment variable to server for disabling server-side-events.
    • Added TRUST_PROXY environment variable to server which tells the server if the reverse proxy is to be trusted with the IP addresses it is forwarding. Set to true by default for Docker containers.
    • Replaced shortid with nanoid because of deprecation.
    • Replaced node-sass with sass because of deprecation.
    • Refactored reading / writing local storage logic to use react-localstorage-hooks. The abstractions provided in this library was being built within Blaze so it was extracted out as a separate standalone library!
    • Refactored forms using React state for storing form data to use of uncontrolled components.
    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Sep 7, 2021)

    This is a minor update that adds small features and fixes recent bugs.

    Additions

    • Senders can now view transfer percentage! 🀞
    • Migrated automated Docker builds to GitHub actions πŸ”¨ 🐳
    • Add usage instructions for Blaze higher-level image in README.

    Fixes

    • Fixed missing favicon in PWA when accessed using direct links.
    • Fixed Blaze higher-level image Dockerfile failing at installing node.
    • Update various packages with security vulnerabilities.
    • Update various linter warnings.
    • Update status check serverless function to check URL set in env variable.

    Read more about above changes

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2(Apr 29, 2021)

    This is a minor update that adds small features and fixes some of the recently identified bugs.

    Additions

    • Blaze badges! Readme of Blaze now shows new custom badges indicating some details about the project. This is powered by the serverless functions of Vercel. :tada:
    • Active link highlighting in the header. Thanks to @hashkazi00.
    • Better messaging when room names with unsupported characters are added in input.

    Fixes:

    • Explicit 404 redirection when no routes are matched.
    • Extend 404 redirection to /app routes.
    • Fix window object accessed during pre-render, causing builds to fail.
    • Fix nginx config to proxy the HTTP requests to the server.
    • Update node version to 14.16.1. This change is also made in all Dockerfiles.
    • Update URLs to personal site and donations
    • Update year in the footer.
    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Jan 1, 2021)

  • v2.1.0(Nov 12, 2020)

    This update to Blaze brings a bunch of features and improvements thanks to Hacktoberfest 2020 :tada:

    Introducing Instant Rooms :sparkles:

    Rooms are a fundamental concept of Blaze that enables a group of users to share files with each other. Since Blaze allowed user-named rooms, there were situations when unexpected users joined a room just by guessing the name. Instant Rooms reduce these collisions by generating a unique room name which is random yet memorizable. These rooms are guaranteed to be empty while creation.

    Here's a demo

    Share room link section

    A new section to copy/share room link has been added to encourage the user to share the room link with other devices when the room has less than 2 peers necessary for sharing files.

    Other improvements

    • Update title of the page to match room name. Thanks to @omnone
    • Fix shared.txt file being shared when using share targets. Thanks to @cristicismas
    • Show copy link button when web share API is unavailable. Thanks to @abhishek-aa
    • Accessibility fixes of images. Thanks to @RotonEvan
    • Fix social link preview. Thanks to @sreejithNS
    • Improvements to tested browsers list. Thanks to @RedLinus
    • Update modals to close when pressing the escape key. Thanks to @sooster910
    • Add a slide and fade animation to toasts.
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Sep 12, 2020)

    TLDR; This is the biggest update to Blaze!

    Blaze v2.0.0 marks a new milestone in the history of Blaze. I started this project almost 2 years ago to build an app that would make it simple to transfer files between my pc and mobile seamlessly. I never expected it to become # 1 Product of the day on Product Hunt and grow to this stage! With Blaze v2.0.0, the focus has been to improve stability, performance, and user experience of file-sharing altogether.

    Major changes in v2.0.0 :confetti_ball:

    • Blaze now has a new look :zap:! This new look aligns better with the vision of Blaze.
    • The top-level Blaze project has been split into a standalone blaze-client and blaze-server project (in the same repo). This makes it easier to manage dependencies and keep the frontend and server decoupled from each other.

    • Blaze server has migrated from socket.io to a custom implementation using ws. This not only gives us more control over the WebSockets structure but also improves server performance :tada:

    • Blaze client has been rewritten using Preact. Preact was chosen as not only did it support all the needed features from React but also had a tiny footprint making it easy to transition from Svelte keeping the bundle sizes low. Preact CLI was used for project scaffolding which supports pre-rendering, pwa support out of the box. The major reasons for this rewrite were:

      • There were no mature frameworks for Svelte that supported pre-rendering required for some pages.
      • Tooling support was not up to the mark. (This was before Svelte released Typescript support)
      • There were issues with project structure and how styles were being written. A major restructuring of the project was necessary in any case.
    • Blaze client has shifted from using socket.io-p2p to using a new concept of Torrents for peer-to-peer file sharing. This has been made possible using this amazing WebTorrent project. :raised_hands:

    • The Blaze server now runs on DigitalOcean! Thank you DigitalOcean for sponsoring Blaze :blue_heart: :innocent:

    Additions

    • Web Share target for sending files using the share tray of the devices after PWA is installed.
    • Option to share the link of the room using Web Share API.
    • More metadata for files being shared. These include:
      • If the file was sent or received.
      • An icon associated with the file type.
      • Who sent the file.
    • New How it works page to explain various steps during sharing files with Blaze.
    • New 404 page.
    • New loading animation built on the new logo of Blaze.
    • Google Analytics to the client for basic tracking.
    • New Docker images for both Blaze server and Blaze client.

    Updates

    • No more file zipping during file transfer. This was done because unzipping had to be done manually and broke the user experience. The files are now sent as is.
    • Improved chunking by using file read streams.
    • Blaze client is updated to use a new font family - Jost.
    • Updated File sharing visualizer to support both WebTorrent and WebSocket transfers.
    • Moved to use feather icons instead of icomoon for better icons on the interface.
    • Illustrations are converted to SVGs from PNGs.
    • Improvements to Footer.
    • Improvements to how errors are communicated during file sharing.
    • Improvements to styling of different UI components to better align with the theme.
    • Updated README and added CONTRIBUTING.
    • Updated File room name to be maximum of 20 characters and include spaces

    What happened to Blaze v1.0.0?

    The previous release of Blaze was versioned v1.0.0-beta.3. The changes in this update were so huge, I decided to call it a 2.0.0 release instead of just bumping it to 1.0.0.

    Source code(tar.gz)
    Source code(zip)
Owner
Akash Hamirwasia
A student with a strong passion towards programming and building products.
Akash Hamirwasia
A command line interface for file handling using JCore.FileSystem

JCore.FileSystem.Cli Table of Contents JCore.FileSystem.Cli Table of Contents Introduction Installation Uninstall Usage References Articles Packages T

Sniper Code 1 Jan 21, 2022
MyDrive is an Open Source cloud file storage server (Similar To Google Drive)

MyDrive is an Open Source cloud file storage server (Similar To Google Drive). Host myDrive on your own server or trusted platform and then access myDrive through your web browser. MyDrive uses mongoDB to store file/folder metadata, and supports multiple databases to store the file chunks, such as Amazon S3, the Filesystem, or just MongoDB. MyDrive is built using Node.js, and Typescript. The service now even supports Docker images!

null 2.8k Dec 30, 2022
JCore.FileSystem - File system API based on Node.js

JCore.FileSystem Table of Contents JCore.FileSystem Table of Contents Introduction Installation Uninstall Exposed API Network File Release Package Int

Sniper Code 1 Jan 21, 2022
Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input

Parse CSV with JavaScript Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according to

Matt Holt 11k Jan 6, 2023
A JavaScript PDF generation library for Node and the browser

PDFKit A JavaScript PDF generation library for Node and the browser. Description PDFKit is a PDF document generation library for Node and the browser

null 8.5k Jan 7, 2023
A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the link πŸ”— or via mail βœ‰οΈ which remains active for 24hours πŸ•™.

eShare | File Sharing App A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the lin

Akhil Bhalerao 7 Nov 20, 2022
Progressive Web App (PWA) built in Node.js & Express that automatically reloads/refreshes your browser, web page, and app when developing.

Expresso β˜•οΈ Checks for changes in your source and automatically reloads your browser, or web page, and app window. Makes development easier. Report Bu

Start Rev Technology 3 Oct 6, 2022
Test cloud functions, firestore triggers, fcm locally without need to upgrade for blaze plan πŸ”₯

Idea Test and try cloud functions with FCM locally and for free without upgrade to firebase blaze plan ?? What you will learn ??‍?? Setup NodeJs for c

Emad Beltaje 18 Dec 15, 2022
A Blaze apostas Γ© um cassino online que recentemente se tornou popular nas redes sociais.

Blaze Double ?? Bot Blaze A Blaze apostas Γ© um cassino online que recentemente se tornou popular nas redes sociais. Esse bot tem como objetivo enviar

Jocimar Costa 58 Dec 29, 2022
esse bot envia sinais, do gamer double blaze, direto para chats do telegram. leave the star ⭐️

Bot Blaze Double A blaze.com, site de aposta online, operada pela empresa Prolific Trade N.V. e bastante popular nas mΓ­dias sociais. Em um de seus jog

Elizandro Dantas 42 Dec 30, 2022
simple chat app created with nextjs, express, tailwindcss, and WebSockets

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Erfan Hanifezade 10 Sep 10, 2022
A file-sharing app providing end-to-end encryption of data.

secsend secsend is a file-sharing app providing end-to-end encryption of data. It provides a web application and a command-line interface (CLI). demo.

Adrien Guinet 28 Dec 22, 2022
API for P2P file sharing web application, Zed

zed-sharing-node Backend for file sharing app built with the MERN Stack Report Bug Β· Request Feature About The Project ??‍??️ This is the API for Zed,

Quavo 9 Nov 29, 2022
A CLI for peer-to-peer file sharing using the Hypercore Protocol.

A CLI for peer-to-peer file sharing (and more) using the Hypercore Protocol.

Hypercore Protocol 207 Dec 30, 2022
A template for WebSockets powered Cloudflare Worker project using graphql-ws

?? graphql-ws on Cloudflare Workers A template for WebSockets powered Cloudflare Worker project using graphql-ws. The worker serves the following rout

Denis Badurina 26 Dec 18, 2022
Lightweight WebSocketServer wrapper lib using ws-wrapper to wrap connected WebSockets

ws-server-wrapper Lightweight WebSocketServer wrapper lib using ws-wrapper and ws to wrap connected WebSockets. The only dependency is ws-wrapper itse

Blake Miner 17 May 9, 2022
A Cockpit plugin to easily manage samba and NFS file sharing.

cockpit-file-sharing A Cockpit plugin to easily manage samba and NFS file sharing. Table of Contents General Features Samba Manager Screenshot NFS Man

45Drives 190 Jan 3, 2023
Advanced Web3 file storing and sharing application.

Storz Winner of Decentralized Storage Infrastructure & Community Choice Award of Web3 Infinity Hackathon 2022 organized by Protocol Labs, Filecoin Fou

Anom Chakravorty 99 Dec 30, 2022
Moxiecode 5.6k Jan 1, 2023