The firmware powering all our keyboards, Kaleidoscope, is open source and freely available on Github. If you want to build complex macros, add in joystick emulation, change how the Model 100 speaks USB, or make keys do things we haven't thought of yet, Kaleidoscope is where you'd start.
Kaleidoscope is incredibly powerful, but we've done our best to make it newbie-friendly. We built it on top of the Arduino core, to make it easy for folks who aren't familiar with embedded development or C++ to be able to do amazing things. At the same time, you're not restricted to the Arduino IDE when working with it. If vi or Emacs is your weapon of choice, everything's set up to build from the command line using standard tooling.
Kaleidoscope supports all the things you'd expect, like layouts stored in EEPROM, serial communications, full NKRO, mousekeys, and crazy USB tricks. Most new features can be added to Kaleidoscope as plugins, of which we have many already.