Here’s a really simple approach: a .zip archive of a folder (Wetterberg’s Wonderland of Wariable[sic] Delays") containing your main patchers and your abstractions and whatever explanatory materials you want to include (videos, HTML docs, etc.). Examples can have filenames like "1. Doppler.maxpat", "2. Flanging.maxpat", etc. and other files could be "1. Doppler.mp4" and/or "1. Doppler.htm", with a "index.htm" file for a title page and table of contents.
Tabs are easy to create. You just make a [patcher] object with an argument that’s the same as the name you want in the tab (e.g. [patcher "Example 1"]), and then you select the "Show on Parent Patcher Tab" option in the patcher inspector of that subpatcher window.
Of course, if you plan to have all your examples as subpatches of the same main patch, you’ll need to take some care to make sure that only the patcher you want to hear is audible, and that the other patchers have their audio disabled.