Agree with OpenSecret, you may not need programable kbd. There are things you can do better in the kbd, but many you can do in the OS.
For macOS (OS X) the available tools, in my order of preference are:
Hammerspoon (can do things your kbd cannot because it can detect the state of your commuter. WiFi network, wake from sleep, current app, window size...)
Karabiner (warning, harder to deal with if you are on macOS 10.12, Sierra)
USBOverdrive
Of course, it's OK to use both. Things many functions in Hyper-key use and SpaceFn can be implemented in both.