A collab with Golf, I wrote a GIF engine that converts chess notation into chess GIFs. While existing services use server-side generation that take many seconds to execute, Gfychess runs completely client-side in optimized Javascript and is able to render full games in milliseconds for an instantaneous user experience. The key to Gfychess’s speed is row caching. GIFs utilize LZW compression, and by abusing the LZW clear code, we are able to always terminate rows on byte boundaries which allows us to cache rows effectively. As a side note, the GIF specification would be greatly improved if 0ms inter-frame durations were respected.