Нужно иметь свободную структуру данных на клиенте.
Про IndexedDB почитал, как бы без SQL но не понятно что со структурой данных.
Прошу подсказать какие есть альтернативы?
Ну да, бизнес логика - полностью на вашей совести)). Что касается CRUD данных - это не сложнее чем работа с массивом, разве что требуется сериализация/десериализация при этом. JSON.stringify / JSON.parse с этим отлично справляются.