redis

Chicago Gang History

Jekyll migration to WordPress, premium hosting, custom relational database, newsletter, contact form and AdSense integration.
chicagoganghistory.com

WordPress / Pantheon / Route 53 / CloudFront

After 7-8 months the Jekyll version of Chicago Gang History we started seeing some scaling issues with media assets on CloudCannon. Rather than hacking it I instead worked with CGH author Zach Jones to perform a complete site redesign, leveraging existing ad revenue to migrate them to WordPress self-hosting.

The redesign was very successful and inbound search traffic continued to lift. A year following the redesign homepage hits are now greater than 70K per month.

Putting WordPress into Hyperdrive

1 minute read Published

Increase the speed of stock WordPress more than 300% using a single plug-in.

Loading Pages Faster than the Speed of Light with Fetch Inject, Redis, Vultr, Load Impact and LEMP.

Chat Applications With Redis, Docker and Go

4 minute read Published

Create your own web-based chat app using Redis, Docker and Go.

For several weeks I’ve been thinking about how to go about creating a chat application. After a knowledge drop from Kent Safranski I was inspired to stand-up the chat app using Redis. For the experiment I decided to use Go given the concurrency affordances baked into the language. So I took A Tour of Go and hit the blogs to see what I could find in the open source community.

Reading Redis, Go, & How to Build a Chat Application made me aware of Redigo, a Go client for Redis, and helped demystify use of Redis’ PubSub with Go. The article was a solid introduction and did a great job breaking things down, but ultimately left me wanting a prototype to try things out on the Web. After some more sleuthing on DuckDuckGo I discovered an open source demo app meeting my requirements and providing a great sandbox for experimentation.

In this article I’ll cover how to create a chat application which uses Redis and Go by leveraging open source software and Docker, and use Ngrok to expose the app to the Web over HTTPS.