Reusable Elements for User-Defined Layout

I haven’t done a lot of playing around with this idea, but I’m curious if anyone has any thoughts for best method of implementing this.

The idea is I want my users to be able to fully customize the layout of their dashboards using components that will be built as reusable elements. My initial thought was to nest reusable elements within each other with some kind of ID database field to determine which internal element to show where. I imagine that this will wreak havoc on the performance of my app, however. Anyone have any ideas before I start trying to figure this out?

Edit: maybe an example would make sense.

So let’s say I have a row group containing two columns. In each column, the user can select either graph (a) or table (b). Graph and table are reusable elements as groups containing the desired components. My initial thought was to have a database field for user where they can select column 1-a or b and column 2- a or b. Then put both elements in both columns and show them conditionally.

However, this doesn’t seem like a good solution when there could be many different combinations.