Just did that before the holidays, the only thing to add there is probably the firmware. I'm curious what other recommendations there are, but I found TMK (https://github.com/tmk/tmk_keyboard) to be pretty nice.
Checkout QMK, it's what TMK is based on and overall is more powerful. However, both are great tools. BootmapperClient and several others are also very good.