How do you create an application for the user to design the keyboard screen?

There is this extension:

Or use one of the dynamic component extensions to build a keyboard.