Every developer knows that it is very difficult to develop functionality that would satisfy everybody's needs. There is always something missing or working not exactly the way that is needed. That is why Ample SDK is designed so that it can be extended / modified the way you need it.
Extending Components Base (Creating UI Elements and Languages)
At the core of the Ample SDK there is a componentization model that allows developer to create custom re-usable UI elements and entire UI languages. All UI languages enabled in Ample SDK are created using this approach.
Extending Runtime (Creating Plugins)
All objects in Ample SDK DOM are scriptable thus you can easily extend their functionality by prototyping. Ever wanted "addEventListenerOnce" to subscribe to an event for a single occurrence? You can do it by defining a new method on the base node object.