Creating a Plone Product from Scratch
Relying too much on tools that generate code for you can get in the way of developing your own programming skills and gaining an in-depth understanding of how Plone products work.
This tutorial is for those running Plone 3.3 and higher.
If you're running an older version of Plone, why not take a moment to upgrade? We'll wait.
This documentation is for creating an eggified Plone product from the ground up without using ZopeSkel, Paster, or ArchGenXML. The example here shows how to create a product called Products.StartingPoint.
Why build a product from scratch?
Product-generating tools set up the framework, or "skeleton" of your product. This can save you coding, debugging, and fixing time—especially at the beginning. But as you continue to work within these frameworks, you're likely to encounter files that you will never use (as of this writing, Paster generates 50 files with more than 300 lines of code, much of which will not be used in any product that you create).
While all this extra code won't necessarily do any harm, it does add to the complexity of your product. And while these tools offer some convenience, relying on them too much can get in the way of developing your own programming skills and gaining an in-depth understanding of how Plone products work.