Step-by-Step Guides for TYPO3 

Welcome to the TYPO3 Step-by-Step Guides β€” a growing collection of practical, hands-on tutorials to help you accomplish real tasks in TYPO3, one step at a time.

Here to learn something? 

You’re in the right place.

These guides are short, focused, and easy to follow. Each one walks you through a single task β€” no detours, no surprises. Whether you're setting up TYPO3 for the first time or customizing content elements, you’ll find just one way to do it here: the way that works.

  • No prior TYPO3 experience required
  • Guaranteed outcome at the end of each guide
  • Less than 30 minutes per guide

πŸ‘‰ Start exploring the guides now β€” or check out the Guides Registry to see the full list.


Want to contribute? 

We’d love your help β€” whether you want to fix a typo or write your own guide. You don’t need to be a professional writer, just someone who knows how to do something in TYPO3 and wants to help others succeed.

The Contributor Guide shows you how to get started.

Edit Your Public My TYPO3 Profile 

Categories: Beginner Author: @mabolek

Public My TYPO3 profiles are an opportunity to showcase who you are and what you do to the rest of the TYPO3 community and beyond. Your personal profile page allows you to showcase your bio, contact information, and achievements β€” everything protected by fine-grained privacy settings.

Learning objective 

In this step-by-step guide you will edit your profile information and change the visibility (privacy) settings for your information.

Here's an example of a real public profile, to show you how your profile could look:

Profile page with a persons photo, contact info, and biography. Two certification badges for TYPO3 CMS and an association membership badge are displayed. There are also social media links and an email icon.

Prerequisites 

Tools and technology 

Knowledge and skills 

  • How to use a web browser

Watch the video 

Watch this YouTube video to follow along with the steps below.

Edit your profile 

The edit profile page shows you information about your profile image (avatar), as well as editing fields for your profile information.

  1. Fill in the information you like in the appropriate fields.
  2. Towards the bottom of the page, click the black Add button to create links that can be listed on your profile. Each link has three elements:

    • An orange drop-down menu for selecting the type of link. Example: Facebook or Bluesky.
    • A field for the URL or username you would like to link to, depending on your selection in the drop-down menu.
    • A checkbox to highlight the link. Checking it will display the link at the top of your profile.

Screenshot of a webpage showing links management with options to mark links as highlighted. The links displayed are for bsky.app, typo3.social, linkedin.com in an example format, and github.com/typo3. Each link has options to remove or highlight. A dropdown menu displaying social media and website icons and names, including Website, X, Facebook, Instagram, Mastodon, Bluesky (highlighted), Threads, YouTube, XING, LinkedIn, GitHub, GitLab, Stack Overflow, and Other.

  1. Click the orange Save button at the bottom of the page to save your changes.

Configuring the visibility of your information 

Your profile information may still not be visible on your public profile page. This is because your profile information is hidden by default, so you must update its visibility settings.

To the right of almost every field is a drop-down menu where you can choose the visibility of that field's information. Here's an example of how it looks:

A dropdown menu with three options: Public (selected), Logged-in users, and Private, each with an icon indicating the level of access or security.

  1. For each field, use the drop-down menu to select the visibility setting you would like. The visibility setting is updated automatically, so there is no need to click the Save button.

Access more privacy and visibility settings 

You can configure the visibility of even more information on the Privacy settings page.

  1. In the navigation menu to the left of the form, click on Privacy settings. You will be taken to a Privacy settings page looking something like this:

Privacy settings interface showing options for adjusting visibility of personal information like first name, title, email, and memberships. Privacy levels include Public and Logged-in Users. A View Public Profile button is on the right.

  1. For each entry, use the drop-down menu on the right to select the visibility setting you would like. The visibility setting is updated automatically, so there is no need to click the Save button.

Check your profile 

It is now time to check how your profile is looking. As the fields that are visible may change whether you are logged in or not, it is also good to look at the profile in your browser's incognito mode or private browsing.

  1. Click the black View public profile button to see your public profile as it looks now.
  2. Copy the URL of the page.
  3. Open a new incognito mode or private browsing window. In this window you are no longer logged in.
  4. Paste in the URL of your profile page in the address bar.
  5. Hit enter to visit the URL. You can now see your profile as others see it, if they are not logged in.

If you are missing some information, you can go back to the Privacy settings page and set more fields to Public.

Summary 

Congratulations! You have now edited your public My TYPO3 profile and changed the visibility settings for the fields.

Next steps 

Now that you have edited your public My TYPO3 profile, you might like to:

  • Ask a colleague for their My TYPO3 username and visit their profile at my.typo3.org/u/<username>.

Resources 

Sign Up for a My TYPO3 Account 

Categories: Beginner Author: @mabolek

By registering for My TYPO3, you create one centralized account for all your activities in the TYPO3 ecosystem. Among other things, you can use ut to create a Slack account, book online certifications, attend training courses, and contribute code.

Learning objective 

In this step-by-step guide you will sign up for your own My TYPO3 account.

Prerequisites 

Tools and technology 

  • A computer with a web browser and an internet connection
  • An email address

Knowledge and skills 

  • How to use a web browser

Registration form 

  1. Visit my.typo3.org/register to start the process.
  2. Fill in the registration form. Take care to read the instructions below each field.
  1. Check the I have read and accept the privacy policy checkbox if it is OK for you.
  2. Click the orange Register button. If you have errors in the form, you will be told so. Otherwise, you will be directed to the my.typo3.org home page. It will display this confirmation message:

A notification banner with a green check mark icon reads: "Your registration is almost completed, you will receive an activation email soon," with a close button on the right.

Confirm your email adress 

During the registration process, you will need to confirm your email address.

  1. Check your email. You should have received an email with the subject "Confirm your registration on my.typo3.org."
  2. Open the email. It should look similar to the screenshot below:

A confirmation email from My TYPO3 asking the user to confirm their account by clicking an orange Confirm your account button.

  1. Click the orange Confirm your account button. You will be directed to the my.typo3.org website, where a message will tell you that your email has been confirmed.

You should now be able to log in with your new account at my.typo3.org/login.

Summary 

Congratulations! You have now registered your My TYPO3 account.

Next steps 

Now that you have completed the registration process, you might like to:

Resources 

Sign Up for a TYPO3 Slack Account 

Categories: Beginner Author: @mabolek

Slack is an instant messaging and team collaboration tool. It is our main channel for communication in the TYPO3 community. This guide explains how to get access to TYPO3’s Slack workspace through your new or existing my.typo3.org user profile.

Learning objective 

In this step-by-step guide you will sign up for a TYPO3 Slack account.

Prerequisites 

Tools and technology 

  • A computer with a web browser and an internet connection

Knowledge and skills 

