Project gif.zone

Posted by Brahm Lower on Wed 25 July 2018

Table of contents

New project!

That's right! This is a new project, somewhat inspired by Adam Savage's "1 day build" projects on Tested, this project is intended to be a "1 month build", keeping it very limited in scope and actually achievable. So what is this new project you might be asking? If you couldn't tell by the title (then you should probably be asking yourself some other questions), this will be a gif repository.

But Brahm, there are already gif repository/indexing/search sites.

You're right, but here's the thing, I don't like the big players in the gif hosting/searching scene. We've got Giphy, Tenor and Imgur as primary gif sources these days, but each has some problems that I've grown quite tired:

  • Viewing a source image contains additional styling in the browser (Tenor example, Giphy example)
  • Websites are slow and/or over stylized (Tenor, Imgur)
  • Extreme amounts of advertising (Imgur)
  • Lack of curation (Giphy/Tenor)
  • Limited search functionality (Giphy/Tenor/Imgur)
  • Unusual file formats like gifv (Imgur)
  • Too much focus on the social media (Giphy, Tenor, Imgur)

Literally all I want is something that's easy going on the browser, doesn't shove social media down your throat, supports detailed queries, and lets you link to gifs/webms without any funky styling.

So where will this site live? You guessed it, at the gif.zone! (please excuse the rather plain construction page, I only put a few minutes into it)

How hard can it be

This should be pretty straightforward, the project requirements are:

  • Easy, detailed, and quick search (caption, description, type, num views)
  • Extremely light browser footprint
  • Ignore social media (pretty much a case of "just don't do the thing")

Technical goals for this project will focus more on strengthening my UI design and project delivery abilities. The backend consists of a CRUD endpoints and authentication, so there's nothing special in its design, but to keep it interesting I will be writing it in Rust (It's my new favorite language- sorry Python). These technical goals all boil down to the following:

  • Stateless backend written in Rust using JWT for auth
  • Possibly use object storage for gifs (optional at this point)
  • Responsive frontend with React, with excellent mobile support
  • Delivery via docker, hosted on AWS (possibly on Kubernetes rather than ECS)

Development updates

The last part worth mentioning is that this project will eventually be open sourced, and that I plan to make blog posts as development progresses. My last two projects (a game server provisioning service, and mobile idle game) have been closed source, and thus haven't really lent themselves to public blog posts. Since the scope of this project is much smaller, it seems like an ideal candidate for blogging. I've done some pretty thorough and interesting work on the closed source projects, so I'm excited to be able to share similar ingenuity in this project.

This is just the introductory update in what should be at least 3 or 4 posts. The next post will be a more in depth post about the project specifications and how everything will be designed, and then from there posts will be progress updates about technical milestones and whatnot.