Before we start creating our package, here are a few words about the functionality and purpose of packages:
They can hold a single or several themes together
You can include blocks which your theme needs
You can check the requirements during the installation process in case your package depends on other blocks, configurations, and so on
A package can be used to hook into events raised by concrete5 to execute custom code during different kind of actions
You can create jobs, which run periodically to improve or check things in your website
These are the most important things you can do with a package; some of it doesn't depend on packages, but is easier to handle if you use packages. It's up to you, but putting every extension in a package might even be useful if there's just a single element in it—why?
You never have to worry where to extract the add-on. It always belongs in the
packages
directoryAn add-on wrapped in a package can be submitted to the concrete5 marketplace allowing...