How to use a Structure including a homepage As far as I can tell, it's mandatory to have a Single as the site index.

I always use a Structure for organising my pages, and different entry types for different page templates. I intend to use a nav tag to output the menu. However, this time my site nav looks like this:

Homepage         (site.com/)
    Subpage 1    (site.com/subpage-1)
    Subpage 2    (site.com/subpage-2)
    Subpage 3    (site.com/subpage-3)
About            (site.com/about/)
    Subpage 4    (site.com/about/subpage-4)
    Subpage 5    (site.com/about/subpage-5)
Services         (site.com/services/)
    Subpage 6    (site.com/services/subpage-6)
    Subpage 7    (site.com/services/subpage-7)


If I have to use a Single as the home page, how do I put subpages under the home page?

Previously I've used the nav tag, and just hardcoded a link to the home page before the rest of the li's, but that's not going to work this time as the homepage has subpages.

EDIT: I've updated my sitemap to include a URL structure, which is the real challenge here.
You can place your homepage entry in a Structure by setting its slug to __home__.

Doing so causes the entry to answer for the / (empty) URI, and it even places the little "home" icon in place of the Entry's slug in the CP.

However, if you do this, its best not to nest pages under the homepage, because then their URIs would be of the form: __home__/subPageSlug

In other words, taking the pages from your example, it's best if your structure can be:

Homepage         (site.com/)
Subpage 1        (site.com/subpage-1)
Subpage 2        (site.com/subpage-2)
Subpage 3        (site.com/subpage-3)
About            (site.com/about/)
    Subpage 4    (site.com/about/subpage-4)
    Subpage 5    (site.com/about/subpage-5)
Services         (site.com/services/)
    Subpage 6    (site.com/services/subpage-6)
    Subpage 7    (site.com/services/subpage-7)


If you want the benefit of placing the homepage in the Structure, but you need to organize some pages as descendants of the homepage, you could, in theory, rig it up... But it'd get pretty janky:


Give the homepage the special __home__ slug.
Build an index template to answer for the descendant pages by finding the intended entry, setting a entry variable, and extending your regular Page template.
Create an .htaccess rule to remove the __home__ segment from a URL if anybody accidentally lands on it, to prevent duplicate content from appearing at multiple URLs.


However, there are major drawbacks to this second approach: First, you won't be able to use your entries' url() method... or, you'll have to somehow filter out the offending __home__/ segment out of the URL any time you loop through entries or use the {% nav %} tag to generate your site nav. Also, this alternative option also foils Craft's built-in slug-uniqueness checking, so if you're not careful you could end up with duplicate slugs for some pages. In general, I don't recommend it... but it's a fun thought exercise.