Generating pages with multiple views based on url parameter
Create 7 different views, one for each content type. Create a block display for each view, and use block layout to put them all on one page.

Use contextual filters for the block view to get an argument from the URL. I believe it's a bit odd to configure: 
"in the section 'What to do if the URL is not available' select ' Provide default value' and select 'Raw value from URL from the dropdown box. From the 'Path Component' box select the position in the URL that your contextual filter gets its value."

This is a straightforward Drupal approach, should be performant.

Alternatively, you could use Views aggregation to use only 1 view, divided into 7 different groups, and use CSS wizardry to adjust the layout.

Which approach you prefer depends on whether you want to be able to customise each view, and whether you want to use UI rather than CSS to control layout.