Viz is a self-hosted image management and processing platform designed for photographers and media teams. It provides a modern API-driven backend (Go) and a web interface (SvelteKit) for organizing, searching, and sharing image collection
Warning
This project is in active development. Features and APIs may change frequently. Feedback and contributions are welcome!
- Image Upload & Organization: Upload and automatically process images with thumbnails, EXIF extraction.
- Collections: Group images into collections for better organization.
- Search: Fast semantic and keyword search.
- Background Processing: Robust job queue (Watermill + Redis) for non-blocking image operations.
- Modern UI: Built with SvelteKit 5, featuring a responsive image grid, metadata view and editing, and drag-and-drop uploads.
- Deployment: Docker Compose support for easy set up (API, Frontend, Postgres, Redis).
Get started quickly using Docker Compose.
git clone https://github.com/garvageart/viz.git
cd viz
# Configure environment variables
cp .env.example .envdocker compose -f docker/docker-compose.yml up --build -d- Frontend & API: `http://localhost:7770`
See docs/BUILDING.md for detailed setup instructions, including Manual/Non-Docker development guides (Windows/Linux/macOS).
- Framework: go-chi Router
- Database: PostgreSQL (via GORM)
- Queue: In-Memory or Redis (via Watermill)
- Search: Full-Text Token-Based Search
- Image Processing: libvips
- Framework: Svelte 5
- Styling: SCSS
- Icons: Material Design
- Go Workspace: Managed via
go.workfor the backend. - PNPM Workspaces: Frontend (
viz/) and internal tools (scripts/js/) are managed as pnpm workspaces.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See LICENSE for details.
We welcome questions, feedback, and contributions! Here is how you can get in touch:
- Bugs & Feature Requests: If you find a bug or have a new feature idea, please search the existing issues or open a new one.
- Support & Discussions: For setup help, general questions, or architectural ideas, please start a thread in the repository discussions.
- Contributions: Pull requests are welcome! If you are interested in contributing code or documentation, feel free to open a pull request or start a discussion to align on changes.
Copyright (c) 2026 Les
