Most projects need custom content elements besides the ones available from the core. These could be a list of links, an image slider, an element for an introduction text, etcetera. The core already provides enough functionality for this. Compared to the possibilities supplied by TemplaVoilà the only thing missing is an area inside a content element where an editor can put other content elements. In many cases this can be solved for a design by supplying extra page templates, but if this functionality is needed the extension “gridelements” can provide it.
In most cases the tt_content table (where content elements are stored) contains enough fields to build a content element from. In the core file typo3/sysext/frontend/Configuration/TCA/tt_content.php all the fields of tt_content are configured. Some of the fields are for internal use by TYPO3 CMS, but many are meant for specific content element types and can easily be used by our custom content element.