We've seen plenty of custom controllers over the years, but for those who prefer the tactile feel of a keyboard, Adafruit has put together a guide to make your own little keyboard-gamepad.
The idea here is to use a set of Cherry MX mechanical keyboard switches to make a small, handheld keyboard controller that still feels pretty good. You'll need to get a few parts 3D printed, solder together a few connections and create a custom circuit board, but the end result is a fully customisable miniature keyboard that will likely have a ton of different uses. Head over to Adafruit for the full guide.
Custom Bluetooth Cherry MX Gamepad [Adafruit]