Skip to content

silverbucket/inbox-rs

Repository files navigation

Inbox RS

A universal inbox for saving URLs, notes, images, emails, and audio — backed by remoteStorage. Your data stays on your own storage server, not someone else's cloud.

What it does

Web App — A Svelte app that displays all your saved items in a card grid. Connect to any remoteStorage-compatible server to view, browse, and manage your inbox items. Click any card to view full details, edit, convert to a todo, or delete. The header also links to a Plugins page with downloadable browser and Thunderbird builds.

Browser Extension — A Chrome/Firefox extension for quickly saving things while browsing:

  • Save Page — Saves the current page as a bookmark with title, og:image preview, favicon, and site name. For tweets, it captures the full tweet text and any attached images.
  • Quick Note — Jot down a note with no page context needed.
  • Right-click: Save Link — Save any link to your inbox.
  • Right-click: Save Image — Downloads and saves the actual image binary (not just the URL).
  • Right-click: Save Selection — Saves highlighted text as a note with a link back to the source page.

Mobile App — A native iOS/Android app (Flutter) for quick capture on the go. Drop in text notes, audio recordings, or photos and send to your remoteStorage inbox. Includes offline queue with automatic sync.

Thunderbird Extension — A Thunderbird MailExtension (128+) for saving emails to your inbox:

  • Opens from the message toolbar when reading an email.
  • Pre-fills subject, sender, and body from the current email.
  • Includes an optional notes field for your own annotations.
  • Saves a mid: URI link back to the original email in your mail client.

Architecture

packages/
  rs-module/    # Shared remoteStorage data module (types, schemas, CRUD)
  web/          # Svelte web app (card grid, view modal, todos)
  extension/    # Chrome MV3 + Firefox WebExtension (popup, context menus, content script)
  thunderbird/  # Thunderbird MailExtension (message toolbar popup, email saving)

All four packages share the @inbox-rs/rs-module for consistent data types and storage layout.

Storage layout

/inbox/items/{uuid}          # JSON metadata for each item
/inbox/files/{uuid}.{ext}    # Binary files (images, audio)

Item types

Type Description
bookmark URL with title, description, og:image, favicon. Optionally includes body (embedded content like tweet text) and filePath (downloaded image).
note Freeform text with title and body.
image Downloaded image binary with metadata and optional source URL.
audio Audio recording with duration.
document Uploaded file with metadata.
email Email with subject, body, sender, optional notes, and mid: URI link.
todo Task with title, completion status, and optional notes. Any item can be converted to a todo.

Quick start

See DEVELOPMENT.md for full setup instructions.

npm install
docker compose up -d          # Start local remoteStorage server
npm run dev -w packages/web   # Start web app on localhost:5173
npm run build                 # Build web app and package downloadable plugin artifacts into dist/
npm run build:extension       # Build browser extension only
npm run build:thunderbird     # Build Thunderbird extension only

After npm run build, the web app output in packages/web/dist/ includes:

  • downloads/inbox-rs-chromium-<version>.zip
  • downloads/inbox-rs-firefox-<version>.xpi
  • downloads/inbox-rs-thunderbird-<version>.xpi

That makes the built dist/ folder self-contained for static hosting.

Releasing

gh workflow run release.yml -f bump=patch    # or minor / major

The web app version tracks the root package.json. The browser and Thunderbird extensions have their own version namespaces and only move when their bundle changed since the previous tag — see docs/RELEASING.md for the runbook.

Tech stack

  • Svelte 5 with runes ($state, $derived, $effect, $props)
  • Vite 5 for both web app and extension builds
  • remotestorage.js for data sync + remotestorage-module-shares for Sharesome integration
  • TypeScript throughout
  • Chrome Manifest V3 / Firefox WebExtension APIs / Thunderbird Manifest V2
  • Armadietto as the local dev remoteStorage server

License

GPL-3.0

About

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors