Bookify is a gem for converting Markdown documents into book style, two-column PDFs. It starts by converting the Markdown to HTML using Redcarpet. Then it walks through the DOM, and when it encounters a registered component type, renders it using Prawn PDF.

source code


Jargon (no longer active) is a publishing platform for writing about code. It supports an extended Markdown syntax for embedding code snippets in articles, and publishing is handled by checking in content to a GitHub repository.

blog post


ChessForge is a chess opening explorer written in Ember on top of a Rails API. It has a database of 75 million chess positions and shows frequency and win / loss / draw percentages for different opening moves, bucketed by player strength.

Rails 5 Chess

To play around with Rails 5's new Action Cable feature, I built a simple chess server that allows two people to play a game a chess.

source codeblog post


A Markov chain Twitter bot that uses Dwarf Fortress stories as its corpus.


What Foods Are In Season? is a Sinatra app that shows what fruits and vegetables are in season in your state.

whatfoodsareinseason.comsource code

Withings Graphs

Withings-graphs is a small app that connects to the Withings OAuth API and displays data using amCharts.

withings-graphs.herokuapp.comsource code


Evolution is a program I wrote that tries to mimic a source image by randomly drawing polygons.

source codeblog post

Urbanairship Gem

The Urbanairship Ruby gem is a library I wrote while developing Groupon's push notification system. It allows you to send push notifications to iOS and Android phones using the Urban Airship API.

I maintained the gem for two years while working at Groupon, and it's now maintained by the Urbanairship team.

source codeblog post


Grams was a weekend hack project I did that collects Instagrams from a specific neighborhood and tweets the best ones.

@logangramssource code


Lovemap is a tile-based mapping engine for the LÖVE game development framework written in Lua.

source code


text/cats is an innovative content format that represents JSON data in the shape of playful kittens. It was first used in Groupon's public and internal APIs.