As !! is commonly considered as bad code style (although it depends on the situation) the project should be reworked to use better solutions where it's possible.
The framework is currently heavily dependent on WordUpProvider.
This makes customization for developer defined databases really hard as providers are created before application creation, so there is no way to define the custom database in WordUp.init()
To make customization easier WordUpProvider should be replaced by a FileProvider implementation.
A lot of WordUp's functions are suspend functions. Although Kotlin Coroutines are a really nice tool for making functions asynchronous it should probably be up to the developer to decide which tool he wants to use.
Therefore WordUp's functions should not rely on Kotlin Coroutines.
WordUp should use a Room SQLite database implementation. Before implementation the scheme of the database should be designed to preserve a precise plan during development.
Plan could be provided hand drawn or by other ways.