A local-first, CLZ-inspired collection manager for serious collectors.
Current releases are treated as pre-1.0 beta releases.
Collectarr keeps your personal library local, fast, and offline-friendly, while
using collectarr-core for canonical metadata and collectarr-sync for
optional multi-device sync.
- 🗂️ Local-first ownership — your owned/wishlist state lives in the app
- 🧩 9 active media kinds — comics, manga, anime, books, games, board games, movies, TV, music
- 🛠️ Collector workflows — variants, barcode, bulk edit, custom fields, import/export
- 🔍 Provider-backed metadata — rich metadata via Core provider integrations
- 🧪 Power-user/admin tooling — ingest, proposals, provider health, image cache controls
- 📦 Offline Drift database with cached catalog snapshots
- 🖼️ CLZ-style workspace (grid/table/carousel, filters, sidebars, inspector)
- ➕ Smart add/search flows with provider previews and bundle-aware anchors
- 🎵 Media-aware edit/inspector UX (music/game/video specific fields)
- 🔁 Optional sync support through
collectarr-sync - 📊 CSV import/export and TMDB import
- 🎨 Animated accent theming across libraries
- ✨ Cleaner auth/login shell and platform-aware tooling placement
- 🧭 Metadata compare flows in edit UX (including context entrypoints for supported kinds)
flutter pub get
dart run build_runner build
flutter analyze
flutter testflutter run -d chrome `
--dart-define=COLLECTARR_API_BASE_URL=http://localhost:8010 `
--dart-define=COLLECTARR_SYNC_BASE_URL=http://localhost:8020 `
--dart-define=COLLECTARR_SYNC_KEY=collectarr-sync-dev-keyflutter run -d windowsCollectarr App owns:
- local storage and shelf UX
- add/edit/import/export/inspector workflows
- media-aware presentation + desktop ergonomics
collectarr-core owns canonical metadata, provider integrations, ingest/admin
logic, and backend media services.
See docs/library-parity-contract.md.
See docs/implementation-plan.md.
Current active tracks:
- finish moving the remaining heavy kind editors onto shared metadata contract primitives
- complete the last generic shell de-generalization in
lib/features/library/generic - formalize
KindWorkspaceConfigso generic workspace rendering stops branching on kind names - upgrade folder sidebar to an optional CLZ-like tree view with persisted expand state
- converge add/edit/admin dialogs on a shared UI shell
- create one panel grammar for titles, actions, scrolling, and footers
- add a density system for airy-to-dense power-user layouts
- standardize inspector/detail/edit section ordering across kinds
- add a global activity/history page alongside the existing per-item activity timeline
- extend calendar support with a live subscribable ICS feed and reminders
- add local notifications for loans, releases, sync conflicts, and imports
- keep Plex/Jellyfin/Emby watched sync as a low-priority follow-up to the local watch-session flow
- add a reusable importer framework for MAL, AniList, Trakt, Simkl, and Kitsu personal lists
- split
LibraryAddDialoginto controller, layout, and kind adapter layers - keep admin proposal/editor UX and stats surfaces aligned with Core contracts
Collectarr App uses Semantic Versioning 2.0.0 and configurable update channels (stable, beta, nightly).
See docs/versioning-policy.md for full details on versioning rules, update channel semantics, and release verification.
Releases are manual (workflow_dispatch). Pushes to main run CI only.
Published release assets include:
- GitHub Release notes + tags (
v0.x.y-beta.n) - GHCR web image:
ghcr.io/collectarr/collectarr-app-web - Android
.apk - Windows
.zip+.exe - macOS
.zip+.dmg - Linux
.tar.gz+.deb
| Repo | Purpose |
|---|---|
collectarr-core |
Canonical metadata catalog, providers, image delivery, admin APIs |
collectarr-sync |
Optional personal sync service |