* [Getting started](README.md) 
  * [QMK Overview](qmk_overview.md)
  * [Build Environment Setup](build_environment_setup.md)
    * [Vagrant Guide](vagrant_guide.md)
  * [Make instructions](make_instructions.md)
  * [FAQ: Creating a Keymap](faq_keymap.md)
  * [FAQ: Compiling QMK](faq_build.md)
  * [How to Github](how_to_github.md)

* [Features](features/README.md)
  * [Layer switching](key_functions.md)
  * [Leader Key](leader_key.md)
  * [Macros](macros.md)
  * [Dynamic Macros](dynamic_macros.md)
  * [Space Cadet](space_cadet_shift.md)
  * [Tap Dance](tap_dance.md)
  * [Mouse keys](mouse_keys.md)
  * [Unicode](unicode.md)

* Reference
  * [Glossary](glossary.md)
  * [Keymap overview](keymap.md)
  * [Keycodes](keycodes.md)
    * [Basic Keycodes](basic_keycodes.md)
    * [Quantum Keycodes](quantum_keycodes.md)
  * [The `config.h` File](config_options.md)
  * [Customizing Functionality](custom_quantum_functions.md)
  * [Documentation Best Practices](documentation_best_practices.md)
  * [Unit Testing](unit_testing.md)
  
* For Makers and Modders
  * [Adding a keyboard to QMK](adding_a_keyboard_to_qmk.md)
  * [Adding features to QMK](adding_features_to_qmk.md)
  * [Hand Wiring Guide](hand_wiring.md)
  * [ISP flashing guide](isp_flashing_guide.md)
  * [Modding your keyboard](modding_your_keyboard.md)
  * [Porting your keyboard to QMK](porting_your_keyboard_to_qmk.md)

* For a Deeper Understanding
  * [How Keyboards Work](basic_how_keyboards_work.md)
  * [Understanding QMK](understanding_qmk.md)
  
* Other Topics
  * [General FAQ](faq.md)
  * [Using Eclipse with QMK](eclipse.md)