Context-first media vault for images, videos, and links.
ImgVault is a production-ready media vault ecosystem:
- Browser extension for fast capture and metadata-first workflows
- Native host companion for advanced download and local file handoff
- Web app for authenticated gallery, share links, and remote access
The core idea is simple: media is not useful without context. ImgVault stores the source, metadata, and organization data so your vault stays searchable and reusable over time.
- Save images from web pages via context menu
- Save links with metadata and preview support
- Process video workflows through native host integration
- Rich metadata fields (source URLs, page title, tags, dimensions, type, timestamps, hashes)
- For Noobs and For Nerds detail views
- Collections support
- Post-upload metadata editing
- Duplicate detection using contextual and hash-based checks
- Trash and restore flow
- Clear technical field visibility for debugging and auditing
- Image hosts: Pixvid, ImgBB
- Video hosts: Filemoon, UDrop
- Release assets published through GitHub Actions
✅ means the tool is built around that capability. partial means it has a related feature, but
not the same workflow or depth. - means it is not the point of that tool.
| Capability | ImgVault | Eagle | Raindrop.io | Immich | Hydrus Network | Google Photos |
|---|---|---|---|---|---|---|
| Browser capture from web pages | ✅ | ✅ | ✅ | - | partial | partial |
| Source URL, page title, and context-first metadata | ✅ | partial | ✅ | partial | partial | partial |
| Image/video/link records in one vault | ✅ | partial | ✅ | ✅ | ✅ | ✅ |
| Rich technical fields for debugging/auditing | ✅ | partial | partial | partial | ✅ | partial |
| Hash/context duplicate detection | ✅ | partial | partial | ✅ | ✅ | ✅ |
| Collections/tags/search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Native host or desktop companion | ✅ | ✅ | - | - | ✅ | partial |
| Authenticated web gallery and share links | ✅ | - | ✅ | ✅ | - | ✅ |
| Mobile camera backup | - | - | - | ✅ | - | ✅ |
| AI face/object/semantic search | - | ✅ | partial | ✅ | partial | ✅ |
| Open-source, self-modifiable stack | ✅ | - | - | ✅ | ✅ | - |
The closest product overlap is Eagle for design/reference collection and Raindrop.io for bookmark-style capture. Immich and Google Photos are much stronger for mobile photo backup, faces, albums, and polished gallery behavior. Hydrus is stronger for serious local tagging, duplicate workflows, and large personal media libraries.
ImgVault's current niche is the bridge: browser capture, source-aware metadata, local/native handoff, hosted gallery/share flows, and configurable upload providers in one repo. The obvious backlog is mobile backup, stronger AI search, better bulk tagging, and a more mature desktop library experience.
| Path | Purpose |
|---|---|
nextgen-extension/ |
Main browser extension (React + Vite + Tailwind + DaisyUI) |
native-host/ |
Native messaging companion (Rust/Tauri build path) |
web/ |
Next.js web platform (auth, gallery, share, settings APIs) |
docs/ |
Architecture notes, workflows, gotchas, and API docs |
old extension/ |
Legacy extension code kept for reference |
Production artifacts are published in GitHub Releases:
- Extension ZIP
- Extension CRX
- Native Host EXE
Use:
git clone https://github.com/FahadBinHussain/imgvault.git
cd imgvaultcd nextgen-extension
pnpm install
pnpm buildOutput:
nextgen-extension/dist
Load in browser:
- Open
chrome://extensions(or Edge equivalent) - Enable Developer Mode
- Click
Load unpacked - Select
nextgen-extension/dist
cd native-host
pnpm install
pnpm run cargo:buildOptional portable packaging:
pnpm portable:buildcd web
pnpm install
Copy-Item .env.example .env
pnpm devWeb app env variables are documented in:
Workflow:
Current behavior:
- Push and release events trigger extension + native host build jobs
- Extension artifacts include both
.zipand.crx - Native host artifact includes
.exe - Artifacts are attached to GitHub releases
- Right-click image
- Save to ImgVault
- Review metadata
- Upload to configured hosts
- Persist record in vault storage
- Start host-assisted download
- Save to local Videos folder
- Auto-handoff into gallery upload flow
- Upload to video hosts
- Persist full metadata and host URLs
- Use link/page save action
- Capture URL, title, and preview metadata
- Store as first-class vault item
- React 18
- Vite 5
- Tailwind CSS
- DaisyUI
- Framer Motion
- Next.js App Router
- NextAuth
- Drizzle ORM
- Neon Postgres
- Tailwind CSS + DaisyUI
- Rust (Tauri build target)
- Native messaging integration
- docs/project-overview.md
- docs/architecture.md
- docs/extension-workflows.md
- docs/web-app-api.md
- docs/build-and-release.md
- docs/known-gotchas.md
Contributions are welcome.
- Fork the repo
- Create a feature branch
- Make focused changes with clear commit messages
- Open a pull request with test/build notes
For local verification, use:
cd nextgen-extension
pnpm buildand
cd web
pnpm buildMIT License. See LICENSE.
Built with love by people who care about fast workflows, clean metadata, and long-term usability.
Contributions are always welcome:
- Bug reports
- Feature requests
- Documentation improvements
- Design and UX polish
- Code contributions
If ImgVault helps you, consider starring the repo and sharing it with others.








