I use two different methods of doing one-page sites, depending on how fixed the sections are.
1. Have each section's HTML structure in the template, and use FastField (or pdoTools) to fetch the various fields and TVs of each section. This makes for a larger template, or you can break the sections out into separate chunks.
2. Use getResources (or pdoResources) to load the sections, and have the content of the resource provide the HTML structure of each section. In this case I use a lot of TVs for section content, with Form Customization to control what editors see and don't see. Admin users can see the Content field to adjust the section structure, while Editor users only see the TVs.
You should look into Content Blocks at ModMore. It's not free, but it is a very nice way to build up sections within resource content.
https://www.modmore.com/extras/contentblocks/