Exifbrowser screenshot

Exifbrowser

Author Avatar Theme by Mattf96s
Updated: 8 Jan 2024
5 Stars

A local-first file browser using OPFS and web workers. Demo soon.

Categories

Overview

Exifbrowser is a local-first file explorer that utilizes the Origin Private File System (OPFS) and web workers. With Exifbrowser, users can drop a folder of 1000+ images onto the page and it will generate a list of all the images and their EXIF data in just a couple of seconds. This tool serves as a base for a custom iNaturalist upload interface and is currently a work in progress.

Features

  • File tree directory navigation instead of a flat list, allowing for separate sessions based on the directory.
  • Experimentation with different performance patterns such as queues, better caching with IndexedDB and the cache API, cancelable promises, and async iterators.
  • Ability to add GPS data to images using a GPX or similar file.
  • Running certain transformations in parallel based on the available number of cores.
  • Code cleanup and consistent code style improvements.
  • Responsive design.
  • Support for various browsers.

Installation

To install Exifbrowser, follow these steps:

  1. Clone the repository from https://github.com/mattf96s/exifbrowser.

  2. Install the required dependencies by running the following command:

    npm install
    
  3. Start the development server using the following command:

    npm run dev
    
  4. Open your browser and navigate to http://localhost:3000 to access Exifbrowser.

Summary

Exifbrowser is a local-first file explorer that offers fast and efficient browsing of large image folders while displaying their respective EXIF data. With features like file tree navigation, image editing, and parallel transformations, Exifbrowser aims to provide users with a seamless and powerful image management tool. Although still a work in progress, the project demonstrates the potential of utilizing web technologies like OPFS, web workers, and IndexedDB to create responsive and feature-rich applications.