It sounds like you just want a custom index page for your WordPress site. In that case, create a new page in the site (/wp-admin/post-new.php?post_type=page
). Then create a home page template file and assign it to the newly created page (the custom template assignment is in the Page Attributes widget on the edit page).
Finally, configure WordPress to use the new page as the home page, rather than the default latest posts list (assign here: /wp-admin/options-reading.php
). Note that doing this will also remove any entry point for viewing the newest posts by date, but you can also assign a page for that on the reading options config (and assign the appropriate template file to it).
This custom home page template file may contain anything you’d like, but it will also execute within the standard WordPress environment so you can use the entire WP API when rendering.
The location for this code is in the folder of whatever WordPress template you happen to be using (/wp-content/themes/...theme name...
).