Mask for TYPO3
Mask is the standard tool for custom content elements in TYPO3. Create backend masks without PHP: define fields, assign Fluid template, done.
Book a free initial callEditors need dedicated content elements, not another workaround with text fields
Every TYPO3 website reaches the point where the built-in content elements are no longer sufficient. A team carousel, a pricing table with toggles, a product teaser with image, text and CTA button - such requirements otherwise end up in the RTE as HTML soup or in an overcrowded FlexForm container. Mask solves this problem fundamentally: editors get custom backend masks with exactly the fields they need. No PHP classes, no hand-written TCA, no ext_tables.sql.
Mask has been the most widely used framework for custom content elements in TYPO3 since 2016. Over 1,500 active installations (as of Packagist, April 2026) and its inclusion in the official TYPO3 documentation as the recommended approach for custom content elements confirm its status as the de facto standard.
Typical use cases
Corporate websites with complex page structures. Marketing teams need 15 to 30 different content elements: hero banners, testimonials, accordions, tabbed content, downloads with preview images, contact cards. Mask maps each of these as its own backend form. Editors see only the fields relevant to the respective element - no confusion from irrelevant options.
Multilingual projects with consistent structure. Mask elements fully support TYPO3 translation mechanisms. Fields can be configured as l10n_mode exclude (not translatable) or prefixLangTitle (translatable with indicator). For websites in 5+ languages, this saves editorial time because the structure remains identical and only the content is translated.
Relaunch projects with existing data. Organizations migrating from an older system (WordPress, TYPO3 with Gridelements or TemplaVoila) need clean content structures. Mask elements can be exported as standalone extensions via mask_export. This makes content definitions versionable and deployable through CI/CD pipelines.
Technical architecture
Mask stores the configuration of all content elements in a single JSON file (mask.json or config/mask.json since Mask 8). This file describes fields, types, palettes and the mapping to Fluid templates. When activating or updating, Mask automatically generates the necessary TCA configurations and database fields.
The field types cover the full TYPO3 standard: String, Integer, Float, RichText, Date, DateTime, File (FAL), Inline (IRRE for nested structures), Select, Checkbox, Radio, Link, Slug, Color Picker, Tab, Palette. Since Mask 8, JSON-native fields and an improved API have been added.
Fluid templates reside by default under fileadmin/templates/mask/ or in a configurable path. Each content element has its own template, optionally with Partials and Layouts. Mask registers the elements in the New Content Element Wizard, including icon and description.
Dependencies are minimal: Mask requires only the TYPO3 Core (v11, v12, v13 are actively supported). No additional extensions needed. For the export workflow, mask_export comes as an optional add-on.
Common problems and solutions
Field changes on production systems. If a Mask field is changed on the staging system (type, field name) but the database on production is not updated, errors arise. Solution: use mask_export so that configuration changes travel through Git and deployment pipelines. Alternatively: run Database Compare in the Install Tool after every deployment.
Performance with many content elements. Websites with 40+ different Mask elements generate a large TCA configuration. TYPO3 loads this with every backend call. Solution: group elements sensibly, deactivate unused ones, keep the backend cache active. From Mask 8 onward, TCA generation is significantly more performant than in earlier versions.
Nested elements (IRRE) and sorting. Inline relations (e.g. slider slides within a slider element) sometimes lose their sort order during copy/paste. Solution: explicitly define a sorting field and secure <f:for> with sortBy in the Fluid template. In Mask 8.x, this behavior is more stable than in 7.x.
Migration and version compatibility
Mask actively supports TYPO3 v12 and v13. The current stable version (Mask 8.x) runs on both LTS releases. TYPO3 v11 is covered by Mask 7.x but receives no new features.
For projects still running TemplaVoila or DCE, Mask offers a clear migration path. DCE elements can be manually converted to Mask: rebuild fields in the Mask GUI, adapt Fluid templates, migrate data via SQL script. Gosign has carried out this process on projects with 20+ DCE elements and estimated the effort at 2 to 5 days depending on complexity.
Starting with TYPO3 v13, the native Content Block API is also available. For existing Mask projects, there is no urgency: Mask and Content Blocks coexist without issues. New projects on pure TYPO3 v13 can evaluate whether the native approach is sufficient or whether Mask offers advantages through its GUI and export workflow. Gosign advises on a project-specific basis which approach produces the lowest long-term maintenance effort.
An often underestimated aspect is documentation. Mask elements are self-explanatory for developers (fields, types, templates), but editors need guidance: which fields are mandatory? What image dimensions are optimal? What happens if the description field is left empty? Since version 7, Mask supports description texts per field that appear as tooltips in the backend. Gosign additionally creates an internal editorial handbook per project documenting every Mask element with screenshot, field description and best practices. The effort is about half an hour per element but saves countless support queries during operation.
For the initial setup of a Mask project with 15 to 20 content elements, Gosign estimates 3 to 5 development days, including Fluid templates, backend preview and mask_export configuration. Individual new elements during ongoing operation take 1 to 4 hours, depending on nesting complexity and template design. For agencies using Mask as standard across all client projects, a library of reusable Mask elements pays off: basic teaser, accordion, tab container and hero banner, included in new projects as a Composer package via mask_export.
Free initial call: 30 minutes with a TYPO3 specialist
We analyse your project, estimate effort and timeframe, no-obligation, no preparation needed.
Discuss Mask project, 30 min, free25 years of TYPO3 experience · 800+ extensions analysed · AI-accelerated development
AI-accelerated development: 70% faster
TYPO3 Update & GDPR Audit
We upgrade your TYPO3 installation cost-effectively to the current LTS version - including all extensions, even outdated and unmaintained ones.
All extensions migrated
Including outdated, unmaintained or custom developments.
Fixed-price offer
Transparent costs, no hidden rework.
AI-accelerated
30-50% cheaper than market average thanks to AI-assisted code analysis.
Zero data loss
Complete data migration with rollback safety.
GDPR Audit: We audit your TYPO3 installation for GDPR compliance - cookie consent, tracking, extensions, forms and hosting - and implement all measures cost-effectively.
Gosign is a Hamburg-based digital agency with 25 years of experience in TYPO3 development. We have analysed over 800 TYPO3 extensions and today develop with AI assistance up to 70% faster than with classic methods. Our clients are mid-sized companies, universities and public institutions across Europe.
Last updated: April 2026
Book a free initial call
30 minutes with a TYPO3 specialist, no-obligation.