Hey there, and welcome back!
It's been a really long time since you last heard from us. Sorry about that. We did however try to make this release count - and we think we did just that! 💪
While it might seem like a minor thing, actually improving the search makes all the difference for the user. You see, searching is at the core of almost all online behaviour. There's a reason that "googling" has become a verb, and I always chuckle when I hear sentences like "Just Google it on YouTube!" (which is technically less wrong than it first sounds - but I disgress... 🤔)
We wanted to give our users the search experience they deserve and are used to on the internet, which is far more difficult than it first sounds - if we try to do it ourselves.
Our search worked, and mostly returned the results one would expect - but the performance was, let's say, mediocre at best. 😐
We spent a lot of time investigating what could be improved to boost performance - and I mean a LOT of time - without much success. After all, building search is not easy. ... or is it?
Algolia offers a hosted search API for sites like ours to use. Basically we just provide the data to be searched, and they handle the actual search request - complete with typo tolerance, custom rankings and more advanced features like synonyms or rules. All those features are nice and all - but they're not what we were after. Our #1 priority was improving the performance of our search, while still making sure our users receive the results they'd expect.
That was our requirement to Algolia... and boy, did they deliver! It's not just fast, it's - well, look: 👀
Yes, that's one ms. No, I didn't click multiple times to get that result. 🤷♂️
While we're at it...
Just as the search got so fast, it became really apparent that large images take some time to load. I mean, who wants to wait on the images loading after you already see the search results being generated?
So - we fixed it. Usually one would go about and automatically resize the image to the required dimensions on their own servers (requiring processing power), save it for future requests (requiring storage) and then deliver it to the user (requiring bandwidth). What if there was someone who already did all that? Turns out: there is!
tiny.pictures is a service that acts both as a reverse proxy and as a CDN, all while being able to apply a variety of operations on the source image.
Sorry, what was that? 🤔 Alright, again:
The search thumbnails are now loaded from tiny.pictures. If they don't have the image yet, they load it from our server once, then resize it, crop it (even trying to keep faces in focus) and save it on their servers. For every following request they just immediately return the small version - resulting in lightning fast image load times! ⚡️
Alright, but what else?
Of course, there are a few other things here and there. Most of them are minor reworks, some small tweaks here and there. We'll list a couple of them below.👇
Thanks for reading!
As always, if you have any suggestions or ideas, or just wanna give us feedback: we're more than happy to hear from you! Get in touch! 🙂
Search is now powered by Algolia
Search thumbnails are retrieved via tiny.pictures
Subcategories are shown before the categories' resources to allow for quicker access
LazyCron is now triggered via the system cron instead of on page load - which should improve performance by lowering the load on our webservers
When resending an invite to a user, the invitations expiration date is reset
Admin login via email now works (previously only worked using the internal username)