---
title: "Introduction into using site packages"
manual: "TYPO3 Explained"
version: "12.4"
permalink: "https://docs.typo3.org/permalink/t3coreapi:site-package-introduction@12.4"
source: "ExtensionArchitecture/SitePackage/Introduction.rst"
rendered: "2026-10-21T15:29:37+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v12 has reached end-of-life as of April 30th 2026 and
> is no longer being maintained. Use the version switcher on the top
> left of this page to select documentation for a supported version of TYPO3.
>
> Need more time before upgrading?
> You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

# Introduction into using site packages {#site-package-introduction}

## Site package benefits {#site-package-benefits}

Developing a website can be approached in different ways. Standard
websites usually consist of HTML documents which contain text and reference
image files, video files, styles, etc. Because it is an enterprise content
management system, TYPO3 features a clean separation between design, content and
functionality and allows developers/integrators to add simple or
sophisticated functionality easily.

### Encapsulation {#site-package-encapsulation}

Using extensions is a powerful way to get the most out of TYPO3. Extensions
can be installed, uninstalled and replaced. They can extend the core TYPO3
system with further functions and features. An extension typically
consists of PHP files, and can also contain design templates (HTML,
CSS, JavaScript files, etc.) and global configuration settings. The visual
appearance of a website does not necessarily require any PHP code. However, the
site package extension described in this tutorial contains exactly two PHP files
(plus a handful of HTML/CSS and configuration files) and is an *extension* to
TYPO3. The PHP code can be copied from this tutorial if the reader does not
have any programming knowledge.

### Version control {#site-package-version-controll}

In building the site package as an extension, all relevant files are stored in
one place and changes can easily be tracked in a version control system
such as Git. The site package approach is not the only way of creating TYPO3
websites but it is flexible and professional and not overly complicated.

### Dependency management {#site-package-di}

TYPO3 extensions allow dependencies to other extensions and/or the TYPO3 version
to be defined. This is called "Dependency Management" and makes deployment easy
and fail-safe. Most TYPO3 sites are dependent on a number of extensions. Some
examples are "News" or "Powermail". A site package extension which contains
global configuration settings for these extensions will define the dependencies
for you. When the site package extension is installed in an
empty TYPO3 instance, all dependent extensions are automatically downloaded from
the [TYPO3 Extension Repository](https://extensions.typo3.org) and installed.

### Clean separation from the userspace {#site-package-separation}

In a TYPO3 installation that doesn't use extensions, template files are often
stored in the `fileadmin/` directory. Files in
this directory are indexed by TYPO3's [File Abstraction Layer (FAL)](https://docs.typo3.org/permalink/t3coreapi:fal@12.4) resulting in
possibly irrelevant records in the database. To avoid this the `fileadmin/`
area should be seen as a "userspace" which is only available for editors to
use. Even if access permissions restrict editors from accessing or manipulating
files in `fileadmin/`, site configuration components should
still not be stored in the userspace.

### Security {#site-package-security}

Files in `fileadmin/` are typically meant to be publicly accessible by
convention. To avoid disclosing sensitive system information (see the
[TYPO3 Security Guide](https://docs.typo3.org/permalink/t3coreapi:security@12.4) for further details),
configuration files should not be stored in `fileadmin/`.

### Deployment {#site-package-deployment}

TYPO3 follows the *convention over configuration*
paradigm. If files and directories in the site-package
extension use the naming convention, they are loaded automatically as
soon as the extension is installed/activated. This means the
extension can be easily deployed using Composer.
Deployment can be automated by system administrators.

### Distributable {#site-package-distributable}

By virtue of the motto "TYPO3 inspires people to share!", the site package
extension can be shared with the community via the official [TYPO3
Extension Repository](https://extensions.typo3.org) and/or in a publicly
accessible version control system such as [GitHub](https://github.com).

Last, but not least, configuration settings in the site package can
be overwritten using TypoScript setup and constants.
