A simple self-hosted web application that allows you to recompress JPEG files directly in your browser.
It's difficult to overstate how useful the jpeg-recompress tool is. It can shrink a JPEG file to a fraction of its size without any perceptible loss of image quality. So whenever I publish a photo on the internet, I always run it through jpeg-recompress first. So obviously it makes it an indispensable tool in my toolbox.
The problem is, of course, that I don't always upload photos from my primary machine that has jpeg-recompress. In fact, I more often upload photos from my Android device and iPhone these days. Sure, the JPEG files produced by the devices are not as big as the ones that come out of a regular camera. Still, there is no harm in shaving off a megabyte or two before uploading a file. All things equal, it's more economical in every respect.
In short, I decided to spend a rainy weekend cobbling together a simple PHP-based application that provides a no-frills web interface to the jpeg-recompress tool. And after a few hours of tinkering, Tim was born.
Being a one-trick pony, Tim is supremely easy to use: upload a JPEG file, get its recompressed version in return. You can choose between different quality settings: from Low (maximum size reduction, worst quality) to Very high (minimum size reduction, the highest quality).
By default, Tim doesn't keep any files (or any user data at all, for that matter). You can change that by enabling the Keep files option. Actually, Tim is a two-trick pony, as it can also strip all metadata from the recompressed file if the Remove metadata option is enabled. This can come in rather useful when you publish photos on social media (that shaves off a couple of kilobytes of file size).
You can give Tim a try using my own instance, or you can host it on your own local Linux machine or remote server. The source code is available in the project's GitHub repository, while the Linux Photography book provides detailed instructions on how to install and run Tim.