https://github.com/mattf96s/exifbrowser
A local-first file browser using OPFS and web workers. Demo soon.
https://github.com/mattf96s/exifbrowser
comlink opfs react remix shadcn-ui sst tailwindcss typescript
Last synced: 6 months ago
JSON representation
A local-first file browser using OPFS and web workers. Demo soon.
- Host: GitHub
- URL: https://github.com/mattf96s/exifbrowser
- Owner: mattf96s
- Created: 2024-01-07T22:18:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-08T15:03:27.000Z (over 1 year ago)
- Last Synced: 2025-04-13T00:34:42.662Z (6 months ago)
- Topics: comlink, opfs, react, remix, shadcn-ui, sst, tailwindcss, typescript
- Language: TypeScript
- Homepage:
- Size: 737 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# exifbrowser.com
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](https://www.inaturalist.org/) upload interface.
_Very much a work in progress._
https://github.com/mattf96s/exifbrowser/assets/68327846/b9727bc5-1954-434a-89c1-03575cc11eeb
## Tech Stack
- Remix (React)
- SST (AWS CDK)
- Comlink (Web Workers)
- IndexedDB### Notable Web API's
- OPFS (Origin Private File System)
- File System Access API
- Web Workers### Notable design patterns
- @tanstack/virtual (virtualized list)
- On-the-fly image compression using a web worker before rendering in the browser (single biggest perf gain).## Development
TODO
## TODO List
### Features
- 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.### Refactors / Improvements
- Cleanup + consistent code style
- Responsive design
- Browser support### Deployment
- Deployment pipeline with SEED
- Add privacy-focused analytics/error tracking (avoid session recordings etc.)### Documentation
- Add to this README
### Misc
- Add a license
- Add a contributing guide