The specific concepts leveraged by @wq/app include:
- A specific URL structure that is observed by both the application itself and its REST API.
- A client-side URL router (@wq/router) and page renderer (@wq/react + @wq/material)
- A model-driven,
localForage-backed cache of REST API responses (@wq/model), with an offline-capable outbox to sync form submissions back to the server (@wq/outbox).
- A wq configuration object generated by the URL router on the server, that describes the available routes and underlying models.
- An optional authentication endpoint provided by the REST API, including CSRF tokens to prevent cross-site attacks.
- A simple plugin API to facilitate adding optional functionality such as interactive maps or even a fully custom data model (via plugin hooks).