Inspiration

We're not sure anymore. It started at as a joke, and then we took it 'too' far.

How we made it

To begin, Javascript everywhere. Initially, we used Electron, but then we decided something on the internet was more fun.

We had to port the electron app to a mix of NodeJs and client side javascript. All of our APIs, both internal and external use ExpressJs.

In the middle of everything is a core API, responsible for handling images. The front app submits custom octocats to the API, and the API uses our internal twitter API to post. The Library uses our core API to find and load images.

Everything is delivered through Docker via the AWS EC2 Container Service.

We use AWS Route53 for our DNS and Cloudfront with ECS Elastic Load balancers pointing to an Nginx revers proxy to handle HTTP traffic.

Challenges we ran into

We originally started on an electron app but as we expanded the project we wanted to deploy the app to a web server, so we had to port from electron to Node JS and client Javascript

The way the image was originally processed used several image elements that ended up being combined into one canvas element in order to be saved and uploaded. However, the combination process was difficult.

The only major issue we had with the server infrastructure was getting the different containers to talk each other.

Also, the Twitter API, it's awful.

Accomplishments we're proud of

  • Getting Canvas to work
  • Getting Twitter to behave
  • Extracting assets from octodex
  • Getting AWS to be friendly

What we learned

Go big or go home

What's next for custocat.com

Wherever it takes itself. It has its own personality you know.

Share this project:
×

Updates