Rethumb.com: Making painless thumbnails a reality
In this Customer Spotlight we talk to Pedro Verruma, a 31-year-old software engineer from Portugal, and founder of rethumb. The startup offers an image processing HTTP API that accepts image transformation or information requests, caches them and sends the response as fast as possible thanks to DreamObjects.
What is rethumb and how were you inspired to create it?
Rethumb is an image manipulation service. It can be used to create thumbnails, resize images and get EXIF data from photos. All using a HTTP API that can be called directly from an image tag in HTML or using a HTTP client like curl or any programming language.
The idea of creating such service came to me in 2011 when I has tired of writing code to resize images and thought that would be cool to do something that could automate the process. I also had a lot of curiosity on how to build scalable systems, so it was the perfect opportunity.
What details can you share about its architecture?
Rethumb is PHP, MySQL, Beanstalkd and nginx plus Python and Node.js for some maintenance and monitoring scripts. I’m also using Laravel for our client dashboard.
The architecture is quite simple: it uses nginx to receive API requests, PHP to process them and DreamObjects to store the processed images. MySQL is used to keep state and location of all images processed.
There are some services with similar functionality that we look up to, but we are always looking for new algorithms and ideas from the community to add in the future, like new image formats.
How do you deploy and configure rethumb?
Deploy is made using a phar file that contains all dependencies and configurations. The process of configuring new machines is still a manual thing. Creating a proper devops cycle of development is next on the roadmap.
What are your plans for the future?
In the past few months, my main concern has been building a usable client dashboard, a new website, a rock solid API and a very scalable infrastructure. All of that is done, so I can now focus on the new features since the current set is very small. We plan to add things like cropping, image filters, face recognition, OCR, color extraction, format conversion, HTTP2, etc.
Later we will start to add servers on other locations.
Why did you pick DreamObjects?
I needed a scalable place to store the processed images, something like a cache that could handle terabytes of data, if it comes to that.
I have been a happy DreamHost customer since 2006 and the price is amazing so the decision to try it came naturally. A very strong point is the zero cost of operations like PUT and GET which can get costly on other providers.
Because DreamObjects uses a S3-compatible API it is very easy to find mature PHP libraries that work right out of the box — it was a perfect fit.
DreamObjects has become more and more stable over the years and is now a central piece in our service with great results.
Our customers are constantly surprising us with cool uses for our DreamCloud. If you’re using DreamObjects or DreamCompute in a neat way, we’d love to talk to you! Contact us via email, Twitter, or Facebook and you could be featured here!