There is (as often) more than one way of solving this.
The dirty and easy way of doing it is with Blocks and Regions, like in Drupal 7. You'll need regions in your theme to be laid out the way you want (and be responsive). Then you manually add nodes/blocks to the regions you have laid out. Even the method of choosing nodes/blocks can be done in different ways.
The sophisticated way of building such a page is with the Layout builder and Paragraphs or a similar module that allows you to reference things.
One Content Type will serve as the container for the layout and all the other content you want shown there. Although it's possible to apply it to only the one node, the one you'll be using for the front page, you decide what makes sense structurally and procedurally in your project.
With Paragraphs you create different reference possibilites for the content you want displayed, and then arrange them with the Layout builder. The Paragraphs and Layout builder parts are usually done up front, you build them once and have it ready when new content is created.
When you publish new nodes and want to update the front page node to show it you will only have to change the references within the front page node to keep the layout and have different content in each "box area".
You can, of course, create more than one layout in your theme, so when needed also choose a different layout for the new content combination.
It's a super powerfull new approach in D8 that makes your Drupal site feel like a website builder software. It does require some effort up-front, so it all depends on your specific needs.