There are a couple of reasons you may want to build your own keyboard. The first is simple aesthetics, and building your own means you can give it whatever color scheme you like. The other reason is the feel of the keyboard, and this will give you the freedom to use whatever key switches you prefer. For instance, you could use heavier switches on your WASD keys for gaming. If you want to build your own, Datulab Tech has a great 3D-printable design and tutorial.
This design is for a 68-key mechanical keyboard, and it’s very compact. You probably won’t want to use this in place of your full-size keyboard at home, but it would be great for traveling. It runs on an Arduino Pro Micro, which appears as a USB HID device when you connect it to a computer, and has Cherry MX switches. If you want, there are provisions for adding NeoPixel-style individually-addressable RGB LEDs so you can have some nifty light effects.
To build this, you’ll need to order the PCB, and you can contact Datulab Tech to get that. You’ll also need whatever key switches you want to use. The frame of the keyboard is 3D-printed, and you can either purchase or print the key caps. Assembling the PCB does require SMD soldering for the small LED modules, so that will take some experience to do. But, the final result is a compact keyboard that is customized to fit your needs.