A local-first file explorer making use of the new Origin Private File System (OPFS) and web workers.
Drop a folder of 1000+ images onto the page and it will generate a list of all the images and their EXIF data in a couple of seconds.
Demo coming soon (after work).
This is the base for a custom iNaturalist upload interface.
Very much a work in progress.
exifbrowser-demo.mov
- Remix (React)
- SST (AWS CDK)
- Comlink (Web Workers)
- IndexedDB
- OPFS (Origin Private File System)
- File System Access API
- Web Workers
- @tanstack/virtual (virtualized list)
- On-the-fly image compression using a web worker before rendering in the browser (single biggest perf gain).
TODO
- File tree directory navigation instead of a flat list. Would allow for separate sessions based off the directory.
- Experiment with different perf patterns (queues, better caching with IndexedDB + cache API, cancelable promises, async iterators etc.)
- Image Editing
- Ability to add GPS data to images with a GPX (or similar) file.
- Tests
- Run certain transformations in parallel depending on the number of cores available.
- Cleanup + consistent code style
- Responsive design
- Browser support
- Deployment pipeline with SEED
- Add privacy-focused analytics/error tracking (avoid session recordings etc.)
- Add to this README
- Add a license
- Add a contributing guide