I can understand this must seem confusing to new users. Let me try to point out some things:
- RapidWeaver comes with a bunch of page types to give you certain functionalities (e.g. downloads, photo albums, contact forms)
- Stacks is a plugin which does not supply a certain functionality but a blank canvas that allows you to arrange the content elements on your page more or less freely
- Stacks comes with a bunch of stack elements to cover basic content types (there is a stack for text, one for images, some for columns etc.)
- Stacks however was designed to enable 3rd party developers to contribute by developing additional stacks (= elements for a stacks page), which has been a huge success.
- Most of these add-on stack elements will extend the functionality in a similar way new page types do for RW: there are stacks for contact forms, photo albums, slideshows, downloads, music player and tons more.
Still Stacks only dealt with the content part of the webpage and the other elements (header, footer, sidebar etc.) were taken care of by the RapidWeaver theme. Until Foundation was developed.
The basic idea behind Foundation is to have a RW theme that is as stripped-down as possible just to function within RW and to do all the rest of the design on a Stacks page. In other words: to use Stacks not just for the content part, but for the entire page.
That’s why the Foundation stacks are so many (again the same principle: each stack extends the functionality of the basic tool) and why they cover areas like “header” and “navigation”.
Additionally, there is at least one way how you can bring content from other pages inside a RW project onto a stacks page: another plugin called PlusKit (by www.loghound.com). PlusKit gives you not an additional page type but the option to import content from one page into another page by simply adding a very short element of code. Say you have a text page and below that you want to show a contact form. Then create a contact form page and a PlusKit page, hide both in the navigation and below your text add
@import((nameofyourcontactpage))
Then RW will place the contact form below your text.
I hope this makes the architecture a little clearer.
A personal remark from my side: I appreciate Stacks and Foundation as ways to make it easier for users to create a page. However the code generated often is bloated (especially if you’re nesting stacks in each other.