I wanted to create a custom home/index (non-template) page for WordPress while having it serve other pages under the root directory. To my knowledge, this is not well documented and Google search results are of solutions that are rather “hacked” and require more work than required. There are two main steps to get this working.
1. Create 2 blank pages: home and blog. In wp-admin/settings/reading, set the “front page displays” like this.
Once done, the home page should render the front-page.php without any templates and the blog at the registered permalink with the template/theme chosen.