Request a Slack invite 

  1. Log in to your My TYPO3 account at [my.typo3.org/login] (https://my.typo3.org/login>). After logging in, you will be directed to your profile page.
  2. On your profile page, look for the Connected Services section.
  3. Click on the Invite Me button. An email with an invitation link will be sent to your email.

Screenshot of a user profile page with a focus on the Connected Services section. Options to connect Slack, labeled Your collaboration place for all things TYPO3, and Discord, labeled Your place to talk about TYPO3 and hang out, are shown.

Confirm invitation mail 

  1. Open your email client and look for the invitation email.
  2. In the email, click on the Join Now link. A Slack user account setup page will open in your web browser.
  3. When prompted, enter your desired password for the TYPO3 Slack workspace.
  4. Complete your Slack profile setup.

Slack invitation screen to join the TYPO3 workspace, showing Join your team on Slack. An invite from Stefan Busemann appears, with a Join Now button and profile pictures of some members.

Summary 

You can now access TYPO3 Slack and chat with the community at typo3.slack.com

Next steps 

Now that you have your Slack account up and running, you might like to:

Resources 

Set Up TYPO3 with DDEV 

Tested in: TYPO3v13 Categories: Beginner Installation Author: @philippefekete

DDEV enables you to quickly spin up a complete TYPO3 development environment without complex manual setup, providing a ready-to-use, containerized setup that mirrors a real server. Setting up TYPO3 with DDEV helps you start projects faster, ensure consistency across different machines, and streamline your development workflow by automating the configuration of PHP, the web server, and the database β€” all with just a few simple commands.

Learning objective 

In this step-by-step guide, you will learn to install and configure DDEV, create and run a TYPO3 project locally with Composer, and manage your development environment using essential DDEV commands.

Prerequisites 

Tools and technology 

Knowledge and skills 

  • How to use a command-line interface

Watch the video 

Watch this video to follow along with the steps below.

Create the installation directory 

Create an empty directory for your TYPO3 project and change into it:

mkdir my_project
cd my_project
Copied!

[!Note] The directory where you run the following commands must be empty.

Do not initialize Git or open the folder in an IDE before running the commands, as these may create files in the directory (for example hidden files).

Create a New DDEV Project 

  1. Initialize a new DDEV project. The ddev config command will prompt you for details of your setup. TYPO3 is included in the list of preconfigured project types.

    ddev config --php-version 8.4 --docroot public --project-type typo3
    
    Copied!
  • Docroot Location β€” The docroot is the folder containing the files accessible to the webserver, including the entry point index.php. It is commonly named public. Do not change the docroot during this installation process. You can change it later if necessary, however most guides assume your docroot is called public.
  • Project Type β€” Always set the project type to typo3.

Start the DDEV 

  1. Start the DDEV project:

    ddev start

The webserver environment is now running, but TYPO3 is not yet installed.

Install TYPO3 

  1. Install TYPO3 using Composer:

    ddev composer create "typo3/cms-base-distribution:^13"

You now have a Composer-based TYPO3 installation.

Directory structure after composer installation 

At this point, your project folder should contain the following files and directories:

config/
packages/
public/
vendor/
LICENSE
.ddev
.gitignore
composer.json
composer.lock
README.md
Copied!

Additional folders like var and subfolders like config/sites will be created during the setup process.

Set up TYPO3 using the console 

At this point, important files and folders are still missing, and your database does not yet contain any tables.

All of these will be created during the setup process.

  1. To perform an interactive guided setup, run:

    ddev typo3 setup --server-type=other --driver=mysqli --host=db --port=3306 --dbname=db --username=db --password=db

  2. When prompted, provide the following answers to match the default DDEV configuration:

    Admin username (user will be "system maintainer") ? j.doe
    Admin user and installer password ?
    Admin user email ? j.doe@example.org
    Give your project a name [default: New TYPO3 Project] ? My Project
    Create a basic site? Please enter a URL [default: no] https://my-project.ddev.site
    βœ“ Congratulations - TYPO3 Setup is done.
    
    Copied!

Summary 

Congratulations! You now have a fully functional TYPO3 project running in a local DDEV environment, complete with a Composer-based installation, configured database, and ready-to-use development setup that mirrors a real-world server.

Next steps 

Now that you have a working TYPO3 project running locally with DDEV, you might like to:

Resources 

Basic Configuration 

Topics 

  • Backend Basics
  • Warning: Uninitialized string offset 0 in /opt/guides/vendor/phpdocumentor/guides/src/ReferenceResolvers/DocumentNameResolver.php on line 60 Warning: Uninitialized string offset 0 in /opt/guides/vendor/phpdocumentor/guides/src/ReferenceResolvers/DocumentNameResolver.php on line 60
  • Site Configuration
  • Implement Site Sets

Clearing the Frontend Cache in the TYPO3 Backend 

Tested in: TYPO3v13 Categories: Beginner Backend Cache FrontendCache Author: @ninaaline

After making changes to your TYPO3 website's content, templates, or configuration, the site's frontend may not immediately reflect these updates. This is typically due to the frontend cache, which stores a static version of your pages to ensure fast delivery to visitors. To force the website to display your latest changes, you must manually clear this cache.

Learning objective 

In this step-by-step guide, you will learn how to clear the TYPO3 frontend cache using the Flush Frontend Caches function available in the administrative toolbar.

Prerequisites 

Tools and technology 

  • A computer with a local TYPO3 installation
  • Access to the TYPO3 backend (admin account or user with cache clearing permissions)
  • A web browser

Knowledge and skills 

  • You know how to Log in in to the TYPO3 backend (CREATE)
  • You can Locate and use the TYPO3 backend's administrative toolbar (CREATE) in the TYPO3 backend.

Clearing the Frontend Cache 

  1. Log in to your TYPO3 backend as explained in Log in in to the TYPO3 backend (CREATE).
  2. In the backend, locate the administrative toolbar at the top of the screen. This bar contains various administrative icons, including the cache icon.

    TYPO3 administrative toolbar with five icons including the lightning for clearing caches

  3. Click on the lightning icon (the clear cache icon) in the administrative toolbar. This action will open a dropdown menu with two cache-related options.
  4. From the dropdown menu, select the option labeled "Flush frontend caches"

    Flush frontend cache Button with a green lightning icon

  1. After clicking the option, the lightning icon will display a brief loading spinner animation to indicate the cache is being cleared. The spinner will disappear quickly (usually within a few seconds) once the process is complete.
  2. Verify your changes by opening your website's frontend in a new browser tab and reloading the page. It's highly recommended to perform a hard refresh (pressing Ctrl + F5 or Cmd + Shift + R) to bypass your browser's local cache as well. The website should now display your latest updates.

Summary 

You successfully cleared the TYPO3 frontend cache by using the Flush Frontend Caches option in the administrative toolbar.

You confirmed the action's success by observing the loading indicator or notification, depending on your TYPO3 version.

Resources 

Enabling and disabling a page in the List Module 

Tested in: TYPO3v13 Categories: Beginner Backend Editing ListModule Author: @mabolek

TYPO3 allows you to disable pages. Disabled pages are inaccessible to frontend website visitors, but you can still edit the pages in the backend. Depending on your TYPO3 configuration all pages that you create may be disabled by default. They will need to be enabled in order to be published on your website.

Screenshot of the TYPO3 page tree with two pages named "Features" and "Customize". The first page's icon has a red circle with a white dash icon, while "Customize" has a plain document icon.

In the above screenshot of TYPO3's page tree the "Features" page is disabled, indicated by the overlaid red-and-white "no entry" sign on the page's icon. The "Customize" page is enabled and has a normal page icon.

Learning objective 

In this step-by-step guide you will disable and enable a page using the visibility toggle in the list of pages in TYPO3's List Module.

Prerequisites 

Tools and technology 

  • Backend access to a TYPO3 installation

Knowledge and skills 

Disable a page 

In this step, we will disable a page by using the visibility toggle in the list of pages in TYPO3's List Module.

  1. In the module menu, choose the "List" module.
  2. In the page tree, choose a page that you would like to disable. The page must not be disabled already.
  3. In the page tree, click on the name of the page's parent page. A list of pages and other resources belonging to the page will appear in the Content area to the right of the Module Menu and Page Tree. (If you wonder: In the screenshot below, "Pages" is the parent page of "Default".)

A page tree showing a page called "Pages" folder with a sub-page labeled "Default".

  1. In the list of pages, find the page you would like to disable.

Screenshot of the TYPO3 backend showing the page tree with the page "Pages" selected. To the right is a list of subpages with action buttons for editing, disabling, deleting, and translating.

  1. Locate and click the disable (hide) toggle button for the page you would like to hide. In the screenshot above, the toggle button for the page "Default" is outlined in orange.

In the page tree, the disabled page will now have a red-and-white "no entry" sign on the page's icon, as shown in the screenshot at the top of this page.

Enable a page 

In this step, we will enable the disabled page again.

  1. In the module menu, choose the "List" module.
  2. In the page tree, click on the name of the disabled page's parent page. If you're progressing straight from disabling the page, it's probably still selected. A list of pages and other resources belonging to the page will appear in the Content area to the right of the Module Menu and Page Tree. (If you wonder: In the screenshot below, "Pages" is the parent page of "Default".)

A page tree showing a page called "Pages" folder with a sub-page labeled "Default".

  1. In the list of pages, find the page you would like to disable.

Screenshot of the TYPO3 backend showing the page tree with the page "Pages" selected. To the right is a list of subpages with action buttons for editing, disabling, deleting, and translating.

  1. Locate and click the enable (un-hide) toggle button for the page you would like to hide. In the screenshot above, the toggle button for the page "Default" is outlined in orange.

In the page tree, the disabled page will now have a normal page icon, like the one shown in the screenshot at the top of this page.

Summary 

You have now disabled and re-enabled a page using TYPO3's List Module.

Next steps 

A page tree can also be enabled and disabled in other ways than this:

Resources 

Enabling and disabling a page in the page properties 

Tested in: TYPO3v13 Categories: Beginner Backend Editing PageProperties Author: @mabolek

TYPO3 allows you to disable pages. Disabled pages are inaccessible to frontend website visitors, but you can still edit the pages in the backend. Depending on your TYPO3 configuration all pages that you create may be disabled by default. They will need to be enabled in order to be published on your website.

Screenshot of the TYPO3 page tree with two pages named "Features" and "Customize". The first page's icon has a red circle with a white dash icon, while "Customize" has a plain document icon.

In the above screenshot of TYPO3's page tree the "Features" page is disabled, indicated by the overlaid red-and-white "no entry" sign on the page's icon. The "Customize" page is enabled and has a normal page icon.

Learning objective 

In this step-by-step guide you will disable and enable a page through the page properties interface.

Prerequisites 

Tools and technology 

  • Backend access to a TYPO3 installation

Knowledge and skills 

Disable a page 

In this step, we will disable a page by setting the page's visibility toggle to disabled.

  1. In the page tree, choose a page that you would like to disable.
  2. Access the page's page properties as described in Modifying the page properties
  3. In the page properties interface, choose the "Access" tab.

The TYPO3 page properties interface titled "Edit Page Customize" shows tabs like General, SEO, Social media, etc. The Access tab is selected and toggles for Page visible and Page enabled in menus are both switched on.

  1. In the "Visibility" section, click the "Page visible" toggle to change it to disabled (off).

The TYPO3 page properties interface titled "Edit Page Customize" shows tabs like General, SEO, Social media, etc. The Access tab is selected and toggle for Page visible is switched off.

  1. Click the "Save" button.

The page tree will update and the page will now have a red-and-white "no entry" sign on the page's icon, as shown in the screenshot at the top of the page.

Enable a page 

In this step, we will enable a page by setting the page's visibility toggle to enabled.

  1. In the page tree, find the page you disabled previously.
  2. Access the page's page properties as described in Modifying the page properties
  3. In the page properties interface, choose the "Access" tab.

The TYPO3 page properties interface titled "Edit Page Customize" shows tabs like General, SEO, Social media, etc. The Access tab is selected and toggle for Page visible is switched off.

  1. In the "Visibility" section, click the "Page visible" toggle to change it to enabled (on).

The TYPO3 page properties interface titled "Edit Page Customize" shows tabs like General, SEO, Social media, etc. The Access tab is selected and toggles for Page visible and Page enabled in menus are both switched on.

  1. Click the "Save" button.

The page tree will update and the page will now have a normal page icon without the red-and-white "no entry" sign on the page's icon, as shown in the screenshot at the top of the page.

Summary 

You have now disabled and re-enabled a page using TYPO3's page properties interface.

Next steps 

A page tree can also be enabled and disabled in other ways than this:

Resources 

Enabling and disabling a page in the page tree 

Tested in: TYPO3v13 Categories: Beginner Backend Editing PageTree Author: @mabolek

TYPO3 allows you to disable pages. Disabled pages are inaccessible to frontend website visitors, but you can still edit the pages in the backend. Depending on your TYPO3 configuration all pages that you create may be disabled by default. They will need to be enabled in order to be published on your website.

Screenshot of the TYPO3 page tree with two pages named "Features" and "Customize". The first page's icon has a red circle with a white dash icon, while "Customize" has a plain document icon.

In the above screenshot the "Features" page is disabled, indicated by the overlaid red-and-white "no entry" sign on the page's icon. The "Customize" page is enabled and has a normal page icon.

Learning objective 

In this step-by-step guide you will disable and enable a page using the contextual menu in the TYPO3 page tree.

Prerequisites 

Tools and technology 

  • Backend access to a TYPO3 installation

Knowledge and skills 

Disable a page 

In this step, we will disable a page in the page tree.

  1. In the page tree, choose a page that you would like to disable. The page must not be disabled already.
  2. Click on the page icon or right-click on the page name to bring up the context menu.
  3. From the context menu, choose "Disable".

The disabled page will now have a red-and-white "no entry" sign on the page's icon, as shown in the screenshot at the top of the page.

Enable a page 

In this step, we will enable the disabled page again.

  1. In the page tree, find the page you disabled previously.
  2. Click on the page icon or right-click on the page name to bring up the context menu.
  3. From the context menu, choose "Enable".

Summary 

You have now disabled and re-enabled a page using the context menu of TYPO3's page tree.

Next steps 

A page tree can also be enabled and disabled in other ways than this:

Resources 

Modifying the page properties 

Tested in: TYPO3v13 Categories: Beginner Backend Editing Configuration Author: @philippefekete

Modifying page properties in TYPO3 enables you to control how each page of your site behaves, appears, and is structured within the overall site hierarchy. From basic settings like titles, visibility, and URL segments to more advanced options such as access restrictions, metadata, and caching behavior, page properties give you fine-grained control over both the frontend presentation and backend organization of your content.

Learning objective 

In this step-by-step guide you will learn how to access, edit, and manage the following page properties in TYPO3:

  • Page Title
  • Title for search engines
  • Keywords for Meta data

The same steps will apply if you need to modify other page properties.

Prerequisites 

Tools and technology 

  • Access to a TYPO3 backend (editor or admin account)
  • A web browser

Knowledge and skills 

  • You know how to Log in to the TYPO3 backend (CREATE)
  • You know how to open the Page module

Watch the video 

Watch this video about editing the page properties to follow along with the steps below.

Modify the page properties 

  1. In the backend, open the Page module from the module menu on the left side.

    TYPO3 sidebar menu displays four options: Page (highlighted), View, List, and Forms, each with corresponding icons.

  2. Click on the icon of the page you want to modify. A context menu will appear.

    TYPO3 page menu display the option to Edit the properties.

  3. In the General Tab, modify the field Page title.

    TYPO3 page properties provide a field to modify the Page title.

  4. In the SEO Tab, modify the field Title for search engines.

    TYPO3 page properties provide a field to modify the Title for search engines.

  5. In the Metadata Tab, modify the field Keywords.

    TYPO3 page properties provide a field to modify the Metadate Keywords.

  6. Save your modifications.

Summary 

You updated the properties of a TYPO3 page and modified key fields, such as the page title, SEO title, and metadata keywords.

Next steps 

Now that you have modified the page properties, you might like to:

Resources 

Change A TYPO3 Site's Default Language 

Tested in: TYPO3v13 Categories: Beginner Configuration Author: @ninaaline

A TYPO3 site's language configuration controls the primary language for your website content. Changing the default language ensures that your site displays content in the language that matches your target audience. This guide shows you how to modify the default site language in TYPO3 13.4.

Learning objective 

In this step-by-step guide you will learn how to change your TYPO3 site's default content language from English to another language using the Site Management module.

Prerequisites 

Tools and technology 

  • A computer with a local TYPO3 13.4 installation
  • Access to the TYPO3 backend (admin account)
  • A web browser

Knowledge and skills 

  • You know how to Log in in to the TYPO3 backend (CREATE)
  • You have a basic understanding of ISO language codes (e.g., "en" for English, "de" for German)

Understanding the default language 

TYPO3's default language is the primary language configured for your website content. This setting:

  • Defines the language for your default content in the page tree
  • Sets the fallback language when translations are not available
  • Determines the language displayed to frontend visitors by default

The default language is always represented by language ID "0" in TYPO3's system.

Change the default language 

  1. In the backend, navigate to Site Management > Sites from the left-hand menu.

    TYPO3 sidebar menu displays the Site Management Section with the site module underneath it.

  2. Click on your site configuration (typically named "main" or your domain name) and open on the Languages tab.Site Configuration Menu displays four tabs: General, Languages (highlighted), Error Handling and Static Routes
  3. Find the default language entry (listed first with language ID "0" and usually in English).
  4. Click the on the default language entry.
  5. The language configuration form is opening:

    The Language Configurations Form displaying the Configuration for English with multiple options like Title, Locale, Entry Point and Navigation Title

    Update these fields:

    • Title: Enter your new default language name (e.g., "German")
    • Locale: Enter the locale code by using the dropdown menu (e.g., "de_DE.UTF-8" for German, "fr_FR.UTF-8" for French)
    • Language Tag: Enter the IETF language tag (e.g., "de-DE" for German, "fr-FR" for French)
    • Base URL: Keep this as "/" (as your default page entry)
    • Navigation Title: Type in the Language Title for your Navigation (e.g. "German")
    • Flag item: Search for the right flag icon for your language
  6. For German your changes should look like this now:

    The Language Configurations Form displaying the changed Configuration for German now with multiple options like Title, Locale, Entry Point and Navigation Title

    Click Save to apply your changes.

  7. Go to the Page Module and click on a page in the pagetree.TYPO3 sidebar menu displays three options: Page (highlighted), View, List, and Forms, each with corresponding icons.
  8. You can see a little flag-icon on your content. Verify that the new flag is shown. A Regular Text Element with a little flag icon next to it.
  9. Open your website's frontend in a new browser tab and verify that the language settings have been applied correctly.

Summary 

You successfully changed your TYPO3 site's default content language by editing the language configuration in the Site Management module. Your website now uses the new language for all default content.

Next steps 

Now that you've changed the default language, you might like to:

  • Configure additional content languages (CREATE) to create a multilingual website
  • Translate existing content (CREATE) into your new default language
  • Manage language fallbacks (CREATE) for handling missing translations

Resources 

Set Up a Site Configuration 

Tested in: TYPO3v13 Categories: Beginner Backend Configuration

In TYPO3, a site configuration is essential for defining the domain, root page, and languages for a website.

Learning objective 

This guide explains how to create and configure a new site in a TYPO3 installation.

Prerequisites 

  • A running TYPO3 instance.
  • A "root page" created in the page tree to serve as the starting point of the new website.

Create a New Site Configuration 

  1. Click the "Add new site configuration" button or the + icon if you already have other sites.
  2. TYPO3 will often suggest creating a site based on an existing root page that is not yet configured.
  3. In the General tab, add your information to the following fields:

    • Site Identifier: A unique, lowercase name for the site (e.g., my_website). This is used internally by TYPO3.
    • Root Page ID: This is the most important setting. Select the page from your page tree that will be the root of your website (e.g., your "Home" page).
    • Base URL: The primary domain for the site, including the protocol (e.g., https://www.example.com/).
  4. In the Languages tab, click Create new Language. A new language form will appear.
  5. Fill in the following fields with your information:

    • Title: The human-readable name of the language (e.g., "English").
    • Entry Point: The URL segment for this language. The default language should use /. Additional languages might use a prefix (e.g., /de/).
    • Locale: The locale for the language, which is important for date formatting and other localizations (e.g., en_US.UTF-8).
  6. In the Error Handling tab, fill in the following fields with your information:

    • Switch to the Error Handling tab.
    • Define how TYPO3 should handle HTTP error status codes, such as 404 Not Found.
    • You can set a specific page to display, redirect to another URL, or use a custom Fluid template for each error code.
  7. Click the Save button to store your new site configuration.

Summary 

You have successfully created a site configuration. Your website is now accessible through the configured domain, and TYPO3 knows which page tree belongs to it.

Next Steps 

  • Add More Languages: If your site is multilingual, you can add more languages in the Languages tab by repeating steps 4–5 above.
  • Domain Variants: Create variants for different domains or subdomains that point to the same site but might have slightly different settings.
  • Static Routes: For advanced URL routing, you can explore the Static Routes tab.

Create a Site Set with Editable Settings and Custom CSS 

Tested in: TYPO3v13 Categories: Beginner Backend Configuration Author: @csabareanu

TYPO3's Site Sets are reusable packages of site configuration that streamline multi-site management. It replaces older methods and allows you to bundle and apply settings across multiple sites or projects.

Learning objective 

In this guide, you will build a practical, working site set named my-vendor/base inside your site package (EXT:sitepackage). The site set will:

  • Add a default meta description and site contact info (editable in backend)
  • Add a simple backend configuration
  • Render them in a simple Fluid template
  • Load a custom CSS file to style the title

Prerequisites 

Tools and technology 

  • A computer with a local TYPO3 installation and a site package extension as described in Create a Site Package (CREATE).
  • An IDE or plain text editor.

Knowledge and skills 

  • {Conceptual knowledge}
  • {Prior learning}

Create the Site Set folder and manifest 

Every site set is defined inside a manifest that defines its name and dependencies.

  1. Inside your extension, create a folder called base inside of your extension's site sets folder: EXT:sitepackage/Configuration/Sets
  2. Inside the base folder, create a plain text file called config.yaml.
  3. Copy the following YAML into the config.yaml file:

    name: 'my-vendor/base'
    label: 'Base Site Set'
    dependencies: []
    optionalDependencies: []
    hidden: false
    
    Copied!
  4. Save the file.

Add editable site settings 

We will now define custom site settings. These can be edited and customized for each site in the Sites module in the TYPO3 backend.

  1. Inside the base folder, create a file called settings.yaml. This file will contain the custom setting properties.
  2. Copy the following YAML into the settings.yaml file:

    settings:
      site:
        meta:
          description: 'Default meta description from settings.yaml'
        contact:
          email: 'contact@example.com'
    
    Copied!
  3. Save the file.
  4. Inside the base folder, create another file, this time called settings.definitions.yaml. This file defines how the custom settings in the settings.yaml file should be displayed in the backend.
  5. Copy the following YAML into the settings.definitions.yaml file:

    settings:
      site.meta.description:
        type: string
        label: 'Base Settings: Meta Description'
        default: 'Default meta description from definitions'
      site.contact.email:
        type: string
        label: 'Base Settings: Contact Email'
        default: 'contact@example.com'
    
    Copied!
  6. Save the file.

Add TypoScript for page rendering 

Site sets can also contain TypoScript configurations. In this case we will define page rendering and include a CSS file.

  1. Inside the base folder, create a file called setup.typoscript.
  2. Copy the following TypoScript into the setup.typoscript file:

    page = PAGE
    page.10 = FLUIDTEMPLATE
    page.10 {
      templateName = Default
      templateRootPaths.10 = EXT:sitepackage/Resources/Private/Templates/
      partialRootPaths.10 = EXT:sitepackage/Resources/Private/Partials/
      layoutRootPaths.10 = EXT:sitepackage/Resources/Private/Layouts/
    
      dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\SiteProcessor
      }
    }
    
    # Include custom CSS
    page.includeCSS.base = EXT:sitepackage/Resources/Public/Css/base.css
    
    Copied!
  3. Save the file.

Add backend configuration 

Site sets can also reconfigure the TYPO3 backend. In this case we will change the header of the Common section of the New Content Element Wizard by modifying the Page TSConfig configuration options.

  1. Inside the base folder, create a file called page.tsconfig.
  2. Copy the following TypoScript into the page.tsconfig file:
mod.wizards.newContentElement.wizardItems.common.header = Common Elements (Site Set active)
Copied!
  1. Save the file.

Add a CSS file 

Site sets can also include frontend resources, like images and CSS files. Previously, we defined TypoScript that included a CSS file. Now we will create this file inside the site package's Resources folder.

  1. Inside your site package extension, create these three folders inside each other: Resources/Public/Css. (Don't worry if the folders already exist.)
  2. Inside the Css folder, create a plain text file called base.css.
  3. Copy the following CSS into the base.css file:
/* Base Site Set Styles */
h1 {
  color: darkred;
  font-weight: 700;
}
Copied!
  1. Save the file.

Create a simple Fluid template to test the settings 

Site sets can also include Fluid templates. In this case we will create a simple template that displays the custom site settings we have defined. This is thanks to the SiteProcessor we defined in our TypoScript. It allows us to access the settings at site.settings in the fluid template.

  1. Inside the site package extension, create the folders Resources/Private/Templates/Default inside each other. (Don't worry if the folders already exist.)
  2. Inside the Default folder, create an HTML file called Default.html.
  3. Copy the following HTML into the Default.html file:
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
<body>
  <h1>Site Settings Test</h1>

  <p><strong>Meta Description:</strong> {site.settings.site.meta.description}</p>
  <p><strong>Contact Email:</strong> {site.settings.site.contact.email}</p>

</body>
</html>
Copied!
  1. Save the file.

Register the Site Set in your site configuration 

  1. Open your site configuration file. It is located in config/sites/<your-site>/config.yaml, where <your-site> is your site’s identifier.
  2. Add the following line to the dependencies section:

    dependencies:
      - my-vendor/base
    
    Copied!
  3. Save the file.

Clear caches and verify 

  1. Clear caches as described in ClearingFrontendCacheInTypo3Backend.
  2. Open Backend β†’ Site β†’ Settings module. You’ll see your Base Settings: Meta Description and Contact Email fields.
  3. Change the value of the fields.
  4. Save the settings.
  5. Visit your site’s frontend. You should see.

    Site Settings Test
    Meta Description: (your value from step 3)
    Contact Email: (your value from step 3)
    
    Copied!
  6. Confirm that the H1 title appears in dark red. This confirms that the CSS file is loaded.
  7. Go back to the TYPO3 backend.
  8. Create a new content element to bring up the New Content Element Wizard. Check the wizard’s Common section and confirm that the title has changed to "Common Elements (Site Set active)." This confirms that the Page TSConfig configuration is loaded.

A screenshot of TYPO3’s New Content Element Wizard with the Common Elements (Site Set active) section selected. Content element icons are visible: Header Only, Regular Text Element, Text & Images, Images Only, and Text & Media, each with icons and brief descriptions.

Summary 

You now have a complete Site Set that provides:

  • Editable custom site settings (in Backend β†’ Sites β†’ Settings)
  • Custom TypoScript that loads a custom Fluid template and CSS file.
  • A working Fluid template that displays site settings.
  • Automatically included CSS styling.

This Site Set can now be reused across any project β€” just add - my-vendor/base to the dependencies: section of another site’s config.yaml.

Next steps

Now that you have created your site set, you might like to:

Resources 

Create a Page with Drag and Drop 

Tested in: TYPO3v13 Categories: Beginner Backend Author: @ninaaline

TYPO3 lets you quickly create new pages directly in the page tree. The drag & drop method is a fast way to add a page exactly where you want it β€” either as a child of an existing page or as a sibling between two pages.

Learning objective 

In this step-by-step guide you will create a new page in the TYPO3 backend using the drag & drop method.

Prerequisites 

Tools and technology 

  • A computer with a local TYPO3 installation
  • Access to the TYPO3 backend (editor or admin account)
  • A web browser

Knowledge and skills 

  • You know how to log in into the TYPO3 backend
  • You know how to open the Page module

Watch the video 

**Watch this tutorial on YouTube to follow along. Only the first part of the video (creating a page with drag & drop) is relevant for this guide.

Create a page using drag & drop 

  1. In the backend, open the Page module from the left-hand menu.

    TYPO3 sidebar menu displays four options: Page (highlighted), View, List, and Forms, each with corresponding icons.

  2. Expand the page tree so you see the place where you want to add your new page.
  3. At the top of the page tree, locate the new page icons (representing different page types). YPO3 pagetree toolbar icons showing options to create a standard page, link to a page, create a shortcut, or hide a page.
  4. Drag the Standard page icon A blank document icon with a folded corner. and drop it:

    1. Between two existing pages β†’ creates a sibling page at the same level
    2. On top of an existing page β†’ creates a child page under that parent
  5. When prompted, enter a title for your new page and press Enter TYPO3 Pagetree with a main and a nested page showing how to edit a page title directly in the page tree
  6. Confirm the new page appears in the page tree at the position you selected.

Summary 

You created a new TYPO3 page by dragging a page icon from the top of the page tree and dropping it into position. This is the quickest way to add pages while building your site structure.

Next steps 

Now that you’ve added a page, you might like to:

Resources 

Activate the Site Package 

Tested in: TYPO3v13 Categories: Beginner SitePackage Backend Author: @ninaaline

After creating the file structure and registering and installing the Site Package, the Site Package is recognized by TYPO3 but not yet linked to any site. To make it functional, you need to activate its Site Set in the TYPO3 Backend.

This guide shows you how to assign the Site Set to your site through the Site Configuration.

Learning Objective 

In this guide, you will learn how to activate your Site Package by adding its Site Set to your site using the TYPO3 Backend's Sites module.

Prerequisites 

Tools and technology 

  • Access to the TYPO3 Backend with administrator privileges

Knowledge and skills 

Open the Site Configuration 

  1. Log in to the TYPO3 Backend.
  2. Open the Sites module from the module menu. The Sites module icon in the TYPO3 Backend.
  3. Click on your site (e.g. "Home") to open its configuration. A list of all sites in your TYPO3 installation, including site title, site identifier, available languages and base URLs.
  4. Scroll down to the Site Sets section and select My Site Package from the list of available items by clicking on it. The Site Sets section of the site configuration with a list of all available Site Sets.
  5. Confirm that your Site Package now appears in the list of selected items. The Site Package listed in the section of selected items.
  6. Click Save to save your changes.
  7. Clear the frontend cache. If you are unsure how to do this, refer to Clearing the Frontend Cache in the TYPO3 Backend.

Summary 

You have successfully activated your Site Package. Its Site Set is now assigned to your site, and all bundled configuration is active. You are now ready to start customizing your site package with templates, styles, and more.

Next Steps 

Now that your Site Package is fully active, you might like to:

  • Create a Site Set with Editable Settings and Custom CSS (CREATE)

Resources 

Create the Site Package File Structure 

Tested in: TYPO3v13 Categories: Beginner Backend SitePackage Author: @ninaaline

A Site Package is a custom TYPO3 extension that bundles all your project-specific configurations, templates, and assets. This guide focuses on the single task of creating the minimal file structure required for TYPO3 to recognize your Site Package.

Learning objective 

In this step-by-step guide you will learn how to manually create the essential directory structure and the composer.json file for a TYPO3 site package.

Prerequisites 

Tools and technology 

  • Access to your TYPO3 installation's file system
  • A code editor (e.g., VS Code or PhpStorm)
  • A Composer-based TYPO3 installation (as explained in Installing TYPO3 with Composer)

Knowledge and skills 

  • Basic knowledge of Composer
  • Basic knowledge of JSON and YAML

Create the Directory Structure 

  1. Navigate to the root of your TYPO3 installation. In a standard setup, custom extensions are placed in a folder named packages/.
  2. If the packages/ folder does not exist yet, create it in the root of your TYPO3 installation`.
  3. Create a new directory for your Site Package (e.g., my_site_package) with the following minimal structure:
packages/my_site_package/
β”œβ”€β”€ Configuration/
β”‚   └── Sets/
β”‚       └── SitePackage/
β”œβ”€β”€ Resources/
β”‚   β”œβ”€β”€ Private/
β”‚   └── Public/
└── composer.json
Copied!
  • Configuration/Sets/: Used for configuration bundles called Site sets.
  • Resources/: Stores your HTML templates (Private) and assets like CSS or images (Public).

Create the composer.json file 

The composer.json file is the most critical component. It tells TYPO3 that this directory is a valid extension.

  1. Create the file at packages/my_site_package/composer.json.
  2. Copy the following content into the file:
{
    "name": "my-vendor/my-site-package",
    "description": "Minimal Site Package for TYPO3 v13",
    "type": "typo3-cms-extension",
    "license": ["GPL-2.0-or-later"],
    "require": {
        "typo3/cms-core": "^13.4"
    },
    "autoload": {
        "psr-4": {
            "MyVendor\\MySitePackage\\": "Classes/"
        }
    },
    "extra": {
        "typo3/cms": {
            "extension-key": "my_site_package"
        }
    }
}
Copied!

Key information:

  • name: The Composer t3coreapi:ext-composer-json-property-name (lowercase, using hyphens).
  • extension-key: The internal TYPO3 extension key (using underscores).
  1. Save the file.

Create a Site Set 

For TYPO3 to identify your Site Package as a configuration source, you must define a Site Set.

  1. Create a file at packages/my_site_package/Configuration/Sets/SitePackage/config.yaml.
  2. Add the following content:
name: 'my-vendor/my-site-package'
label: 'My Site Package'
dependencies:
    - typo3/fluid-styled-content
Copied!
  1. Save the file.

Summary 

You have successfully created the skeletal structure of a TYPO3 Site Package. TYPO3 will now be able to recognize this folder as a valid extension once it is registered via Composer.

Next steps 

Now that the basic structure is ready, you might like to:

Resources 

Register and Install a Site Package 

Tested in: TYPO3v13 Categories: Beginner SitePackage Backend Author: @ninaaline

After creating the file structure for the Site Package, the Site Package exists on your disk but is not yet known to the TYPO3 installation.

This guide covers how to register the local directory as a Composer repository and install it into your project.

Learning Objective 

In this guide, you will learn the two essential Composer commands to link and activate your local Site Package folder within your TYPO3 installation.

Prerequisites 

Tools and technology 

Knowledge and skills 

Register the local package path 

First, you must tell your project's root composer.json where to look for custom packages. This creates a link to your packages/ folder.

  1. In your Terminal, make sure you are in your project root by running pwd.
  2. Run the following command:
composer config repositories.site-package path packages/my_site_package
Copied!

This command adds a "repositories" section to your main composer.json file. It allows Composer to treat the local folder like a remote repository.

Install the package 

Installing a package with Composer means adding it to your package’s requirements. Use the vendor and package name exactly as you defined them in the Site Package's composer.json file.

  1. Run the following command in your Terminal:
composer require my-vendor/my-site-package
Copied!

The extension is now officially installed in the system.

Summary 

You have successfully registered and installed your Site Package. It is now recognized by TYPO3 as a valid extension and is ready to be activated.

Next Steps 

Now that the package is installed, the final step to make it functional is:

Resources 

Customize a content element template 

Tested in: TYPO3v13 Categories: Beginner ContentElements Frontend Templating Author: @mabolek

TYPO3 is modular by design and organizes content on a page as blocks, called content elements. You can customize how content elements are displayed on your website by overriding the default template.

Learning objective 

In this step-by-step guide you will override the Subpages content element. This content element displays a list of subpages to the current page. We’ll modify the template so it also displays an image together with the name of each subpage.

Prerequisites 

Tools and technology 

  • A computer with a local TYPO3 development environment installed using Composer
  • A site in the development environment using the Bootstrap Package theme
  • A Boostrap Package-based sitepackage extension
  • An IDE or plain text editor

Knowledge and skills 

  • TYPO3’s file structure
  • Basic content editing with TYPO3

Create a page and subpages 

To have something for the Subpages content element, we’ll create a page in the page tree and then add some subpages to it.

  1. In the page tree, create a page with a number of subpages as described in Creating Pages. In our case, we create a page called β€œSubpage menu test” with three subpages called β€œSubpage 1,” β€œSubpage 2,” and β€œSubpage 3.”

    TYPO3 page tree with parent page "Subpage menu test" and subpages named "Subpage 1," "Subpage 2," and "Subpage 3"

  2. For each of the subpages

    1. Access the page’s page properties, as described in Page Properties.
    2. In the page properties form, click on the Resources tab.
    3. Under Files, upload an image or add a relation to an existing image.
  3. On the page β€œSubpage menu test”, add a content element of the type β€œSubpages,” using the steps in Add content in the TYPO3 backend.

If you preview the page β€œSubpage menu test,” the content should look something like this:

Bullet list of linked items named "Subpage 1," "Subpage 2," and "Subpage 3"

Copy the content element template file 

It is not recommended to edit the original template file. These can easily be overwritten during upgrades. Instead, we make a copy of the template file and place it within our sitepackage extension.

  1. Locate the MenuSubpages.html template file within the folder vendor/bk2k/bootstrap-package/Resources/Private/Templates/ContentElements.
  2. Copy the file into your sitepackage extension’s Resources/Private/Templates/ContentElements folder. Don’t change the file name.

The sitepackage extension is already configured so TYPO3 will look for custom content element templates in this location.

Modify the template file 

  1. Open the file you just created using your IDE or a plain text editor: Resources/Private/Templates/ContentElements/MenuSubpages.html
  2. Add this code on a blank line after the <li> tag:

    <f:image image="{page.files.0}" height="250" /\>
    
    Copied!
  3. Clear TYPO3's cache as described in Clearing the Frontend Cache in the TYPO3 Backend

Summary 

You have now overridden the Fluid template of the Subpages content element so it also displays an image together with the name of each subpage in the list.

The final result should look something like this:

Bullet list of linked items "Subpage 1," "Subpage 2," and "Subpage 3". Each item has an image to the left of the text.

Next steps 

Now that you have overridden a content element's Fluid template, you might like to:

  • Add custom CSS Styles to a Fluid Template (CREATE)

Resources 

Configure a Backend Layout With Two Columns 

Tested in: TYPO3v13 Categories: Intermediary Backend BackendLayout Author: @csabareanu

A Backend Layout controls how rows and columns of content elements are displayed in TYPO3’s Page module, letting editors place their content in designated areas. Though they don't affect frontend rendering directly, backend layouts usually correspond to specific frontend web page layouts.

Learning Objective 

In this step-by-step guide you will create a custom Backend Layout with two columns in an existing Site Package and apply it to all subpages of a specific starting page. The columns will be named:

  • β€œLeft” (colPos = 0)
  • β€œRight” (colPos = 2)

They will be displayed as two vertical columns in the Page β†’ Columns view in the TYPO3 Backend.

Prerequisites 

Tools and technology 

  • A computer with a local Composer-based TYPO3 installation where you have admin access.
  • Your TYPO3 installation must have an active Site Package as explained in Create a Site Package (CREATE). This guide assumes your sitepackage is called sitepackage.
  • Your site package must include a site set as explained in Create a Site Set.

Knowledge and skills 

Define the Backend Layout in Page TSconfig 

You will store Backend Layout definitions in your Site Set’s Page TSconfig.

  1. Open or create the file EXT:sitepackage/Configuration/Sets/base/page.tsconfig.
  2. Open the file in an IDE or plain text editor.
  3. Add the following code snippet to the file:

    # --------------------------------------------------------
    # Backend Layout: Two Columns
    # --------------------------------------------------------
    mod.web_layout.BackendLayouts.two_columns {
      title = Site Layout: Two Columns
      config {
        backend_layout {
          colCount = 2
          rowCount = 1
    
          rows {
            1 {
              columns {
                1 {
                  name = Left
                  colPos = 0
                }
                2 {
                  name = Right
                  colPos = 2
                }
              }
            }
          }
        }
      }
    }
    
    Copied!

    This code snippet defines a Backend Layout with ID "two_columns", containing one row with two columns β€œLeft” and β€œRight”.

  4. Save the file.
  5. Clear all caches to apply the changes, as explained in Clearing All Caches Using the Clear Cache Menu (CREATE).

Your page layout is now availabe in the page properties of all pages in your site.

Select the backend layout for a single page 

  1. In the TYPO3 Backend, go to the Page module.
  2. Choose a page with subpages on your site, for example, the root page.
  3. Access the page properties, as explained in Modifying the page properties.
  4. In the page properties, select the Appearance tab.
  5. From the Backend Layout (this page only) dropdown menu, select the "Site Layout: Two Columns" option. A dropdown menu labeled Backend Layout is open, showing options: None and Site Layout: Two Columns. The page is currently using the Default backend layout inherited from a parent page.
  6. Save and close the page properties.
  7. In the page tree, click on the page title to reload the layout. You should now be able to add content elements to two columns labeled β€œLeft” and β€œRight”.

You can click on subpages to confirm that the layout is not applied to them.

Inherit the Backend Layout to All Subpages 

Often, you want an entire section of the site to use the same layout automatically.

  1. Access the page properties for the page you chose previously, as explained in Modifying the page properties.
  2. In the page properties, select the Appearance tab.
  3. From the Backend Layout (subpages of this page) dropdown menu, select the "Site Layout: Two Columns" option. A dropdown menu labeled Backend Layout (subpages of this page) is open, showing options: None, Site Layout: Two Columns (selected), Default, and Subpage.
  4. Save and close the page properties.
  5. In the page tree, click on subpages to the page you chose and verify that all subpages of the page now use the layout you selected.

Summary 

You have now created a custom Backend Layout with two columns and applied it to a single page and all subpages of that page.

Next steps 

  • Render the layout in the frontend as explained in Create a Two-Column Layout With Fluid (CREATE)

Resources 

Add CSS and JavaScript to a Fluid Template 

Tested in: TYPO3v13 Categories: Beginner Templating Frontend

Adding assets like CSS and JavaScript directly into your Fluid templates is a straightforward way to style and add interactivity to specific parts of your website. This method is ideal when your styles or scripts are tightly coupled with a particular page layout or template.

This guide will teach you how to link custom CSS and JavaScript files to your site package using Fluid's built-in Asset ViewHelpers.

Learning objective 

In this step-by-step guide, you will learn how to create custom CSS and JavaScript files and include them in your site's Fluid templates using the f:asset.css and f:asset.js ViewHelpers.

Prerequisites 

Tools and technology 

  • A local TYPO3 installation (v11 or newer).
  • A site package extension created for your theme.
  • Access to the file system of your TYPO3 installation.
  • A code editor.

Knowledge and skills 

  • Basic understanding of the TYPO3 backend.
  • Familiarity with the structure of a site package.
  • Basic knowledge of CSS, JavaScript, and HTML.

Create Your Asset Files 

First, you need to create the CSS and JavaScript files within your site package's directory structure.

  1. Navigate to your site package's Resources/Public/ directory.
  2. Create two new sub-directories: Css and JavaScript.
  3. Inside the Css directory, create a new file named custom-styles.css. Add a simple CSS rule for testing:

    body {
      background-color: #f0f0f0;
      border: 5px solid #ff8700;
    }
    
    Copied!
  4. Inside the JavaScript directory, create a new file named custom-scripts.js. Add a simple JavaScript alert for testing:

    alert('Hello from custom-scripts.js!');
    
    Copied!

    Your file structure should now look like this:

    └── your_sitepackage/
        └── Resources/
            └── Public/
                β”œβ”€β”€ Css/
                β”‚   └── custom-styles.css
                β”œβ”€β”€ JavaScript/
                β”‚   └── custom-scripts.js
                └── ...
    
    Copied!

Include Assets in Your Fluid Template 

Now, you will link these new files in the main Fluid layout file of your site package.

  1. Open the main HTML template file for your site's layout. This is commonly located at your_sitepackage/Resources/Private/Layouts/Page/Default.html.
  2. Add the <f:asset.css> and <f:asset.js> ViewHelpers inside the <head> section of the file. These ViewHelpers tell TYPO3 to add the respective files to the page.

    Update the code to include the new assets as shown below. The identifier is a unique name, and href points to the file location using the EXT: syntax.

    <head>
        ...
        <f:asset.css identifier="my-custom-styles" href="EXT:your_sitepackage/Resources/Public/Css/custom-styles.css" />
        <f:asset.js identifier="my-custom-scripts" href="EXT:your_sitepackage/Resources/Public/JavaScript/custom-scripts.js" />
        ...
    </head>
    
    Copied!

    Make sure to replace your_sitepackage with the actual key of your site package extension.

Clear the Cache and Verify 

Finally, clear the TYPO3 caches to ensure your changes are loaded, and then check the frontend of your website.

  1. Log in to the TYPO3 backend.
  2. Click the "Clear all caches" lightning bolt icon in the top toolbar.
  3. Open your website in a new browser tab.

    • You should see the styles from custom-styles.css applied to the page (a light gray background and an orange border).
    • You should see a JavaScript alert box appear with the message "Hello from custom-scripts.js!".

Summary 

Congratulations! You have successfully added custom CSS and JavaScript files to your TYPO3 site using Fluid Asset ViewHelpers. You can now easily manage assets that are specific to your templates.

Next steps 

Now that you know how to include assets in Fluid, you might like to:

Resources 

Add Global CSS and JavaScript with TypoScript 

Tested in: TYPO3v13 Categories: Beginner Templating Configuration

Managing your website's core CSS and JavaScript files globally is an efficient way to ensure a consistent look and feel across all pages. TYPO3's TypoScript provides a powerful, centralized method for including these assets sitewide.

This guide will teach you how to link custom CSS and JavaScript files to your site package using TypoScript page configuration.

Learning objective 

In this step-by-step guide, you will learn how to create custom CSS and JavaScript files and include them globally on your site using the page.includeCSS and page.includeJS TypoScript properties.

Prerequisites 

Tools and technology 

  • A local TYPO3 installation (v11 or newer).
  • A site package extension created for your theme.
  • Access to the file system of your TYPO3 installation.
  • A code editor.

Knowledge and skills 

  • Basic understanding of the TYPO3 backend.
  • Familiarity with the structure of a site package.
  • Basic knowledge of CSS, JavaScript, and HTML.
  • Awareness of what TypoScript is and its role in TYPO3.

Create Your Asset Files 

First, you need to create the CSS and JavaScript files within your site package's directory structure.

  1. Navigate to your site package's Resources/Public/ directory.
  2. Create two new sub-directories: Css and JavaScript.
  3. Inside the Css directory, create a new file named custom-styles.css. Add a simple CSS rule for testing:

    body {
      background-color: #f0f0f0;
      border: 5px solid #20c997;
    }
    
    Copied!
  4. Inside the JavaScript directory, create a new file named custom-scripts.js. Add a simple JavaScript alert for testing:

    alert('Hello from custom-scripts.js!');
    
    Copied!

    Your file structure should now look like this:

    └── your_sitepackage/
        └── Resources/
            └── Public/
                β”œβ”€β”€ Css/
                β”‚   └── custom-styles.css
                β”œβ”€β”€ JavaScript/
                β”‚   └── custom-scripts.js
                └── ...
    
    Copied!

Include Assets Using TypoScript 

This method is best for assets that should be loaded on every page of your site.

  1. Open your site package's main TypoScript setup file. This is typically located at your_sitepackage/Configuration/TypoScript/setup.typoscript.
  2. Add the page.includeCSS and page.includeJS properties to your page object configuration. You can assign a key (like style or js) and set the value to the path of your asset file using the EXT: syntax.

    page {
        # ... other page configuration
    
        includeCSS {
            style = EXT:your_sitepackage/Resources/Public/Css/custom-styles.css
        }
    
        includeJS {
            js = EXT:your_sitepackage/Resources/Public/JavaScript/custom-scripts.js
        }
    }
    
    Copied!

    Make sure to replace your_sitepackage with the actual key of your site package extension.

Clear the Cache and Verify 

Finally, clear the TYPO3 caches to ensure your changes are loaded, and then check the frontend of your website.

  1. Log in to the TYPO3 backend.
  2. Click the "Clear all caches" lightning bolt icon in the top toolbar.
  3. Open your website in a new browser tab.

    • You should see the styles from custom-styles.css applied to the page (a light gray background and a green border).
    • You should see a JavaScript alert box appear with the message "Hello from custom-scripts.js!".

Summary 

Congratulations! You have successfully added global CSS and JavaScript files to your TYPO3 site using TypoScript. This centralized approach is excellent for managing your site's core assets.

Next steps 

Now that you have experience with including assets globally, you might like to:

  • Learn how to conditionally load assets on specific pages using TypoScript conditions.
  • Explore how to configure and bundle assets for better performance.

Resources 

Add a Payment Method in the Reimbursement Tool 

Categories: Beginner Author: @mabolek

The TYPO3 Reimbursement Tool is the budget and expense management tool for the TYPO3 ecosystem.

As a TYPO3 contributor, you can use it to request and track reimbursements for expenses, work time, or contribution rewards. Reimbursements are reviewed by the budget owner and transferred to you through PayPal or bank transfer.

Learning objective 

In this step-by-step guide you will add bank or PayPal account information to the Reimbursement Tool.

Prerequisites 

Tools and technology 

Knowledge and skills 

  • None beyond basic computer literacy.

Log in to the Reimbursement Tool 

  1. In your web browser, go to reimbursement.typo3.com.
  2. If you are not already logged in, click on the gray Login button.

You will see the Reimbursement Tool dashboard. It is titled My Reimbursements.

Add a payment method 

  1. Click on your name in the top right corner to open the user menu.

A website header shows Reimbursement with navigation links for Home and Budgets. A user menu for John Doe is open, displaying options for Payment Methods and Sign out.

  1. From the user menu, select Payment Methods. You will be redirected to the payment methods summary page.

A payment methods page showing two bank transfer (IBAN) entries. One is labeled as the preferred payment method, and an option to add or delete payment methods is visible.

  1. Click on the black Add payment method button. You will be redirected to the payment method creation form. The form will default to the IBAN payment method.
  2. From the Type drop-down menu, select either Bank transfer (IBAN) or PayPal. The form will update accordingly.

The next steps are different, depending on which payment method you selected.

Fill in the form for Bank transfer (IBAN) 

A payment method form with a dropdown menu selecting Bank transfer (IBAN), fields for IBAN, BIC/SWIFT, account holder name, a checkbox to set as preferred method, and an orange Save button.

  1. In the Type drop-down menu, ensure that Bank transfer (IBAN) is selected.
  2. Fill in the other fields as follows:

    • IBAN: Enter your IBAN number, as supplied by your bank. The IBAN consists of up to 34 alphanumeric characters, starting with a two-character country code. For example: XX12345678901234
    • BIC/SWIFT: Enter your bank’s BIC/SWIFT code, as supplied by your bank. The BIC/SWIFT code consists of up to 11 alphanumeric characters. For example: FOOBAR123
    • Account holder: The name of the account holder, presumably your name.
  3. Check the Set this as my preferred payment method checkbox if you would like to use this payment method as your default payment method.
  4. Click on the orange Save button. You will be redirected to the payment methods summary page.

Your payment method should now be visible in the list on the payment methods summary page.

Fill in the form for PayPal 

A payment method selection form showing a dropdown with Bank transfer (IBAN) and Paypal options. Paypal is selected. There is a field for Paypal email and a checkbox to set as preferred payment method. A yellow SAVE button is below.

  1. In the Type drop-down menu, ensure that Bank transfer (IBAN) is selected.
  2. In the PayPal email field, enter the email address connected to your PayPal account.
  3. Check the Set this as my preferred payment method checkbox if you would like to use this payment method as your default payment method.
  4. Click on the orange Save button. You will be redirected to the payment methods summary page.

Your payment method should now be visible in the list on the payment methods summary page.

Summary 

You have now created a payment method and can receive reimbursements from the TYPO3 Association to your bank or PayPal account.

Next steps 

Resources 

Create a Direct Reimbursement in the Reimbursement Tool 

Categories: Beginner Author: @mabolek

The TYPO3 Reimbursement Tool is the budget and expense management tool for the TYPO3 ecosystem.

As a TYPO3 contributor, you can use it to request and track reimbursements for expenses, work time, or contribution rewards. Reimbursements are reviewed by the budget owner and transferred to you through PayPal or bank transfer.

Learning objective 

In this step-by-step guide you will request that the TYPO3 Association pays an invoice directly to the issuer using a Direct Reimbursement.

Prerequisites 

Tools and technology 

Knowledge and skills 

  • None beyond basic computer literacy.

Log in to the Reimbursement Tool 

  1. In your web browser, go to reimbursement.typo3.com.
  2. If you are not already logged in, click on the gray Login button.

You will see the Reimbursement Tool dashboard. It is titled My Reimbursements.

Create a reimbursement 

Screenshot of the TYPO3 Reimbursement Tool dashboard. A black β€œRequest Reimbursement” button is prominently circled in red in the upper right of a white section labeled β€œMy Reimbursements.”.

  1. On the Reimbursement Tool dashboard, click the black Request Reimbursement button. You will be redirected to a page asking you to choose Regular Reimbursement or Direct Expense.

A webpage titled Request reimbursement shows helpful links, including Create a reimbursement and Contact Budget Owner. Below are options for Regular or Direct Reimbursement, each with a Create button.

  1. In the Direct Reimbursement box, click the orange Create button. You will be redirected to the request reimbursement form.

A reimbursement request form with fields for budget, purpose, short description, and address. A checkbox confirms understanding of reimbursement regulations. A button at the bottom reads Save and Continue.

  1. Complete the form by filling in the fields:

    • Budget: Choose the budget you want to use for this reimbursement.
    • Purpose: Choose the purpose that fits with your reimbursement.
    • Short description: Describe the purpose of your receipts / expenses. Example: "Invoice for Enterprise CMS Conference in Durban"
    • Address: Enter the address of the payment recipient.
  1. Ensure that you have read the Travel Expense and Reimbursement Regulations before you check the checkbox.
  2. Click the orange Save and Continue button. You will be redirected to the reimbursement summary page.

You have now created the reimbursement request itself, and you are ready to add an invoice to be paid directly to the issuer by the TYPO3 Association.

A web page shows a reimbursement request with status Draft, a description, budget number, and no expenses added yet. Buttons for Edit, Delete, and Add Receipt are visible.

Add an invoice or receipt 

We are now going to add an invoice or receipt and the necessary documentation. You must repeat this step for every invoice or receipt. We recommend submitting separate reimbursement requests for each invoice issuer.

  1. On the reimbursement summary page, click the Add receipt button. You will be redirected to the Add expense with a receipt form.

A reimbursement form with fields for expense description, currency, expense amount, receipt upload, and date. A yellow Save button is at the bottom. The page header reads Add expense with a receipt.

  1. Complete the form by filling in the fields:

    • Expense description: Enter a short description of what the expense is for. Example: "Ticket for Enterprise CMS Conference in Durban"
    • Currency of this reimbursement Choose the currency of the expense.
    • Total expense on receipt: To avoid errors, all the digits should be entered as an integer, including the subunit amount (e.g., cents), without a decimal point. For example: 100.00 is entered as 10000.
    • Upload receipt: Upload the invoice or receipt scanned or photographed as a PDF, PNG, or JPG file.
    • Date of expense: Click on the field and select a date from the pop-up calendar. The date must be the same as the date on the invoice or receipt.
  2. Click the orange Save button. You will be redirected to the reimbursement summary page.

Submit the reimbursement for approval 

When you have added all expenses, you can submit the reimbursement for approval.

  1. On the reimbursement summary page, click the Submit for approval button.

The budget owner will be notified about the new reimbursement request.

Summary 

You have now created a reimbursement request and submitted it for approval. The money will be transferred to the invoice issuer within 14 days after the budget owner has approved your request.

Next steps 

Once the payment has been received, you can change the status of the reimbursement to Paid by clicking on the Mark as paid button on the reimbursement summary page.

Resources 

Create a Regular Reimbursement in the Reimbursement Tool 

Categories: Beginner Author: @mabolek

The TYPO3 Reimbursement Tool is the budget and expense management tool for the TYPO3 ecosystem.

As a TYPO3 contributor, you can use it to request and track reimbursements for expenses, work time, or contribution rewards. Reimbursements are reviewed by the budget owner and transferred to you through PayPal or bank transfer.

Learning objective 

In this step-by-step guide you will create a reimbursement for expenses incurred and submit it for approval.

Prerequisites 

Tools and technology 

Knowledge and skills 

Log in to the Reimbursement Tool 

  1. In your web browser, go to reimbursement.typo3.com.
  2. If you are not already logged in, click on the gray Login button.

You will see the Reimbursement Tool dashboard. It is titled My Reimbursements.

Create a reimbursement 

Screenshot of the TYPO3 Reimbursement Tool dashboard. A black β€œRequest Reimbursement” button is prominently circled in red in the upper right of a white section labeled β€œMy Reimbursements.”.

  1. On the Reimbursement Tool dashboard, click the black Request Reimbursement button. You will be redirected to a page asking you to choose Regular Reimbursement or Direct Expense.

A webpage titled Request reimbursement shows helpful links, including Create a reimbursement and Contact Budget Owner. Below are options for Regular or Direct Reimbursement, each with a Create button.

  1. In the Regular Reimbursement box, click the orange Create button. You will be redirected to the request reimbursement form.

A reimbursement request form with fields for budget, purpose, short description, payment method (IBAN), and a checkbox to accept travel regulations, plus a Save and continue button at the bottom.

  1. Complete the form by filling in the fields:

    • Budget: Choose the budget you want to use for this reimbursement.
    • Purpose: Choose the purpose that fits with your reimbursement.
    • Short description: Describe the purpose of your receipts / expenses. Example: "Travel to the TYPO3 Camp in Berlin"
    • Payment method: Choose how you would like the TYPO3 Association to transfer the money to you.
  1. Ensure that you have read the Travel Expense and Reimbursement Regulations before you check the checkbox.
  2. Click the orange Save and Continue button. You will be redirected to the reimbursement summary page.

You have now created the reimbursement request itself, and you are ready to document your expenses.

A reimbursement request page showing status as draft, with details such as description, budget, purpose, payment via bank transfer, IBAN, BIC, and address. There are options to add receipt or driven kilometers.

Add an invoice or receipt 

We are now going to add an invoice or receipt and the necessary documentation. You must repeat this step for every invoice or receipt.

  1. On the reimbursement summary page, click the Add receipt button. You will be redirected to the Add expense with a receipt form.

A reimbursement form with fields for expense description, currency, expense amount, receipt upload, and date. A yellow SAVE button is at the bottom. The page header reads Add expense with a receipt.

  1. Complete the form by filling in the fields:

    • Expense description: Enter a short description of what the expense is for. Example: "Train ticket Berlin–DΓΌsseldorf"
    • Currency of this reimbursement Choose the currency of the expense.
    • Total expense on receipt: To avoid errors, all of the digits should be entered as an integer including the subunit amount (e.g., cents), without a decimal point. For example: 100.00 is entered as 10000.
    • Upload receipt: Upload the invoice or receipt scanned or photographed as a PDF, PNG, or JPG file.
    • Date of expense: Click on the field and select a date from the pop-up calendar. The date must be the same as the date on the invoice or receipt.
  2. Click the orange Save button. You will be redirected to the reimbursement summary page.

You should repeat this step for every invoice or receipt you want to submit.

Add expense for driven kilometers 

If travel by car is necessary and sanctioned by the regulations, you can reimburse driven kilometers.

  1. On the reimbursement summary page, click the Add driven kilometers button. You will be redirected to the Add expense for driven kilometers form.

A reimbursement form for driven kilometers with fields for expense description, kilometers, euro amount (grayed out), date of expense, and a yellow Save button. Example data is filled in each field.

  1. Complete the form by filling in the fields:

    • Expense description: Enter information about your journey’s origin and destination.
    • Kilometers: Enter the total number of kilometers driven. The reimbursed amount will be calculated automatically.
    • Date of expense: Click on the field and select the date of your journey from the pop-up calendar.
  2. Click the orange Save button. You will be redirected to the reimbursement summary page.

You should repeat this step for every journey you want to reimburse.

Submit the reimbursement for approval 

When you have added all expenses, you can submit the reimbursement for approval.

  1. On the reimbursement summary page, click the Submit for approval button.

The budget owner will be notified about the new reimbursement request.

Summary 

You have now created a reimbursement request and submitted it for approval. The money will be transferred to you within 14 days after the budget owner has approved your request.

Next steps 

Once you have received your reimbursement, you can change the status of the reimbursement to Paid by clicking on the Mark as paid button on the reimbursement summary page.

Resources 

Edit an Official TYPO3 Team or Committee Page 

Tested in: TYPO3v13 Categories: Intermediary Backend Editing Author: @mabolek

All official TYPO3 teams and committees have a page at typo3.community. This page is used to explain what the team or committee is, how they function, and to display the team members and their roles. Team and committee leads can edit their pages through the TYPO3 backend.

Learning objective 

In this step-by-step guide you will edit the page of a team or committee through the TYPO3 backend.

Prerequisites 

Tools and technology 

  • Access to a TYPO3 backend (editor or admin account)
  • A web browser

Knowledge and skills 

Access the page properties 

All of the editable page content for a basic team or committee page is stored in the Page record, so you will not have to edit content elements.

  1. Log in to the typo3.community backend at typo3.community/typo3 as explained in Log in to the TYPO3 backend (CREATE). You should see your team or committee’s page in the page tree with an orange icon (A file icon with a white TYPO3 logo on an orange background with a folded corner in the top right.).
  2. Access the page’s page properties as explained in Modify the Page Properties.

Modify the page content in the page properties 

  1. Make sure the Group configuration tab is selected. It should look something like this:

Screenshot of a TYPO3 CMS interface editing the Documentation Team page. The page includes group name, image, a description, and a list of members and their roles.

  1. Edit the fields as required.

    • Page visible: Setting this option to disabled will hide your page. Use if your team or committee has been disbanded.
    • Group title: The name of your team or committee.
    • Path segment: The URL path for your team or committee page. (You should not change this unless your team or committee has been renamed.)
    • Group image: The image that will be displayed on your team or committee page and on cards elsewhere on the TYPO3 websites.
    • Group short description: A short description of your team or committee that will be displayed on your team or committee pageand on cards elsewhere on the TYPO3 websites.
    • Group long description: A long description of your team or committee. Include information on

      • The tasks of your team or committee.
      • Information about regular meetings.
      • How to contact you, e.g., on TYPO3 Slack.
      • The process for joining and leaving.
      • Links to the output of your team or committee.
    • Group members: Add or remove team members.

      • Select user: Select the team member's user from the list.
      • Override role: Enter the team member's role, or simply "Member".
  2. Save the changes.

Summary 

Congratulations! You now have updated the information on your team or committee page.

Next steps 

Now that you have updated the information, you might like to:

  • Let your team members know about the changes.
  • Tell about the updated information on social media.
  • Encourage new members to join your team or committee.

Resources 

Guides Registry 

This is a list of all the published and unpublished Step-by-Step guides. It's also an easy starting point if you would like to contribute a missing guide.

Published Guides 

Building Websites 

Frontend Development 

JavaScript and CSS 

Content Management 

Create Custom Content Elements 
Configure the Backend Layout 

For Official Roles 

Information and Content 

Budgets and Expenses 

Getting Started 

Meet the TYPO3 Community 

Site Packages 

Create a Basic Site Package 

Basic Configuration 

Site Configuration 
Backend Basics 
Implement Site Sets 

Content Creation 

Create and Organize Pages 

Installation 

Set up TYPO3 with DDEV 

Missing Guides 

πŸ“ Contribute a Step-by-Step Guide 

We’re building a library of hands-on, task-focused tutorials to help learners succeed with TYPO3 β€” and we’d love your help!

This section explains how to contribute a guide to the TYPO3 Step-by-Step project. Whether you're documenting your favorite workflow or covering a commonly requested feature, you’ll use a shared structure that keeps things clear and consistent for learners.

You’ll find:

  • The official writing template
  • A detailed contributor guide that walks you through every section

We follow a β€œsingle path to success” philosophy. Every guide shows one clear method to complete one task β€” no branches, no gotchas, no assumptions. If your task is part of a bigger process, you can also write a project guide that links multiple tutorials together.

✨ Want to help others learn TYPO3? Start here.

TYPO3 Step-By-Step Guide Template 

Open this template file in GitHub

This template includes writing instructions {in curly brackets} and boilerplate text that you can customize with your own text. The step-by-step Contributor Guide explains each section in detail, and includes example text for each section. Search the Guide Registry before you start - your guide might already exist!

β€”β€”β€” Remove contents above and including this line when writing β€”β€”β€”

Title 

{The template includes an HTML comment with different tags for categorization (look in the source code). Include the ones you think fits and feel free to add new ones. A tag like #TYPO3v13 indicates that the step-by-step guide has been tested in TYPO3 v13. To credit yourself as author, use "@" followed by your my.typo3.org username (e.g. "@username").}

{Provide a conceptual overview.}

{Feature} enables you to {address pain point}. {Task you are going to learn} helps you {achieve goal}.

Learning objective 

In this step-by-step guide you will {describe what the learner will accomplish}.

Prerequisites 

Tools and technology 

  • {Hardware specifications}
  • {Software installed}
  • {Environments}

Knowledge and skills 

  • {Conceptual knowledge}
  • {Prior learning}

Watch the video 

{Optional. If available, embed the YouTube video version of this tutorial from the TYPO3 official channel.}

Watch this video to follow along with the steps below.

{Task name} 

Scope check time

Don't start writing until you have a clear scope.

If you're unsure about the goal, the audience, or the prerequisites β€” go back and fix it now. Writing the task section without a solid scope will lead to frustration when you’re deep in the details.

{Optional explanatory text}

  1. {Write the first step. Start with a verb.} {Optional: Code sample or screenshot that helps the learner complete this step.} {Optional: Expected outcome.}
  2. {Write the next step. Start with a verb.}

{Task name} 

{Optional explanatory text}

  1. {Write the first step. Start with a verb.} {Optional: Code sample or screenshot that helps the learner complete this step.} {Optional: Expected outcome.}
  2. {Write the next step. Start with a verb.}

{Task name} 

{Optional explanatory text}

  1. {Write the first step. Start with a verb.} {Optional: Code sample or screenshot that helps the learner complete this step.} {Optional: Expected outcome.}
  2. {Write the next step. Start with a verb.}

{For Project guides, use this section to link to existing step-by-step guides}

Summary 

{State the outcome of the step-by-step guide to recap what the learner has achieved.}

Congratulations! You now have {outcome}.

Next steps 

{List links to tasks that the learner could do next.}:

Now that you have {achieved goal}, you might like to:

  • Task 1
  • Task 2
  • Task 3…

Resources 

{Optional. List links to related material.}

  • Resource 1
  • Resource 2
  • Resource 3…

TYPO3 Step-by-Step Contributor Guide 

This is your complete reference for writing and submitting TYPO3 step-by-step guides. We cover everything you need to know:

  • What makes a great tutorial
  • The required structure and sections
  • How to scope your topic and avoid duplication
  • How to write for clarity, confidence, and learner success

You don’t need to be an expert writer to contribute β€” just a TYPO3 user with something to share. We’ll guide you through the process.

Contributor Guide Contents 

What are step-by-step guides? 

TYPO3 step-by-step guides are hands-on tutorials designed to help newcomers accomplish one practical task.

Inspired by the DiΓ‘taxis framework, which emphasizes distinct content types in technical documentation, step-by-step guides map to the tutorials category.

TYPO3 step-by-step guides follow a few key principles:

  • Hands-on learning: The fastest way to learn is by doing.
  • One clear path: No branches β€” just one method that works, from start to finish.
  • Minimal explanation: Explain only what’s necessary to keep someone moving. Link out for deeper context.
  • A successful finish: Every step produces visible progress, and the outcome is reliable and repeatable.
  • Aligned with TYPO3’s official documentation: Linking out to deeper material as needed.
  • Takes less than 30 minutes to complete

What are they not? 

Step-by-step guides aren’t examples. Examples are usually found in the documentation, and help to illustrate concepts β€” they are meant to be studied and understood. Step-by-step guides, in contrast, take the reader through a path of sequential steps, and are designed to be actively followed to learn a new concept.

Modular by design 

Step-by-step guides are modular. Each guide is an atomic unit of action β€” small, focused, and self-contained, with one learning objective and one clear outcome. Guides can be combined to form larger tutorials or workshops, or used independently for self-led learning.

How do step-by-step guides fit in the existing TYPO3 documentation ecosystem? 

TYPO3 documentation Step-by-step guide
Information oriented Supports exploration and problem-solving for people seeking answers or understanding. Learning oriented Helps people learn through hands-on experience.
Comprehensive Presents various approaches, configurations, and possibilities. Also covers edge cases. Single clear path Follows a carefully managed path from start to finish with guaranteed success.
Blends doing and explaining Combines how-to instructions, explanations, and reference information. Focused on doing Prioritizes action with minimal explanation. Links out to deeper material in the documentation.

What are project guides? 

A project guide is made up of multiple step-by-step guides.

Project guides help learners complete multi-part processes by combining individual tasks into a coherent whole. They provide a clear learning sequence and maintain a narrative that shows how the parts fit together.

How project guides extend step-by-step guides 

Project guides compose several atomic step-by-step guides into a larger or more advanced outcome.

Use a project guide when:

  • Multiple distinct tasks are required
  • Some tasks are already covered in other guides
  • It would take more than 30 minutes or feel overwhelming as one block

Examples

  • Build a multilingual site
  • Develop a custom frontend plugin with user authentication

Project guides are modular 

Project guides follow the same template as regular step-by-step guides, the only difference is that the Task section looks a bit different.

Project guides are fully modular. They are made entirely by linking out to existing step-by-step guides, like ingredients in a recipe.

You should only create a project guide once all the step-by-step guides it depends on have been created. This helps avoid incomplete or blocked project guides.

Exception: In rare cases, an author may find that some procedural steps don’t justify a standalone guide β€” perhaps because they’re too minor, too specific, or only make sense in the context of the larger flow. In these situations, it may be appropriate to include a small number of inline steps within a project guide. Use this approach only when a task truly cannot stand alone.

Using the template to create a guide 

When you create a step-by-step guide or a project guide for TYPO3, you must use the step-by-step guide template. Here we explain each section in detail and provide example text to help you.

Go to the Step-by-Step Guide template

Contents 

Titles 

Titles start with a verb and reflect the overall learning objective.

Examples

  • Translate your site to a second language
  • Set up HTTPS
  • Create a password-protected members’ area

About the Conceptual Overview section 

This section has no heading β€” it follows directly after the title. Provide information about why this guide exists. Explain what the feature is, how the goal will help the user, or why the learning objective is useful. If part of a broader learning path, explain where this guide sits in the learning journey to orient the user. Use plain language and assume no prior knowledge of TYPO3. Try to keep it under 100 words.

Example 1 Much of TYPO3’s flexibility comes from its extension API, which lets you add features without changing the Core. You can enable system extensions or install community ones, but when none deliver exactly what you need, you can create your own custom extension.

Example 2 A password-protected member’s area on your website is useful to offer exclusive content, host downloadable files, show work in progress to your clients, and build a sense of community. The basic authentication process and the functionality to create user groups are included in TYPO3’s Core. To leverage this functionality, you need a login form plus some restricted content.

About the Learning objective section 

Provide information that explains what the learner will have, or know, or be able to do after completing the guide. For more complex objectives, you can outline the approach, covering the path the tutorial will take to achieve the goal. Show the learner where they’ll be going.

One of the first things people want to know when they begin a tutorial is, "What will I be able to do? What knowledge will I gain by completing this tutorial?" Learning objectives describe the specific skills or knowledge people will be able to demonstrate after completing your tutorial.

Be mindful of scope: tutorials should present one clear learning objective. If your tutorial includes more than one learning objective, you may need to create a project guide. See the information about project guides for more information

Example simple In this step-by-step guide you will learn how to install and activate an extension.

Example complex In this step-by-step guide, we’ll take the following approach to create a dynamic frontend extension:

  • Create the extension structure
  • Add a custom data structure
  • Activate the extension
  • Create the plugin
  • Fetch content from the database

About the Prerequisites section 

Use this section to list (and where possible, link to) any tools, technologies, and prior knowledge that the learner needs before starting the guide. This helps readers avoid surprises partway through the tutorialβ€”like realizing they’re missing a required tool, environment, or skill.

If you’re writing a guide that requires learners to have completed one or more specific step-by-step guides beforehand, you don’t need to repeat the prerequisites for those earlier guides β€” they carry over by default.

Split your prerequisites into two categories:

  • Tools and technology List all physical and technical requirements needed to complete the task. This might include software (e.g. Composer, DDEV), system setups (e.g. local TYPO3 project), and hardware or environments (e.g. terminal access, browser, operating system).
  • Knowledge and skills Outline any prior learning, conceptual understanding, or assumed familiarity with TYPO3 or related technologies. This could include PHP basics, TYPO3 backend concepts, or experience using the command line.

Example

Tools and technology

  • A TYPO3 site installed using Composer and DDEV
  • Access to the public directory of your project
  • A local database (SQLite, MariaDB, or MySQL)

Knowledge and skills

  • Familiarity using the command line
  • Experience setting up a local development environment using DDEV
  • Understanding of the TYPO3 installation process and project structure

About the Video section 

This section is optional. Ideally, every step-by-step guide will have an accompanying video. If it’s available, include it in this section. You can only link to videos hosted on the official TYPO3 YouTube channel.

About the Task section 

This section makes up the bulk of the guide. This is where you take the learner through the steps required to complete the tutorial.

They may look easy, but there’s a real art to writing an effective step. Before you start writing, break down your learning objective into logical chunks. Long procedures overwhelm readers, but well-structured chunks allow people to pause, see their progress, and celebrate small successes as they work toward the final goal. You might separate tasks by backend/frontend, by module, by UI/file system interactions, by screen, or by different stages in an overall workflow.

Once you've identified your chunks, give each one a clear name β€” these will be your headings in the task section. Always start task headings with a verb.

If you're wrestling with too many chunks and find yourself using headings like "Part 1," "Part 2," you're likely writing a project guide β€” even if it started as a regular step-by-step guide. See the project guide section for more information.

Key principles for effective tasks: 

  • Break down processes into logical chunks
  • Keep each task focused on a single objective
  • Use verb-based headings for each task (e.g., "Configure the Database," not "Database Configuration")
  • If you find yourself writing more than ~10 numbered steps per task, see the tips for dealing with too many steps.

Think like a developer If you’re stuck figuring out how much to include, ask yourself: Would I write one function to do all of this? If not, break it up. Just like code, your guide should follow the single-responsibility principle.

Tips for writing steps 

  • Each numbered step should describe one action. Provide minimal explanation of actions in the most basic language possible. Use the ELI5 principle (β€œExplain like I’m five years old”).
  • Present information in a logical sequence. For example:

    • βœ… On the File menu, choose Print.
    • ❌ Choose Print from the File menu.
  • Use links generously to abstract detail. Link to more detailed explanation, term definitions, supplementary information for context or conceptual material. For example, β€œWe always do x before y because… (link to other material for more detail).”
  • Include code blocks (follow code example rules) and screenshots where appropriate.
  • Use admonitions where appropriate: hints, tips, notes, warning, etc.
  • Include expected outcomes. This helps learners confirm they are on the right track. Provide continual feedback. Keep up a narrative of expectations to provide feedback to the learner that they are indeed on the right path. Give your learner clear expectations and plenty of clues to help confirm they are on the right track.

    • Show example output or the exact expected output. For example, β€œThe output should look something like; After a few moments, the server responds with; Notice that; Let’s check”.
    • Describe possibly surprising results: β€œThe command will probably return several hundred lines of logs in your terminal.”
    • If you know in advance what the likely signs of going wrong are, consider flagging them: β€œIf the output doesn’t show x, you have probably forgotten to y”.

Task section examples 

Example β€” Regular

Step-by-step guide title: Create a custom page type

H2 Define the custom page type in TCA

Creating a custom page type allows you to define special layouts and functionality for specific pages in your TYPO3 installation.

  1. Add the new page type configuration to your site's Configuration/TCA/Overrides/pages.php file. {Code block.} Note: We're using 130 as our doktype number. This is a unique identifier that TYPO3 will use to recognize our custom page type.
  2. Create the page type icon in Resources/Public/Icons/ directory and register it in ext_localconf.php. {Code block.} After saving this file, your new icon will appear in the TYPO3 backend when you refresh.

H2 Configure the Page Type Template

  1. Configure the page type in your TypoScript setup. {Code block.}
  2. In the backend, click "Clear all caches".

Great! Your new page type will now display in the "Page Types" dropdown. Let’s go and create a new page based on this page type.

H2 Create a page based on the new page type

  1. In the backend, go to the Pages module and click…

Example β€” Project guide: Fully modular

In this example, each of the numbered steps link to pre-existing step-by-step guides.

H2 Create a multilingual website

  1. Set up multiple languages
  2. Translate content into other languages
  3. Manage language fallbacks

Tips for when you have too many steps 

Lengthy tutorials with too many steps are overwhelming. Remember the single-responsibility principle. There are a few techniques you can use to minimize your step count:

  • Chunking β€” Ensure you have broken down your learning objective into logical chunks. Review your structure and see if you can create more focused task sections. Don't be afraid to get really granular with your task headings β€” smaller, complete units are easier to process.
  • Sub-procedures β€” Use second-level steps (a, b, c) for closely related actions within a main step. This can reduce your broader step count and help learners focus on specific sub-tasks. But too many sub-steps is also overwhelming so second-level steps are not always the answer. Example:

    1. Open the Extension Manager.

      1. Navigate to the main menu.
      2. Select "Extensions" from the dropdown.
      3. Click "Get Extensions" in the module frame.
    2. Do the next thing
  • Tables β€” When steps involve filling in fields with specific values, rather than using a step per field, you can use one step with a two-column table. This works especially well for configuration screens or form inputs. Example: Configure the file mount as follows:
  • Screenshots β€” Rather than using multiple steps to describe a complex screen, you can use a screenshot. For intuitive interfaces, your step might simply be, β€œComplete the form as shown in the image below.”
  • Code blocks with comments β€” Instead of separate steps for each line of code modification, you might be able to use a single code block with clear inline comments explaining each change.
  • Create a short step-by-step guide β€” If a complex sub-procedure is reusable across tutorials, consider moving it to a separate step-by-step guide and linking to it instead of including all steps inline.

Resist the urge to explain everything 

When you're writing task steps, it's easy to get drawn into explaining every detail. But not everything needs to be spelled out β€” especially if it's already documented elsewhere. Focus on what’s unique to your guide, and lean on links for the rest.

Show the route, don’t construct every building. Think of your role like a tour guide. You're showing people the route through existing landmarks (documentation), not constructing the buildings.

Ask yourself: "Is this step specific to the goal, or is it a general skill?". If someone could use that knowledge in completely different contexts, it probably belongs (and already exists!) elsewhere. That’s a sign you can search the documentation for an existing description to link to. For example:

  • "Access page properties" β†’ general skill, link out
  • "Set the page title to match your campaign name" β†’ specific to your tutorial, keep it

If your guide lists a prerequisite, you can assume the reader already knows that material. For example, if you’ve listed β€œBasic Site Management” as a prerequisite, you don’t need to explain how to add a new backend user in your task steps β€” just say β€œCreate a backend user for the editor role” and move on.

About the Summary section 

Write a short statement (1–2 sentences) that summarizes what has just been taught β€” recap what the reader just did. Reinforce the tangible or practical outcome, and/or restate the benefit or context in TYPO3. Avoid repeating the learning objectives word for word. Describe (and admire, in a mild way) what your learner has accomplished.

Examples Congratulations! You now know how to install and activate new extensions.

Congratulations, your website is now available in two languages! Your editors can manually translate your content, and your website visitors can switch between languages.

Congratulations β€” your members-only area is live! Registered users can now log in to access exclusive pages, while TYPO3 handles authentication for you.

About the Next steps section 

List one or more actions the learner is likely to find useful after completing the current material. This could be based on your sense of what the reader might logically do or explore next; or you can refer to some established learning pathways to help identify next steps:

  • The t3cec-curriculum:start
  • The syllabus for the different TYPO3 certifications
  • The SkillSets listed in SkillDisplay for various TYPO3 learning journeys

If there are no clear next steps, you can omit this section.

Example

Now that you have some experience with extensions, you can continue to add functionality to your site β€” either to change the backend experience, or to add features to the frontend. When you’re ready, you can look into building your own extension.

  • Add a blog to your site
  • Change the backend look-and-feel
  • Create your first extension

About the Resources section 

This section is optional but highly recommended. Link to material with opportunities for learners to expand their understanding.

Related material might include TYPO3 guides or documentation, web pages, blog posts, community or forum discussions, videos, etc.

Example

  • How to choose good extensions
  • About the TYPO3 Extension Repository

Contributing a Step-by-Step Guide Using Your Browser and GitHub 

Categories: Beginner Author: @mabolek

It's easy to add a new guide to the TYPO3 Step-by-Step Guides. All of the guides are written in plain text using simple formatting instructions called Markdown. You can add a new guide using only your web browser and the tools available on the GitHub website, where the guide files are stored.

Learning objective 

In this step-by-step guide you will create a new Step-by-Step guide and create a pull request, asking for your guide to be included in the TYPO3 Step-by-Step guides.

Here is the approach we'll take:

  • Create a GitHub account
  • Copy content from the template
  • Create a new file
  • Create a fork
  • Commit your changes
  • Open a pull request

Prerequisites 

Tools and technology 

  • A computer with a web browser and an internet connection

Knowledge and skills 

  • How to use a web browser
  • How to edit files and make screenshots on the computer you are using
  • Basic understanding of Markdown, as explained in the Markdown Cheat Sheet
  • How to use the step-by-step guide template, as explained in Using the Template.

Create a GitHub user account 

The TYPO3 Step-by-Step guide files are stored online, at a website called GitHub. This is a place where people upload and collaborate on collections of files and folders relating to their file-based projects.

To edit files at GitHub, you need to create a user account there. Let's create one.

  1. In your browser, visit Creating an account on GitHub in the GitHub Documentation.
  2. Read the information on the page.
  3. Follow the 4 steps in the Signing up for a new personal account section.

You now have a user account on GitHub. At the end of the sign-up process, you should be logged in as a user. You must always be logged in on GitHub in order to edit and contribute to files in repositories and projects there.

Copy content from the template 

All step-by-step guides should be based on the template file. It includes important instructions and makes the job of writing the guide easier. You need to copy it so it can be the starting point for your new guide.

  1. Visit the step-by-step guide template in your web browser by clicking this link: github.com/TYPO3-Documentation/TYPO3CMS-Guide-StepByStep/blob/contrib/Documentation/90Contribute/10Template/Index.md
  2. When the page has loaded, click the "Copy raw file" button. The button has no text, but an icon with two partially overlapping squares. In the screenshot below, it is highlighted with an orange frame and there is an orange arrow pointing to it.

Screenshot of the TYPO3 Step-by-Step Guide template on GitHub. An orange arrow points to a button with two partially overlapping squares with an orange highligt frame.

You have now copied the raw Markdown code of the template, and you're ready to paste it into a new file.

Create a new file 

We'll create a file for our new step-by-step guide. Unless you know where in the structure your guide belongs, new guides should be placed in a dedicated folder for new (or incoming) guides.

  1. In your web browser, go to the Step-by-Step guides repository at github.com/TYPO3-Documentation/TYPO3CMS-Guide-StepByStep. It will look a bit like in the screenshot below.

A GitHub repository file list showing folders called ".github/workflows", "Documentation", and "bin". Options like Go to file and Code are visible at the top.

  1. In the list of files and folders, click on "Documentation". This will load a new list of files and folders.
  2. In the list of files and folders, click on the folder called "00Incoming". This will load a similar list, showing the filed and folders contained within that folder. This is where new guides are created. It will look a bit like in the screenshot below, but the exact files might change.

GitHub repository directory view for 00Incoming folder. Shows one file, Index.md. Options like "Go to file" and "Add file" are visible at the top.

  1. Click on the "Add file" button. A drop-down menu will appear.

A search bar labeled "Go to file", a button labeled "Add file", and a dropdown menu with options "Create new file" and "Upload files".

  1. Select "Create new file" from the drop-down menu. You'll see a warning page similar to the screenshot below, saying "You need to fork this repository to propose changes."

A message states "you must fork a repository to propose changes," with a green "Fork this repository button" and a "Learn more about forks" link below it.

Create a fork 

Each collection of files and folders is called a repository. In order to edit files in a repository, you must first make your own copy of it. Such a copy is called a fork. It's not referring to the cutlery item, but it's rather a reference to a fork in the road. When you make changes to the repository, it diverges from the original. (Don't worry, later on we'll merge the two together again.)

  1. Click the green "Fork this repository" button. This will start a forking process that may take a few seconds. Once the process is finished, you will see something like the screenshot below:

A GitHub page shows a text box labeled "Name your file...", "Cancel changes" and "Commit changes..." buttons, and a text editor area with the line "Enter file contents here."

  1. Where it says "Enter file contents here" is a text editor. Paste in the step-by-step guide template that you copied previously.
  2. Enter a name for your file in the text box where it says "Name your file…". The Using the Template guide explains exactly what your file name should be, how it should be formatted, and that it must end in ".md".

When you are finished, it should look something like in this screenshot:

Screenshot of a GitHub interface showing a Markdown file titled "CreatingAGuide.md" being edited. The file contains a template for a TYPO3 step-by-step guide, with instructional text and placeholders.

Write the guide 

Here is the point in the process when you write the step-by-step guide. See [Using the Template] 30UsingTheTemplate.md) for help to write each section of the guide.

Commit your changes 

Committing your changes means the same as saving them, but you also add a message saying what changes your save action includes.

  1. Click the green "Commit changes…" button. A dialog titled "Propose Changes" will appear.

A dialog box titled Propose changes shows fields for a commit message, extended description, and commit email, with Cancel and green Propose changes buttons at the bottom.

  1. Fill in the fields in the dialog:

    • Commit message: Briefly describe what you've done. Use just a few words or the title of your Step-by-Step guide.
    • Extended description: Optional. You can add a longer description here.
    • Commit Email: You can usually leave this unchanged. This is the email address that will be related to your commit.
  2. Click the green "Propose changes" button. This will open a new page titled "Comparing changes," looking something like the screenshot below:

A GitHub interface shows the Comparing changes view, allowing selection of repositories and branches. Options to create a pull request or compare forks are visible, along with commit, file changed, and contributor details.

Open a pull request 

When you're finished writing your guide, you're ready to ask for it to be copied from your fork into the official step-by-step guide repository.

To tell the Step-by-Step Guide maintainers that you have new things to contribute, you must open a pull request. Basically a request to "please, pull in my changes."

You're still on the "Comparing changes" page shown in the screenshot above.

  1. Click the green "Create pull request" button. The "Create pull request" form will appear, as shown in the screenshot below.

GitHubCreatePullRequest.png

  1. In the "Add a title" field, check that the title is how you'd like it to be. It should be the same as you entered in your commit message earlier.
  2. Click the green "Create pull request" button.

Your pull request has now been created and the maintainers will be alerted. They will review your Step-by-Step guide and let you know if they have any questions.

Summary 

Thank you for contributing to TYPO3! You have now written and contributed your very own Step-by-Step Guide using only your browser and the tools available at GitHub.

Next steps 

Now that you have written your guide, you can continue by creating more Step-by-Step Guides or make changes to the one you have already created. It is also possible to add screenshot files to your guide to make it more visual.

Resources 

Linking and Interlinking 

Step-by-step guides don’t exist in a vacuum, and linking to and from other content multiplies their usefulness. In addition to linking between step-by-step guides, there are two main document types to interlink with: the encyclopedic TYPO3 documentation, and SkillDisplay skills.

Strategy for similar software scenarios 

Sometimes, the task is basically the same β€” but not quite. Installing TYPO3 on Windows isn’t that different from doing it on Ubuntu. Apache and Nginx both serve pages just fine. But the commands, quirks, and gotchas? They diverge fast.

So how do we write guides that are helpful without repeating ourselves endlessly?

TYPO3 step-by-step guides follow a single-path principle, so we create one guide per software scenario. This brings SEO opportunities but does increase the risk of content duplication and maintenance.

One guide per scenario β€” optimized for SEO 

  • SEO visibility: Each guide title becomes a unique, keyword-targeted entry point.
  • Clarity: One guide, one clear path β€” no branching or conditional steps.

Example hierarchy:

└── Getting Started
    └── Installation
        └── Local Development Environments
            β”œβ”€β”€ Install TYPO3 on macOS with DDEV
            β”œβ”€β”€ Install TYPO3 on Windows 11 with DDEV
            └── Install TYPO3 on Ubuntu 22.04 with DDEV
Copied!

Or:

└── Advanced Implementation
    └── Deployment and DevOps
        └── Server Stack Scenarios
            β”œβ”€β”€ Install TYPO3 with Apache and MySQL
            β”œβ”€β”€ Install TYPO3 with Nginx and MariaDB
            └── Install TYPO3 with Caddy and PostgreSQL
Copied!

To boost SEO further, use long-tail keywords in the title and conceptual overview. For example: β€œThis guide walks you through how to install TYPO3 CMS on Ubuntu 22.04 using Composer and DDEV β€” ideal for developers working in a Linux environment.”

We can also cross-link to related guides, for example, β€œUsing macOS instead? See our macOS installation guide.”

Extract shared tasks into atomic guides 

Instead of repeating similar chunks across guides, we’ll use modular content reuse strategies to minimize duplication.

For example, for β€œInstall TYPO3 on Windows 11 with DDEV”, we might:

  • Create one atomic guide for β€œInstall DDEV on Windows 11”
  • Create another for β€œRun the TYPO3 browser-based installer”
  • Link both into the OS-specific guide, which focuses on the Windows-specific context

Submit for Review 

Minimum requirements 

All TYPO3 Step-by-Step Guides must include the following required sections:

  • Title β€” Starts with a verb and reflects the overall learning objective
  • Conceptual overview β€” Follows the title directly (no heading), uses plain language, and stays under ~100 words
  • Learning objective β€” Describes what the learner will achieve by completing the guide
  • Prerequisites β€” Lists required software, tools, environments, and any conceptual knowledge
  • Task section

    • Includes at least one task with numbered steps
    • Each step begins with a verb and describes one action
    • Each task includes at least one expected outcome
  • Summary β€” Recaps what has been achieved
  • Next steps β€” Suggests logical follow-on tasks

The following sections are optional but strongly encouraged:

  • Resources β€” Links to supporting material
  • Video β€” Embedded video version of the guide (from the official TYPO3 YouTube channel)

Use the template and writing instructions to complete each section.

All required sections must be complete and free of placeholders like β€œTBD.”

Every guide will have room for improvement β€” that’s expected. That’s why all TYPO3 step-by-step guides include a feedback section to collect reader-reported gaps and issues.

Definition of done 

A step-by-step guide is ready for submission when:

[ ] All required sections are complete β€” no placeholders [ ] Numbered steps are logical, testable, and lead to the expected outcome [ ] Screenshots or code examples are included where appropriate and follow TYPO3 guidelines [ ] Relevant concepts or references are linked where needed [ ] Language is clear, concise, and action-oriented [ ] The guide has been tested by the author [ ] The guide follows TYPO3 writing conventions and formatting rules [ ] The guide fits its intended scope. (One learning objective per guide, or a project guide for more complex, multi-step processes.)

Understanding the Primary Structure 

Before you write or place a guide, it helps to understand how TYPO3’s step-by-step guides are organized.

You don’t need to read this section to follow a tutorial. But if you’re curious how guides are grouped or why they follow a particular order this is where we explain it.

The TYPO3s step-by-step guides are arranged in a primary structure (from beginner to advanced) and can be organized into learning paths that suit different goals and roles, like building a site or becoming an editor.

If you're contributing a new guide, you may want to decide where in the structure to place the guide. This helps keep things tidy β€” and helps learners find what they need, when they need it.

Primary Structure of the Step-by-Step Guides 

The primary structure of the step-by-step guides is a hierarchical, progression-based approach, with the most beginner-friendly content at the beginning and advancing towards advanced topics. It serves as a superset of all specialized learning paths. It facilitates maintenance of guides and learning paths. As such, it is not directly intended to be the preferred entry point for readers looking for particular learning paths.

Contents

Secondary structures: learning paths 

Learning should be tailored to a particular role or project.

While the primary structure represents a progression through topics, from beginner to advanced, it isn’t the preferred way of learning TYPO3 because it contains topics for multiple audiences.

Specific tasks or roles require focused learning paths. A learning path is a subset of the primary structure’s step-by-step guides. Irrelevant guides are omitted, while the sort order can usually remain the same, as learning paths ideally start with beginner-level topics and move on to advanced topics.

Learning paths fall into one of two categories: task-based and role-based.

Task-based learning paths 

Beginners often look for a guided way of solving a particular task, such as getting started with a basic website or building a web application. Below are three examples of such task-based learning paths. Note that all of them were created from the primary structure by taking out irrelevant guides; no further adjustments (such as reordering the guides, adding guides that don’t exist in the primary structure, or choosing a different hierarchy) have been applied.

Quick site setup 

TYPO3 Step-by-Step Guides/
β”œβ”€β”€ Getting Started/
β”‚   β”œβ”€β”€ Installation/
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 with Composer
β”‚   β”œβ”€β”€ Basic Configuration/
β”‚   β”‚   β”œβ”€β”€ First-time Backend Setup
β”‚   β”‚   β”œβ”€β”€ Set Up a Site Configuration
β”‚   └── Site Packages/
β”‚       β”œβ”€β”€ Use the Bootstrap Package
β”œβ”€β”€ Building Websites/
β”‚   β”œβ”€β”€ Content Management/
β”‚   β”‚   β”œβ”€β”€ Set Up Page Types
β”‚   β”œβ”€β”€ Extensions/
β”‚   β”‚   β”œβ”€β”€ Find and Install Extensions
Copied!

Building a corporate website 

TYPO3 Step-by-Step Guides/
β”œβ”€β”€ Getting Started/
β”‚   β”œβ”€β”€ Installation/
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 with Composer
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 without Composer
β”‚   β”‚   β”œβ”€β”€ Set up TYPO3 with DDEV
β”‚   β”œβ”€β”€ Basic Configuration/
β”‚   β”‚   β”œβ”€β”€ First-time Backend Setup
β”‚   └── Site Packages/
β”‚       β”œβ”€β”€ Create a Basic Site Package
β”‚       └── Implement Your Design
β”œβ”€β”€ Building Websites/
β”‚   β”œβ”€β”€ Content Management/
β”‚   β”‚   β”œβ”€β”€ Set Up Page Types
β”‚   β”‚   β”œβ”€β”€ Create Custom Content Elements
β”‚   β”‚   β”œβ”€β”€ Configure the Backend Layout
β”‚   β”‚   └── Manage Backend User Permissions
β”‚   β”œβ”€β”€ Multilingual Websites/
β”‚   β”‚   β”œβ”€β”€ Set Up Multiple Languages
β”‚   β”‚   β”œβ”€β”€ Translate Content
β”‚   β”‚   β”œβ”€β”€ Manage Language Fallbacks
β”‚   β”‚   └── Work with Translation Services
β”œβ”€β”€ Advanced Implementation/
β”‚   β”œβ”€β”€ Performance Optimization/
β”‚   β”‚   β”œβ”€β”€ Configure Caching
β”‚   β”‚   β”œβ”€β”€ Set Up a CDN
β”‚   β”‚   β”œβ”€β”€ Optimize Database
β”‚   β”‚   └── Implement Static Site Generation
└── Maintenance and Security/
    β”œβ”€β”€ Regular Maintenance/
    β”‚   β”œβ”€β”€ Backup and Restore Procedures
    β”‚   β”œβ”€β”€ Update TYPO3 Core
    β”‚   β”œβ”€β”€ Update Extensions
    β”‚   └── Database Maintenance Tasks
    β”œβ”€β”€ Security/
    β”‚   β”œβ”€β”€ Implement Security Best Practices
    β”‚   β”œβ”€β”€ Set Up HTTPS
    β”‚   β”œβ”€β”€ Manage User Authentication
    β”‚   └── Security Incident Response
Copied!

Building a web application 

TYPO3 Step-by-Step Guides/
β”œβ”€β”€ Getting Started/
β”‚   β”œβ”€β”€ Installation/
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 with Composer
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 without Composer
β”‚   β”‚   β”œβ”€β”€ Set up TYPO3 with DDEV
β”‚   β”œβ”€β”€ Basic Configuration/
β”‚   β”‚   β”œβ”€β”€ First-time Backend Setup
β”œβ”€β”€ Building Websites/
β”‚   β”œβ”€β”€ Extensions/
β”‚   β”‚   β”œβ”€β”€ Find and Install Extensions
β”‚   β”‚   β”œβ”€β”€ Configure Common Extensions
β”‚   β”‚   β”œβ”€β”€ Customize Extension Templates
β”‚   β”‚   └── Troubleshoot Extension Issues
β”œβ”€β”€ Advanced Implementation/
β”‚   β”œβ”€β”€ Extension Development/
β”‚   β”‚   β”œβ”€β”€ Create a Basic Extension
β”‚   β”‚   β”œβ”€β”€ Develop with Extbase and Fluid
β”‚   β”‚   β”œβ”€β”€ Build Non-Extbase Extensions
β”‚   β”‚   └── Create Extension APIs
β”‚   β”œβ”€β”€ System Integration/
β”‚   β”‚   β”œβ”€β”€ Connect to External Services
β”‚   β”‚   β”œβ”€β”€ Implement Single Sign-On
β”‚   β”‚   β”œβ”€β”€ Set Up REST APIs
β”‚   β”‚   └── Integrate with Third-party Systems
β”‚   └── Deployment and DevOps/
β”‚       β”œβ”€β”€ Set Up CI/CD Pipelines
β”‚       β”œβ”€β”€ Implement Git Workflows
β”‚       β”œβ”€β”€ Containerize with Docker
β”‚       └── Kubernetes Deployment
└── Maintenance and Security/
    β”œβ”€β”€ Regular Maintenance/
    β”‚   β”œβ”€β”€ Backup and Restore Procedures
    β”‚   β”œβ”€β”€ Update TYPO3 Core
    β”‚   β”œβ”€β”€ Update Extensions
    β”‚   └── Database Maintenance Tasks
    β”œβ”€β”€ Security/
    β”‚   β”œβ”€β”€ Implement Security Best Practices
    β”‚   β”œβ”€β”€ Set Up HTTPS
    β”‚   β”œβ”€β”€ Manage User Authentication
    β”‚   └── Security Incident Response
    β”œβ”€β”€ Monitoring/
    β”‚   β”œβ”€β”€ Set Up Application Monitoring
    β”‚   β”œβ”€β”€ Configure Log Management
    β”‚   β”œβ”€β”€ Implement Alerts
    β”‚   └── Performance Monitoring
    └── Troubleshooting/
        β”œβ”€β”€ Debug Common Issues
        β”œβ”€β”€ Use the Admin Panel
        β”œβ”€β”€ Work with Exception Logs
        └── Get Community Support
Copied!

Role-based learning paths 

Users who want to take on a particular role in their TYPO3 team can take a role-based learning path. Standard roles include editors, integrators, developers, and administrators. These learning paths are a filtered subset of the primary structure without further restructuring.

Editor path 

TYPO3 Step-by-Step Guides/
β”œβ”€β”€ Getting Started/
β”‚   β”œβ”€β”€ Basic Configuration/
β”‚   β”‚   β”œβ”€β”€ First-time Backend Setup
β”‚   β”‚   β”œβ”€β”€ Create Your First Pages
β”‚   β”œβ”€β”€ Content Creation/
β”‚   β”‚   β”œβ”€β”€ Create and Organize Pages
β”‚   β”‚   β”œβ”€β”€ Add Various Content Elements
β”‚   β”‚   β”œβ”€β”€ Work with the Rich Text Editor
β”‚   β”‚   └── Manage Media Assets
β”œβ”€β”€ Building Websites/
β”‚   β”œβ”€β”€ Content Management/
β”‚   β”‚   └── Manage Backend User Permissions
β”‚   β”œβ”€β”€ Multilingual Websites/
β”‚   β”‚   β”œβ”€β”€ Translate Content
β”‚   β”‚   β”œβ”€β”€ Manage Language Fallbacks
β”‚   β”‚   └── Work with Translation Services
Copied!

Integrator path 

TYPO3 Step-by-Step Guides/
β”œβ”€β”€ Getting Started/
β”‚   β”œβ”€β”€ Installation/
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 with Composer
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 without Composer
β”‚   β”‚   β”œβ”€β”€ Set up TYPO3 with DDEV
β”‚   β”‚   └── Upgrade an Existing TYPO3 Installation
β”‚   β”œβ”€β”€ Basic Configuration/
β”‚   β”‚   β”œβ”€β”€ First-time Backend Setup
β”‚   β”‚   β”œβ”€β”€ Create Your First Pages
β”‚   β”‚   β”œβ”€β”€ Set Up a Site Configuration
β”‚   β”‚   └── Implement Site Sets (v13+)
β”‚   β”œβ”€β”€ Content Creation/
β”‚   β”‚   β”œβ”€β”€ Create and Organize Pages
β”‚   β”‚   β”œβ”€β”€ Add Various Content Elements
β”‚   β”‚   β”œβ”€β”€ Work with the Rich Text Editor
β”‚   β”‚   └── Manage Media Assets
β”‚   └── Site Packages/
β”‚       β”œβ”€β”€ Create a Basic Site Package
β”‚       β”œβ”€β”€ Use the Bootstrap Package
β”‚       β”œβ”€β”€ Customize Templates
β”‚       └── Implement Your Design
β”œβ”€β”€ Building Websites/
β”‚   β”œβ”€β”€ Content Management/
β”‚   β”‚   β”œβ”€β”€ Set Up Page Types
β”‚   β”‚   β”œβ”€β”€ Create Custom Content Elements
β”‚   β”‚   β”œβ”€β”€ Configure the Backend Layout
β”‚   β”‚   └── Manage Backend User Permissions
β”‚   β”œβ”€β”€ Multilingual Websites/
β”‚   β”‚   β”œβ”€β”€ Set Up Multiple Languages
β”‚   β”‚   β”œβ”€β”€ Translate Content
β”‚   β”‚   β”œβ”€β”€ Manage Language Fallbacks
β”‚   β”‚   └── Work with Translation Services
β”‚   β”œβ”€β”€ Extensions/
β”‚   β”‚   β”œβ”€β”€ Find and Install Extensions
β”‚   β”‚   β”œβ”€β”€ Configure Common Extensions
β”‚   └── Frontend Development/
β”‚       β”œβ”€β”€ Understand Fluid Templates
β”‚       β”œβ”€β”€ Create Responsive Layouts
β”‚       β”œβ”€β”€ Implement Frontend User Registration
β”‚       └── Add Custom JavaScript and CSS
└── Maintenance and Security/
    β”œβ”€β”€ Regular Maintenance/
    β”‚   β”œβ”€β”€ Backup and Restore Procedures
    β”‚   β”œβ”€β”€ Update TYPO3 Core
    β”‚   β”œβ”€β”€ Update Extensions
    β”‚   └── Database Maintenance Tasks
    β”œβ”€β”€ Security/
    β”‚   β”œβ”€β”€ Implement Security Best Practices
Copied!

Developer path 

TYPO3 Step-by-Step Guides/
β”œβ”€β”€ Advanced Implementation/
β”‚   β”œβ”€β”€ Extension Development/
β”‚   β”‚   β”œβ”€β”€ Create a Basic Extension
β”‚   β”‚   β”œβ”€β”€ Develop with Extbase and Fluid
β”‚   β”‚   β”œβ”€β”€ Build Non-Extbase Extensions
β”‚   β”‚   └── Create Extension APIs
β”‚   β”œβ”€β”€ System Integration/
β”‚   β”‚   β”œβ”€β”€ Connect to External Services
β”‚   β”‚   β”œβ”€β”€ Implement Single Sign-On
β”‚   β”‚   β”œβ”€β”€ Set Up REST APIs
β”‚   β”‚   └── Integrate with Third-party Systems
β”‚   β”œβ”€β”€ Performance Optimization/
β”‚   β”‚   β”œβ”€β”€ Configure Caching
β”‚   β”‚   β”œβ”€β”€ Optimize Database
β”‚   β”‚   └── Implement Static Site Generation
└── Maintenance and Security/
    └── Troubleshooting/
        β”œβ”€β”€ Debug Common Issues
        β”œβ”€β”€ Use the Admin Panel
        β”œβ”€β”€ Work with Exception Logs
        └── Get Community Support
Copied!

Admin path 

TYPO3 Step-by-Step Guides/
β”œβ”€β”€ Getting Started/
β”‚   β”œβ”€β”€ Installation/
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 with Composer
β”‚   β”‚   β”œβ”€β”€ Install TYPO3 without Composer
β”‚   β”‚   β”œβ”€β”€ Set up TYPO3 with DDEV
β”‚   β”‚   └── Upgrade an Existing TYPO3 Installation
β”‚   β”œβ”€β”€ Basic Configuration/
β”‚   β”‚   β”œβ”€β”€ First-time Backend Setup
β”‚   β”‚   β”œβ”€β”€ Set Up a Site Configuration
β”‚   β”‚   └── Implement Site Sets (v13+)
β”œβ”€β”€ Building Websites/
β”‚   β”œβ”€β”€ Content Management/
β”‚   β”‚   β”œβ”€β”€ Set Up Page Types
β”‚   β”‚   β”œβ”€β”€ Create Custom Content Elements
β”‚   β”‚   β”œβ”€β”€ Configure the Backend Layout
β”‚   β”‚   └── Manage Backend User Permissions
β”‚   β”œβ”€β”€ Multilingual Websites/
β”‚   β”‚   β”œβ”€β”€ Set Up Multiple Languages
β”‚   β”œβ”€β”€ Extensions/
β”‚   β”‚   β”œβ”€β”€ Find and Install Extensions
β”‚   β”‚   β”œβ”€β”€ Configure Common Extensions
β”‚   β”‚   β”œβ”€β”€ Customize Extension Templates
β”‚   β”‚   └── Troubleshoot Extension Issues
β”œβ”€β”€ Advanced Implementation/
β”‚   β”œβ”€β”€ Performance Optimization/
β”‚   β”‚   β”œβ”€β”€ Configure Caching
β”‚   β”‚   β”œβ”€β”€ Set Up a CDN
β”‚   └── Deployment and DevOps/
β”‚       β”œβ”€β”€ Set Up CI/CD Pipelines
β”‚       β”œβ”€β”€ Implement Git Workflows
β”‚       β”œβ”€β”€ Containerize with Docker
β”‚       └── Kubernetes Deployment
└── Maintenance and Security/
    β”œβ”€β”€ Regular Maintenance/
    β”‚   β”œβ”€β”€ Backup and Restore Procedures
    β”‚   β”œβ”€β”€ Update TYPO3 Core
    β”‚   β”œβ”€β”€ Update Extensions
    β”‚   └── Database Maintenance Tasks
    β”œβ”€β”€ Security/
    β”‚   β”œβ”€β”€ Implement Security Best Practices
    β”‚   β”œβ”€β”€ Set Up HTTPS
    β”‚   β”œβ”€β”€ Manage User Authentication
    β”‚   └── Security Incident Response
    β”œβ”€β”€ Monitoring/
    β”‚   β”œβ”€β”€ Set Up Application Monitoring
    β”‚   β”œβ”€β”€ Configure Log Management
    β”‚   β”œβ”€β”€ Implement Alerts
    β”‚   └── Performance Monitoring
    └── Troubleshooting/
        β”œβ”€β”€ Debug Common Issues
        β”œβ”€β”€ Use the Admin Panel
        β”œβ”€β”€ Work with Exception Logs
        └── Get Community Support
Copied!

How to relate secondary structures to the primary structure 

Readers can access any guide without choosing a learning path first. To give them a hint about the guide’s context, each guide should contain a visual guidance about available learning paths.

For example:

This guide is part of the following learning paths:

  • Editor path
  • Integrator path
  • Quick site setup

How to Place Guides in the Registry Structure 

This guide is for writers who create step-by-step guides and discover new step-by-step content that does not yet exist in the Guide Registry.

Finding the right place for a new guide is not always easy. You might find that no place in the structure seems to fit well, or you might find multiple places to place the new guide. The guide you’re reading was created for these corner cases to help you make an informed decision.

The guide structure philosophy 

The TYPO3 Step-by-Step Guides are structured to benefit beginners while being useful for advanced users as well.

  • The main structure is hierarchical for easy and unambiguous navigation
  • Topics are sorted from beginner to advanced to support steady progress while allowing readers to select topics of interest
  • Guides can be prerequisites to other guides, forming a (simple) knowledge graph.

Step 1: Pre-classification check 

Before attempting to classify a guide, first ensure the guide is truly needed and well-defined. The following checklist will help you with this task:

To check… …ask this: Explanation
Applicability Does my content idea classify as a step-by-step guide? Determine if your content is about specific steps someone can perform to achieve a focused goal. If it is a general skill that can be used in different contexts, add it to the TYPO3 documentation and cross-link to it from an existing step-by-step guide.
Necessity Does this guide fill a genuine gap? Verify if the content is already handled elsewhere, maybe under a topic you wouldn’t think of in the first place.
Clarity Is the scope clearly defined? Ensure that the guide focuses on one actionable task. Think of the potential target audience(s).
Skill level What are the prerequisites for this guide? Check which other guides and/or external knowledge and skills a reader needs to make use of the guide.
Knowledge transfer potential What will readers be able to do after completing it? Every guide should enable the reader to do a task they aren’t able to do without the knowledge from the guide.
Uniqueness Could this content be integrated into an existing guide instead as an optional step, explanatory note, or sub-step within an existing task? On some occasions, potential content for a guide might not be enough to warrant a full guide or it might be very similar to existing content. In that case, it might belong in an existing guide rather than as a guide of its own.

Step 2: Content classification 

If your content idea survived the pre-classification check (congratulations!), the next step is to determine where exactly the new content should be placed.

Go through these four sub-steps and think thoroughly through the questions to gain clarity on the best placement of your new guide:

Step 2.1: Identify the skill level required 

  • Beginner: Assumes minimal prior knowledge
  • Intermediate: Builds on basic concepts
  • Advanced: Requires substantial background knowledge

Step 2.2: Map prerequisite knowledge 

  • What must readers know before starting?
  • Which existing guides should they have completed?

Step 2.3: Identify logical parent categories 

  • What broader topic does this belong to?
  • Where would readers naturally look for this information?

Step 2.4: Consider the learning sequence 

  • What should readers do immediately before this guide?
  • What should they do immediately after?

Now you should have identified a clear place in the step-by-step guide structure to add your new guide to. However, your guide idea might be an edge case where the steps don’t deliver a clear result. In this case, consult the Common Placement Scenarios and Solutions section for resolving typical classification challenges.

Step 3: Final validation 

Enter this step after you have completed a draft of the new guide. Review the following questions to improve the draft and re-evaluate the proper placement within the structure.

Quality assurance questions

  1. Does the placement maintain the learning progression?
  2. Are the prerequisites clearly stated and available?
  3. Does the guide connect logically to the surrounding content?
  4. Would a new user naturally find this guide where it's placed?
  5. Is the difficulty level appropriate for its position?

We would recommend having someone else go through these questions as part of a peer review process. A fresh perspective from another reviewer can help to spot overlooked details and provide additional insights about the placement.

Common Placement Scenarios and Solutions 

This section provides additional guidance for cases that refuse to get classified through the classification steps. Most likely, your guide idea matches one of the following scenarios:

Scenario A: "This could fit in multiple places" 

The content of your guide appears to be applicable to multiple categories of the guide structure.

Solution: Choose the most suitable place based on either of the following:

  • The primary use case
  • The most common learning path
  • The lowest possible skill level

Also reconsider this question from Step 2.3: Where would readers naturally look for this information?

Scenario B: "This doesn't fit anywhere perfectly" 

The new content does not fit well into the given categories or sub-categories.

Solution: Evaluate if the content justifies a new category. This would especially be the case if the content can be completed with more missing content for the same category. Otherwise, consider if the guide needs restructuring.

Scenario C: "This seems too advanced for beginners but too basic for intermediates" 

The content doesn’t specifically address the needs of a given skill level, or it spans multiple skill levels.

Solution: Verify if your content is really focused on one precise task.

  • If it is focused, then you could bridge the gap for beginners by adding an appropriate guide as a prerequisite, to help beginners reach the level of understanding required to make use of your guide.
  • If the content turns out to be too broad, aim to split it into beginner-level and intermediate-level content.

Scenario D: "This is a specialized topic that few people need" 

The content doesn’t seem to fit anywhere well because it addresses a very specific problem or a rarely used TYPO3 feature.

Solution: Reconsider if the content would make a good step-by-step guide. It might be more appropriate as part of a reference documentation. If you think the content is worth being added to the step-by-step guides, discuss your content idea with the documentation team to determine a placement strategy for this and other niche content.

Worked Example 

Let’s walk through how we might evaluate and place a step-by-step guide that doesn’t have an obvious home: β€œEnable Open Graph tags for social media sharing”

At first glance 

  • Raises multiple classification questions:

    • Is it too narrow to be a standalone guide?
    • Should it be folded into a broader SEO guide?
    • Does it belong in β€œBuilding Websites β†’ SEO & Routing” or in an advanced templating or metadata section?
    • Would a beginner know to look there?
  • Skill level is debatable β€” the steps could require working with Fluid templates or TypoScript, which nudges it into intermediate territory.
  • Interlinks well β€” it could connect to guides on meta tags, page properties, Fluid templates, etc.

Step 1: Pre-classification check 

  • Applicability: It’s a concrete task with a clear goal and outcome.
  • Uniqueness: It overlaps with broader guides like β€œConfigure page metadata for SEO.” Would it duplicate existing steps, or justify its own atomic guide?
  • Skill Level: Likely intermediate, due to the need for template or TypoScript edits.

Step 2: Content classification 

  • Skill level: Intermediate β€” some familiarity with Fluid templates or page properties is assumed.
  • Prerequisites: Prior experience customizing templates or configuring page settings.
  • Logical parent categories:

    • Building Websites β†’ SEO & Routing (focused on outcome)
    • Templates & Theming (focused on how)
  • Learning sequence: Might follow β€œSet a custom page title and meta description”, or lead into β€œAdd Open Graph image previews”.

Scenario 

This guide could easily fall into Scenario A β€” multiple placements are possible.

The deciding factor may be user intent: someone focused on increasing social visibility will look in SEO & Routing, not template customization.

Final decision 

Add the guide under SEO & Routing, and link to Fluid or TypoScript references in the steps. This keeps the guide outcome-focused and discoverable by readers with SEO goals.

Backend 

Beginner 

TYPO3v13 

Set Up a Site Configuration 

Tested in: TYPO3v13 Categories: Beginner Backend Configuration

In TYPO3, a site configuration is essential for defining the domain, root page, and languages for a website.

Learning objective 

This guide explains how to create and configure a new site in a TYPO3 installation.

Prerequisites 

  • A running TYPO3 instance.
  • A "root page" created in the page tree to serve as the starting point of the new website.

Create a New Site Configuration 

  1. Click the "Add new site configuration" button or the + icon if you already have other sites.
  2. TYPO3 will often suggest creating a site based on an existing root page that is not yet configured.
  3. In the General tab, add your information to the following fields:

    • Site Identifier: A unique, lowercase name for the site (e.g., my_website). This is used internally by TYPO3.
    • Root Page ID: This is the most important setting. Select the page from your page tree that will be the root of your website (e.g., your "Home" page).
    • Base URL: The primary domain for the site, including the protocol (e.g., https://www.example.com/).
  4. In the Languages tab, click Create new Language. A new language form will appear.
  5. Fill in the following fields with your information:

    • Title: The human-readable name of the language (e.g., "English").
    • Entry Point: The URL segment for this language. The default language should use /. Additional languages might use a prefix (e.g., /de/).
    • Locale: The locale for the language, which is important for date formatting and other localizations (e.g., en_US.UTF-8).
  6. In the Error Handling tab, fill in the following fields with your information:

    • Switch to the Error Handling tab.
    • Define how TYPO3 should handle HTTP error status codes, such as 404 Not Found.
    • You can set a specific page to display, redirect to another URL, or use a custom Fluid template for each error code.
  7. Click the Save button to store your new site configuration.

Summary 

You have successfully created a site configuration. Your website is now accessible through the configured domain, and TYPO3 knows which page tree belongs to it.

Next Steps 

  • Add More Languages: If your site is multilingual, you can add more languages in the Languages tab by repeating steps 4–5 above.
  • Domain Variants: Create variants for different domains or subdomains that point to the same site but might have slightly different settings.
  • Static Routes: For advanced URL routing, you can explore the Static Routes tab.