Build

TYPO3 Development: Sitepackages and Extensions

We build TYPO3 installations from the templating layer up to your own extension. Not a bought-in theme bent into shape, but a structure that fits your content and does not fall apart at the next major update.

What TYPO3 development looks like in practice

Most enquiries do not start with a technical requirement but with an irritation: content can only be maintained the long way round, a second language does not fit the concept, or a feature exists twice because two extensions are attempting the same thing.

Symptoms like these almost always have the same cause. The installation has grown over years, every requirement was solved on its own, and nobody was given the job of holding the whole thing together. Development then means understanding what is there and deciding what stays.

The sitepackage as the foundation

In TYPO3, everything that makes up the look and structure of a site belongs in an extension of its own. Templates, TypoScript, backend layouts, the configuration of content elements: together they form the sitepackage.

The advantage is unspectacular and decisive. Everything sits in files, files sit in Git, and Git answers the question of why something is the way it is. Configuration that only exists in the database never answers that question.

TYPO3 programming or configuration?

A good many requests for TYPO3 programming can be met without a line of PHP. Large parts of TYPO3 are a configuration system: what a content element can do is described in the TCA, how it is rendered in Fluid and TypoScript. Working there keeps you inside the intended framework and keeps the installation updatable.

Real programming begins where custom data models, business logic or interfaces come into play: a booking process with states, an import that validates and merges data, an evaluation that exists nowhere else. That is where an Extbase extension with model, repository and controller comes in.

The distinction is not hair-splitting; it is the basis of every estimate. Configuration is manageable and easy to change, while custom code wants testing, documentation and attention at every major update. Which of the two categories your requirement falls into is something we tell you up front.

Custom extensions where the standard runs out

TYPO3 brings a lot with it, and the extension repository covers further standard cases. A custom extension is worth it when custom data structures are involved: products with variants, events with registration, locations with opening hours, applications with a file attachment.

We build extensions like these with Extbase, because it produces the backend module, the validation and the frontend output from one data model. It costs a little more care at the start and gives that care back at every later change.

Written with editors in mind

An installation is only finished when the people who work in it every day can work in it. We label fields in the language of the organisation, hide what this particular case does not need, and set defaults so the usual job works without anyone having to think about it.

We show you what that looks like in the backend before handover. If something turns out to be awkward, we change it while changing it is still cheap.

What we typically work on

Sitepackage

The foundation of every custom TYPO3 site: Fluid templates, TypoScript, backend layouts and configuration in one versioned extension instead of scattered through the database.

Custom content elements

Content Blocks or classic elements via TCA and Fluid, so editors get exactly the building blocks they need and none they can use wrongly.

Extbase extensions

Your own data models with a backend module, frontend output and validation, for cases the standard extensions do not cover.

Interfaces

Connections to a CRM, ERP, PIM or a search engine such as Solr, in both directions and with defined behaviour for the moment the other side goes down.

Multilingual and multi-site

Several languages and several domains inside one installation, with content, permissions and configuration cleanly separated.

The editing interface

Field labels, help texts and sensible defaults. An interface editors can find their way around without a manual.

Common questions

Why build a sitepackage instead of using a ready-made theme?

A theme carries assumptions that rarely match your own content. What looks quick at first turns expensive as soon as you depart from it: you override templates, hook into someone else’s extension points, and end up with a layer nobody can hold in their head.

A sitepackage contains only what the project needs. It lives in Git, it can be changed traceably, and it survives a major update far better because it does not occupy anyone else’s extension points.

Will you also carry on with existing code?

Yes. First we look at how the code is put together, whether it lives in Git, which TYPO3 version it assumes and how much of it still matches current practice.

Sometimes carrying on is the right move, sometimes rebuilding the templating layer cleanly is cheaper over time. You get that assessment before anyone touches anything.

Do you work with Composer?

Yes, Composer-based installations are the normal case. They make dependencies explicit, allow reproducible deployments, and are the precondition for keeping updates plannable.

With older installations that predate Composer we first agree whether the switch should be part of the job. It is rarely trivial, but it pays for itself at every update afterwards.

How do you make sure your changes survive an update?

Mostly by staying inside the extension points TYPO3 provides: our own extensions rather than edits to the core, documented configuration rather than changes to system files, TypoScript and TCA rather than hand-editing the database.

We also keep an eye on what the TYPO3 version in use has already marked as deprecated. Using something today that disappears in the next major release only postpones the work.

Something that goes beyond the standard?

Describe what the site needs to do. We will tell you which part TYPO3 already brings, which part an extension solves, and which part is real development effort.