I think that rather than using config for widget definitions and html markup for the dashboard layout, that we can encapsulate layout and configuration by using React JSX components.
I'm thinking along the lines of:
app.js
// psuedocode
import { Dashboard, Row, Widget } from components
import specs
...
...
```