Self-hosted personal inventory management for collectibles, tools, spices — anything you want to keep track of. Built for collectors who need to check their inventory in the wild (a record store, a garage sale) without an internet connection.
- Offline-first Android app with CRDT-based sync
- Web UI for management at home
- Multi-user with local accounts and OIDC/SSO
- Multilingual web UI (English, French, German, Spanish, Japanese, Chinese, Italian)
- Pluggable database: SQLite, PostgreSQL, MySQL/MariaDB
- Imports from CLZ products, generic CSV (with column mapping), and Tangible JSON backups
- Exports to CSV and JSON
- Shared grocery list with depleted-item feed and store/aisle sorting
- MCP server at
/mcpfor AI assistant integration (Claude, Copilot, etc.) - Self-hosted, container-first (Docker/Unraid)
Status: pre-alpha. Active development.
| Path | Contents |
|---|---|
server/ |
FastAPI backend (Python 3.12), importers, sync engine |
web/ |
SvelteKit web UI |
android/ |
Native Android app (Kotlin + Jetpack Compose + Room) |
shared/ |
Shared schemas; generated OpenAPI clients land here |
docker/ |
Dockerfile, compose examples, Caddy snippet |
docs/ |
User and developer documentation |
- User guide — collections, items, photos, templates, sharing, sync, mobile app
- Admin guide — first-run setup, users & invitations, OIDC/SSO, backups, upgrades, observability
- Deployment guide — Docker, Unraid, Postgres, reverse proxy
- Configuration reference — every
TANGIBLE_*environment variable - Development guide — running the stack locally
- Security — security architecture, audit history, vulnerability reporting
See docs/development.md.
- Deployment guide
- Standard Docker: docker/docker-compose.standard.yml
- Unraid: docker/docker-compose.unraid.yml
- With PostgreSQL: docker/docker-compose.postgres.yml
