Fast thumbnails for
online media.

About

Thumbrella brings fast, beautiful thumbnails to any online gallery. Supporting 100+ formats: photos, video, documents, 3D models, and other media.

Run the server with one command and zero config. The open-source server comes with all the features and functionality. Then connect with client packages for the browser or any of the other supported languages.

Also check out the Thumbrella Cloud for a distributed server and caching system. This genuine free tier is built for real every day projects; connected in two clicks.

First Steps

🐳 Start Docker server
docker run -it --name tbr --publish 3114:3114 --rm \
  thumbrella/server:latest
📦 Client library tools
export TBR_CONNECT=http://localhost:3114
uvx thumbrella-client basic \
  https://demo.thumbrella.dev/media/math-guide.odt
🖼️ Command line thumbnail
npx @thumbrella/server thumb \
  brilliant-document.odt thumb.jpeg

Grab a Client

For browser galleries and file browsers, the <tbr-thumb> web component is the recommended starting point. It is provided by the JavaScript client and handles loading states, caching, lazy loading, and placeholder images for you.

  • Defines custom <tbr-thumb> HTML element
  • Zero runtime dependencies, only needs fetch
  • Automatic lazy streaming and batch requests through viewport visibility
  • Persistent client caching integrates with server and HTTP
  • No build imports, works directly in simple web pages
  • Placeholders for failures, even when disconnected or misconfigured
  • Works alongside <img> and other DOM elements
  • Thumbrella server supports 100+ formats
<script type="module">
import { tbrSetup } from "https://js.thumbrella.dev/1.4/tbr.js";
tbrSetup("http://localhost:3114");
</script>
<h1>Hello, Thumbrella</h1>
<tbr-thumb src="https://demo.thumbrella.dev/media/pocket-game.webp"></tbr-thumb>
<tbr-thumb src="https://demo.thumbrella.dev/media/padres-stereo.exr"></tbr-thumb>

The package source comes with several starting point examples. See the client documentation for more details and examples.

Grab a Server

Self hosting your own Thumbrella server is designed to be straightforward and simple. Find the prepackaged option that best fits your environment.

Terminal window
# Run and manage binaries through node
npx --yes @thumbrella/server serve
# Docker container
docker run -it --name tbr --publish 3114:3114 --rm thumbrella/server

By default the server will listen on port 3114. This can be override by setting $TBR_PORT to a different value. There are several other settings also managed by environment variables. These can be validated by running thumbrella check for a simple report and diagnostics.

Binaries are distributed through Github Releases. The attested archives contain the portable and static executable.

See the Server Documentation for more commands and configurations. The server is also quite simple to compile for yourself.

Thumbrella Cloud status on status.thumbrella.dev

Sponsors

Great looking media projects have excellent thumbnails. Anyone can build incredible project using Thumbrella. The ideal future of Thumbrella’s development and features will be driven by sponsors.

For teams and developers looking to get the most out of Thumbrella, a sponsorship goes a long way to securing the future of this project and service for all users.

See the sponsors page for more details.