There are different technology choices to create frontend plugins in TYPO3.
For pure output it is often sufficient to use a FLUIDTEMPLATE in combination with DataProcessors. See also Creating a custom content element.
For scenarios with user input and or complicated data operations consider using Extbase.
It is also possible to create a frontend plugin using Core functionality only.