t3o team 

Writing here

T3O Team - TYPO3.org Development Documentation

Rendered

Thu, 13 Nov 2025 09:58:00 +0000

This documentation covers the development workflow and local environment setup for TYPO3.org projects.

Main Topics:

  • Workflow: From ticket to merge request to deployment
  • Local Environment: DDEV and manual setup instructions
  • Projects: Overview of all T3O projects and their repositories
  • FAQ: Frequently asked questions and troubleshooting

Workflow 

This document describes the complete workflow from ticket creation to deployment for TYPO3.org projects.

Prerequisites 

GitLab Account Before you can contribute, you need a GitLab account that corresponds to your TYPO3.org username. You can manage your TYPO3.org account at my.typo3.org.

Access Requirements - For most projects: TYPO3.org account with GitLab access - For extensions.typo3.org (TER): Additional signed NDA required due to GDPR (user data protection)

If you don't have access to GitLab, the reason might be that your username is not present in the LDAP environment. To solve this, log in to https://typo3.org/ once.

User Roles & Permissions - Contributors: Can create feature branches, push commits, and create merge requests - Maintainers: Can merge into develop and main branches, review and approve merge requests

General Workflow 

  1. Log in to GitLab
  2. If you don't have access to the T3O project, ask one of the project maintainers
  3. Look into the different repositories. Priorities are:

    1. Testing and reviewing open merge requests
    2. Solving existing issues
    3. Creating new issues
  4. If you have found a merge request or issue, assign it to yourself
  5. Work on your local development environment

Issue Workflow (Contributors) 

  1. Find an Issue: Browse the repository issues and assign one to yourself
  2. Create Feature Branch: Always branch from develop:

    git checkout develop
    git pull origin develop
    git checkout -b feature/issue-number-description
    
    Copied!

    Or use GitLab's interface to create a merge request from an issue.

  3. Development: Work on your local environment (see Local Environment)

    • Make small, logical commits
    • Push commits regularly to your feature branch
    • Test your changes thoroughly
    • Ensure your branch stays up-to-date with develop
  4. Create Merge Request:

    • Target: develop branch (never directly to main)
    • Mark as "Draft" while work is in progress
    • Remove "Draft:" when ready for maintainer review
    • Add clear description of changes and testing done

Coding Standards 

Follow TYPO3 Core coding standards:

  • PHP: PSR-12 compliant, follow TYPO3 CGL (Coding Guidelines)
  • JavaScript: Use modern ES6+ syntax
  • CSS/SCSS: Follow BEM methodology where applicable
  • Commits: Write clear, descriptive commit messages

Merge Request Workflow (Maintainers) 

  1. Review Assignment: Maintainers review and assign merge requests to themselves
  2. Code Review: Review the code changes carefully
  3. Local Testing: Test the code locally on your development environment
  4. Approval Process:

    • If everything is okay: Approve and merge into develop
    • If improvements are needed: Request changes and assign back to author
    • Ensure all tests pass and code quality standards are met
  5. Merge to Develop: Maintainer merges approved feature into develop branch
  6. Release Process: When ready for production, maintainer merges develop into main

Note for Contributors: You cannot merge your own requests. A maintainer must review and merge all contributions.

Deployment Process 

After successful merge to the main branch:

  • Staging: Changes are automatically deployed to staging environment
  • Production: Production deployment follows the project's release schedule
  • Monitoring: Monitor for any issues after deployment

Branch Strategy & Permissions 

Protected Branches - ``main``: Production branch - Maintainers only - ``develop``: Development branch - Maintainers only - ``master``: For extensions - Maintainers only (legacy naming)

Contributor Branches - Feature branches: feature/issue-number-description - Contributors can create and push - Hotfix branches: hotfix/description - For critical fixes

Merge Flow .. rst-class:: bignums

  1. Contributors create feature branches from develop
  2. Contributors create merge requests targeting develop
  3. Maintainers review and merge into develop
  4. Maintainers merge develop into main for releases

Getting Help 

If you encounter problems:

  • Check the FAQ for common issues
  • Ask in the TYPO3 Slack #typo3-org channel
  • Contact project maintainers directly

Local Environment 

On this page:

This section covers setting up a local development environment for TYPO3.org projects.

Setup Options 

Choose your preferred setup method:

DDEV (Recommended)
Docker-based development environment with automated setup and database synchronization.
Manual Setup
Traditional setup for custom environments or when DDEV is not available.

Overview 

Both setup methods provide complete local development environments for TYPO3.org projects with the following shared components:

GitLab Authentication

All setups require proper GitLab credentials in an auth.json file containing:

  • Basic authentication (username/password) for Git operations
  • API access (username/token) for database synchronization and CI/CD artifacts
Filefill Extension (by Nicole Cordes)

Automatically loads missing assets on-demand from production servers:

  • No need to download complete fileadmin directories
  • Assets are fetched when first requested
  • Subsequent requests serve cached local files
Database Synchronization

Access to current database dumps via GitLab CI/CD artifacts:

  • Pre-filled databases with real content and configuration
  • Regular updates from production environments
  • Automated import (DDEV) or manual download (Manual setup)
Frontend Asset Building

CSS and JavaScript compilation for development:

  • Node.js 14 required for asset compilation
  • Source files located in vendor/t3o/t3olayout/Build/
  • Automated building (DDEV) or manual npm commands (Manual setup)

Next Steps 

DDEV Setup (Docker) 

DDEV provides a Docker-based development environment with automated setup and database synchronization for TYPO3.org projects.

Prerequisites 

Required Software - Docker: Download Docker - DDEV: Installation Guide - Node.js 14: Required for frontend asset building (automatically available in DDEV)

Access Requirements - GitLab account corresponding to your TYPO3.org username - For TER project: Signed NDA required due to GDPR compliance

Installation 

Clone Repository 

  1. Clone your desired project repository:

    # Example for typo3.org
    git clone https://git.typo3.org/services/t3o-sites/typo3.org/typo3.org.git
    cd typo3.org
    
    # Example for extensions.typo3.org
    git clone https://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter.git
    cd ter
    Copied!
  2. Copy the authentication template:

    cp auth.json.example auth.json
    Copied!
  3. Edit auth.json and add your GitLab credentials:

    {
        "http-basic": {
            "git.typo3.org": {
                "username": "gitlabusername",
                "password": "gitlabpassword"
            }
        },
        "gitlab-api": {
            "git.typo3.org": {
                "username": "gitlabusername",
                "token": "gitlab_personal_access_token",
                "project-id": "133",
                "branch": "main",
                "job-name": "Get dump for local environment"
            }
        }
    }
    
    Copied!

    Required fields: - http-basic: Basic authentication for Git operations - gitlab-api: API access for database synchronization - project-id: Project ID for database dumps (varies by project)

Start Environment 

  1. Start the DDEV environment:

    ddev start
    Copied!
  2. Sync the database (this will download and import the latest database):

    ddev sync-database
    
    Copied!
  3. Access your local installation:

    • Frontend: https://[your-project].ddev.site
    • Backend: https://[your-project].ddev.site/typo3/
    • Backend Login: Username: admin, Password: password (created automatically during database import)

Database Synchronization 

The ddev sync-database command:

  • Downloads the latest database dump from GitLab CI/CD artifacts
  • Drops the existing local database
  • Imports the fresh database
  • Creates a backend user automatically (admin/password)
  • Can be used during development to reset to a clean state

Database Source URLs: Database dump URLs are project-specific and configured in the gitlab-api section of auth.json. Each project has its own database artifacts from GitLab CI/CD.

Creating Additional Backend Users If you need to create additional backend users, use:

ddev exec php vendor/bin/typo3 backend:createadmin
Copied!

Filefill Configuration 

DDEV includes automatic filefill configuration that loads assets from production servers.

The configuration is located in additional.ddev.php and is automatically configured for each project.

Filefill Configuration Each project includes specific filefill configuration for loading assets from production servers. The configuration varies by project and is included in the project's additional.ddev.php file.

Frontend Development 

CSS and JavaScript Assets 

To work on frontend assets (uses Node.js 14 automatically):

ddev build-frontend
Copied!

This command compiles all CSS and JavaScript files needed for the frontend.

Node.js Version in DDEV DDEV containers include Node.js 14 by default. You can verify this:

ddev exec node --version
Copied!

Mail Testing 

All emails are sent to Mailpit during development:

  • Access Mailpit: https://[your-project].ddev.site:8026
  • No emails will be sent to real addresses

Solr Integration 

For projects requiring Solr search (like extensions.typo3.org):

Built-in Solr Server - Solr runs automatically in a Docker container - Access Solr Admin: https://[your-project].ddev.site:8983 - No additional configuration needed

Usage - The Solr server is pre-configured and ready to use - Indexes are automatically created during database import

Troubleshooting 

Common Issues 

DDEV start fails due to npm processes

Remove the node_modules folder and clear npm cache:

rm -rf vendor/t3o/t3olayout/Build/node_modules
ddev exec npm cache clear --force
Copied!
Can't login with LDAP user in frontend
LDAP login is disabled in local development due to data protection. Create a local frontend user instead.
Database sync fails
Check your GitLab credentials in auth.json and ensure you have access to the project.
Assets not loading
Verify filefill configuration in additional.ddev.php and check if domains are accessible.
Port conflicts
Stop other local services or configure different ports in .ddev/config.yaml.

Getting Help 

Manual Setup 

This guide covers setting up a local development environment without DDEV for TYPO3.org projects.

Prerequisites 

Web Server Requirements - PHP 8.1 or higher - MariaDB or MySQL database - Web server (Apache/Nginx) - Node.js 14 (for frontend asset building) - All TYPO3 12.4 LTS requirements

Optional for TER Project - Solr Server 6.6 (for extensions.typo3.org search functionality)

Access Requirements - GitLab account corresponding to your TYPO3.org username - For TER project: Signed NDA required due to GDPR compliance

Installation 

Clone Repository 

  1. Clone your desired project repository:

    # For typo3.org
    git clone https://git.typo3.org/services/t3o-sites/typo3.org/typo3.org.git
    cd typo3.org
    Copied!
  2. Create a virtual host pointing to the html subdirectory
  3. Copy the authentication template:

    cp auth.json.example auth.json
    Copied!
  4. Edit auth.json and add your GitLab credentials:

    {
        "http-basic": {
            "git.typo3.org": {
                "username": "gitlabusername",
                "password": "gitlabpassword"
            }
        },
        "gitlab-api": {
            "git.typo3.org": {
                "username": "gitlabusername",
                "token": "gitlab_personal_access_token",
                "project-id": "5",
                "branch": "develop",
                "job-name": "Get dump for local environment"
            }
        }
    }
    
    Copied!

    Required fields: - http-basic: Basic authentication for Git operations - gitlab-api: API access for database synchronization and CI/CD artifacts - project-id: Project ID for database dumps (5 = typo3.org)

Database Setup 

  1. Create a local database for your project
  2. Download the database dump from GitLab:

    # For typo3.org
    curl -H "PRIVATE-TOKEN: your-gitlab-token" \
         "https://git.typo3.org/api/v4/projects/5/jobs/artifacts/develop/download?job=Get%20dump%20for%20local%20environment" \
         -o database.zip
    Copied!
  3. Extract and import the database:

    unzip database.zip
    mysql -u your-user -p your-database < DB.sql
    Copied!

Database URLs for Projects: - typo3.org: https://git.typo3.org/api/v4/projects/5/jobs/artifacts/develop/download?job=Get%20dump%20for%20local%20environment - Other projects: URLs will be provided later

TYPO3 Configuration 

Additional Configuration 

Create config/system/additional.php:

<?php

$GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive(
    $GLOBALS['TYPO3_CONF_VARS'],
    [
        'BE' => [
            'loginRateLimit' => 0,
            'passwordPolicy' => '',
        ],
        'DB' => [
            'Connections' => [
                'Default' => [
                    'dbname' => 'your_database_name',
                    'driver' => 'mysqli',
                    'host' => 'localhost',
                    'password' => 'your_password',
                    'port' => '3306',
                    'user' => 'your_username',
                ],
            ],
        ],
        'FE' => [
            'loginRateLimit' => 0,
        ],
        'GFX' => [
            'processor' => 'ImageMagick',
            'processor_path' => '/usr/bin/',
            'processor_path_lzw' => '/usr/bin/',
        ],
        'MAIL' => [
            'transport' => 'sendmail',
            'transport_sendmail_command' => '/usr/sbin/sendmail -t -i',
        ],
        'SYS' => [
            'trustedHostsPattern' => '.*',
            'devIPmask' => '*',
            'displayErrors' => 1,
        ],
    ]
);

Copied!

Filefill Configuration 

Add filefill configuration to your additional.php:

// Filefill configuration for typo3.org
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['filefill']['storages'][1] = [
    [
        'identifier' => 'domain',
        'configuration' => 'https://typo3.org/',
    ],
    [
        'identifier' => 'domain',
        'configuration' => 'https://my.typo3.org/',
    ],
    [
        'identifier' => 'placeholder',
    ],
];
Copied!

This configuration allows the filefill extension to load assets from production servers when they're not available locally.

Project-specific configurations: - typo3.org: Configuration shown above - Other projects: Configurations will be provided later

Composer Setup 

  1. Install PHP dependencies:

    composer install
    Copied!

Frontend Assets 

CSS and JavaScript Setup 

  1. Verify Node.js version (must be Node.js 14):

    node --version
    Copied!
  2. Install npm dependencies:

    npm install --prefix=vendor/t3o/t3olayout/Build/
    Copied!
  3. Build assets:

    npm run build --prefix=vendor/t3o/t3olayout/Build/
    Copied!

Backend Access 

Creating a Backend User 

Create a backend administrator user using the TYPO3 CLI command:

  1. Run the backend user creation command:

    php vendor/bin/typo3 backend:createadmin
    Copied!
  2. Follow the interactive prompts to set:

    • Username (e.g., admin)
    • Password (choose a secure password)
    • Email address
  3. Login to the backend at https://your-local-site.local/typo3/ with your created credentials

Database Import Details 

The database import includes:

  • Complete page tree and content
  • Backend user: admin / password
  • All necessary TYPO3 configuration
  • Extension settings

File Assets 

Thanks to the filefill extension by Nicole Cordes, you don't need to download the complete fileadmin directory. Assets are loaded on-demand from production servers.

How it works: - When a file is requested that doesn't exist locally - Filefill checks the configured domains - Downloads the file from production - Serves it locally for future requests

Solr Setup (TER Only) 

For extensions.typo3.org, you need a Solr server:

  1. Install Solr 6.6 locally
  2. Configure Solr connection in TYPO3 backend
  3. Index the extension data

Troubleshooting 

Common Issues 

Composer authentication fails
Check your auth.json file and GitLab token permissions.
Database import fails
Verify your database credentials and ensure the database exists.
Files not loading
Check filefill configuration and internet connectivity to production servers.
Cannot create backend user
Use the TYPO3 CLI command: php vendor/bin/typo3 backend:createadmin
Permission errors

Set proper file permissions for web server user:

chown -R www-data:www-data html/
chmod -R 755 html/
Copied!

Getting Help 

Projects 

This section provides an overview of all TYPO3.org projects, their repositories, and specific requirements.

Project Overview 

The TYPO3 Organization maintains several web projects, each with its own repository and specific requirements:

Project Repository Description Special Requirements SQL-Dump Project ID
typo3.org typo3.org Main community hub None 133
extensions.typo3.org ter TYPO3 Extension Repository Solr, Signed NDA 134
voting.typo3.org URL to be provided TYPO3 Community Voting None None
my.typo3.org URL to be provided User account management None None

Common Architecture 

All projects share similar architecture:

Technology Stack - TYPO3 CMS 12.4 LTS - PHP 8.1+ - MariaDB/MySQL database - Composer for dependency management

Extensions - t3olayout: Common layout extension for all projects - filefill: Asset loading from production (by Nicole Cordes) - Project-specific extensions as needed

Development Workflow - GitLab-based development - Feature branches from develop branch - Merge requests for code review - CI/CD pipelines for testing and deployment

Database Synchronization 

Each project provides database dumps via GitLab CI/CD artifacts:

Available Databases - typo3.org: https://git.typo3.org/api/v4/projects/133/jobs/artifacts/develop/download?job=Get%20dump%20for%20local%20environment - Other projects: URLs will be provided later

DDEV Integration All projects support the ddev sync-database command for automated database synchronization.

Access Requirements 

Standard Access - TYPO3.org account - GitLab access (username must match TYPO3.org username) - Account management via my.typo3.org

Special Access Requirements - extensions.typo3.org: Signed NDA required due to GDPR compliance (user data protection)

If you can't access GitLab, log in to https://typo3.org/ once to sync your account with LDAP.

Filefill Configuration 

Each project has specific filefill configuration for asset loading:

typo3.org Configuration:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['filefill']['storages'][1] = [
    [
        'identifier' => 'domain',
        'configuration' => 'https://typo3.org/',
    ],
    [
        'identifier' => 'domain',
        'configuration' => 'https://my.typo3.org/',
    ],
    [
        'identifier' => 'placeholder',
    ],
];
Copied!

Other Projects: Configurations will be provided later.

Branch Strategy 

Website Projects - Main branch: develop - Feature branches: feature/issue-number-description - Hotfix branches: hotfix/description

Extensions - Main branch: master - Feature branches: feature/issue-number-description

Getting Started 

For New Contributors

  1. Choose a project from the list above
  2. Check access requirements
  3. Follow the Local Environment guide
  4. Read the project-specific documentation
  5. Check the Workflow for contribution guidelines

For Experienced Contributors

  1. Check project-specific repositories for open issues
  2. Review merge requests that need testing
  3. Follow the established Workflow

Next Steps 

  • Project Details: Click on individual projects above for specific information
  • Setup Environment: Local Environment
  • Contribution Guide: Workflow
  • Need Help?: FAQ

typo3.org 

The main TYPO3 community website and central hub for the TYPO3 ecosystem.

Repository Information 

Repository URL: https://git.typo3.org/services/t3o-sites/typo3.org/typo3.org

Branch Strategy: - Main branch: develop - Feature branches: feature/issue-number-description

Workflow: Follow the standard Workflow

Project Description 

typo3.org serves as the main community hub providing:

Core Features - Community news and announcements - Event listings and management - Security bulletins and advisories - TYPO3 certification information - Download section for TYPO3 releases - Community member profiles

Target Audience - TYPO3 developers and integrators - Agency owners and decision makers - Community members and contributors - New users discovering TYPO3

Technical Details 

TYPO3 Version: 12.4 LTS PHP Version: 8.1+ Database: MariaDB

Key Extensions - t3olayout: Common layout and styling - filefill: Asset loading from production - news: News and announcement system - events2: Event management - solr: Search functionality (optional)

Local Development Setup 

DDEV Setup (Recommended)

  1. Clone the repository:

    git clone https://git.typo3.org/services/t3o-sites/typo3.org/typo3.org.git
    cd typo3.org
    Copied!
  2. Configure authentication:

    cp auth.json.example auth.json
    # Edit auth.json with your GitLab credentials
    Copied!
  3. Start environment:

    ddev start
    ddev sync-database
    Copied!
  4. Access the site: - Frontend: https://typo3.org.ddev.site - Backend: https://typo3.org.ddev.site/typo3/ (admin/password)

Manual Setup

Follow the Manual Setup guide with these project-specific details:

  • Database dump: https://git.typo3.org/api/v4/projects/5/jobs/artifacts/develop/download?job=Get%20dump%20for%20local%20environment
  • Filefill configuration: See the configuration in DDEV Setup (Docker)

Development Guidelines 

Frontend Development - Build assets: ddev build-frontend (DDEV) or npm run build --prefix=vendor/t3o/t3olayout/Build/ - CSS/SCSS files located in vendor/t3o/t3olayout/Build/ - JavaScript files in the same directory structure

Content Management - News articles: Use the news extension - Events: Use the events2 extension - Pages: Standard TYPO3 page management

Testing - Test all changes locally before creating merge requests - Verify responsive design on different screen sizes - Check cross-browser compatibility - Test performance impact of changes

Common Development Tasks 

Adding News Articles - Backend → Web → List → News folder - Create new news record - Set publication date and author - Add categories and tags as needed

Managing Events - Backend → Web → List → Events folder - Create new event record - Set location, date, and time - Configure registration if applicable

Updating Content - Most content can be edited directly in the backend - Static content may require template changes - Images should be optimized for web use

Special Considerations 

Asset Management - Use filefill for production assets - Optimize images before upload - Use appropriate file formats (WebP when possible)

Performance - Enable caching in production - Monitor database query performance - Optimize images and assets

Security - Keep TYPO3 core and extensions updated - Follow TYPO3 security best practices - Monitor security bulletins

Known Issues & Solutions 

Common Problems - Asset loading issues → Check filefill configuration - Database connection errors → Verify credentials in additional.php - Frontend build failures → Clear npm cache and rebuild

Performance Issues - Slow page loads → Check database queries and caching - Large images → Optimize and use appropriate formats - Memory issues → Increase PHP memory limit if needed

Getting Help 

Resources - Project-specific issues: Repository issue tracker - General questions: TYPO3 Slack #typo3-org - TYPO3 documentation: https://docs.typo3.org/

Contacts - Project maintainers: See repository contributors - General T3O team: Contact via Slack

Next Steps 

extensions.typo3.org 

The TYPO3 Extension Repository (TER) - the central hub for TYPO3 extensions.

Repository Information 

Repository URL: https://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter

Branch Strategy: - Main branch: develop - Feature branches: feature/issue-number-description

Workflow: Follow the standard Workflow

⚠️ Special Access Requirements - Signed NDA required due to GDPR compliance (user data protection) - Standard GitLab access not sufficient - Contact project maintainers for NDA process

Project Description 

The TYPO3 Extension Repository provides:

Core Features - Extension registration and management - Extension key management (register, transfer, remove) - Extension uploads and version management - Extension browsing and search functionality - Extension documentation integration - User ratings and reviews - Download statistics and analytics

Target Audience - Extension developers - TYPO3 integrators searching for extensions - Community members exploring available extensions - Extension maintainers managing their extensions

Technical Details 

TYPO3 Version: 12.4 LTS PHP Version: 8.1+ Database: MariaDB

Key Extensions - t3olayout: Common layout and styling - filefill: Asset loading from production - solr: Search functionality (required) - ter: Extension repository functionality

⚠️ Solr Requirement This project requires Apache Solr for search functionality. Additional configuration is needed beyond the standard setup.

Local Development Setup 

DDEV Setup (Recommended)

  1. Access Check: Ensure you have signed the NDA and have been granted access
  2. Clone the repository:

    git clone https://git.typo3.org/services/t3o-sites/extensions.typo3.org/ter.git
    cd ter
    Copied!
  3. Configure authentication:

    cp auth.json.example auth.json
    # Edit auth.json with your GitLab credentials
    Copied!
  4. Start environment:

    ddev start
    ddev sync-database
    Copied!
  5. Solr Setup: The built-in Solr server starts automatically - Solr Admin: https://extensions.typo3.org.ddev.site:8983 - No additional configuration needed for basic development
  6. Access the site: - Frontend: https://extensions.typo3.org.ddev.site - Backend: https://extensions.typo3.org.ddev.site/typo3/ (admin/password)

Manual Setup

Follow the Manual Setup guide with these additional requirements:

Solr Server Setup - Install Apache Solr 6.6 locally - Configure Solr cores for extension indexing - Set up Solr connection in TYPO3 backend

Database and Configuration - Database dump: URL will be provided later - Filefill configuration: Will be provided later

Solr Configuration 

DDEV Environment - Solr runs automatically in Docker container - Pre-configured for development use - Access admin interface at port 8983

Manual Environment - Install Solr 6.6 manually - Configure cores for: - Extension metadata indexing - Extension documentation indexing - Extension code search (if applicable)

Solr Features - Full-text search in extensions - Faceted search by categories, TYPO3 version, etc. - Search suggestions and autocomplete - Advanced search filters

Development Guidelines 

Extension Data Management - Extensions are imported from external sources - Local changes may be overwritten during imports - Focus on frontend/backend functionality rather than data

Frontend Development - Build assets: ddev build-frontend (DDEV) - Special attention to search interface - Responsive design for mobile browsing - Performance optimization for large datasets

Search Functionality - Test search with various queries - Verify faceted search filters - Check search result relevance - Test autocomplete functionality

Backend Development - Extension management interfaces - User management for extension developers - Analytics and reporting features - Import/export functionality

Common Development Tasks 

Working with Extensions - Extension data is imported, not manually created - Focus on display and search functionality - Test with various extension types and sizes

Search Development - Modify search templates and logic - Update Solr configuration if needed - Test search performance with large datasets - Implement new search features

User Management - Extension developer accounts - Permission management - User registration and verification

Special Considerations 

Data Protection (GDPR) - User data handling requires special care - Privacy policy compliance - Data retention policies - User consent management

Performance - Large dataset handling - Search performance optimization - Caching strategies for extension data - Database query optimization

Security - User authentication and authorization - Extension upload security - Input validation and sanitization - Rate limiting for API endpoints

Import Processes - Extension data imports from external sources - Automated synchronization processes - Data validation and cleanup - Error handling for import failures

Known Issues & Solutions 

Common Problems - Solr connection issues → Check Solr server status and configuration - Search not working → Verify Solr indexing and core configuration - Import failures → Check data sources and import scripts - Performance issues → Optimize database queries and caching

Development Specific - Large dataset handling → Use pagination and lazy loading - Search relevance → Tune Solr configuration and boost factors - Memory issues → Increase PHP memory limit for large operations

Getting Help 

⚠️ Access Issues - Contact project maintainers for NDA process - Ensure your GitLab account matches TYPO3.org username

Technical Support - Project-specific issues: Repository issue tracker - Solr questions: TYPO3 Slack #typo3-solr - General questions: TYPO3 Slack #typo3-org

Resources - TYPO3 Solr documentation: https://docs.typo3.org/c/typo3/cms-solr/ - Apache Solr documentation: https://solr.apache.org/guide/ - Extension development: https://docs.typo3.org/m/typo3/reference-coreapi/

Next Steps 

  • Get NDA Access: Contact maintainers for required documentation
  • Setup Environment: Local Environment
  • Understand Workflow: Workflow
  • Learn Solr: Familiarize yourself with Solr administration
  • Explore Projects: Projects

voting.typo3.org 

The TYPO3 Community Voting Platform for democratic decision-making within the TYPO3 community.

Repository Information 

Repository URL: To be provided

Branch Strategy: - Main branch: develop - Feature branches: feature/issue-number-description

Workflow: Follow the standard Workflow

Access Requirements - Standard GitLab access - TYPO3.org account required

Project Description 

The TYPO3 Community Voting Platform provides:

Core Features - Community voting on important decisions - Ballot creation and management - Voting process administration - Results display and analysis - User authentication and verification - Voting history and archives

Target Audience - TYPO3 community members - TYPO3 Association members - Community decision makers - Voting administrators

Technical Details 

TYPO3 Version: 12.4 LTS PHP Version: 8.1+ Database: MariaDB

Key Extensions - t3olayout: Common layout and styling - filefill: Asset loading from production - Custom voting extensions for ballot management

Special Requirements - None beyond standard TYPO3 setup

Local Development Setup 

DDEV Setup (Recommended)

  1. Clone the repository:

    git clone [repository-url-to-be-provided]
    cd voting.typo3.org
    Copied!
  2. Configure authentication:

    cp auth.json.example auth.json
    # Edit auth.json with your GitLab credentials
    Copied!
  3. Start environment:

    ddev start
    ddev sync-database
    Copied!
  4. Access the site: - Frontend: https://voting.typo3.org.ddev.site - Backend: https://voting.typo3.org.ddev.site/typo3/ (admin/password)

Manual Setup

Follow the Manual Setup guide with these project-specific details:

  • Database dump: URL will be provided later
  • Filefill configuration: Will be provided later

Development Guidelines 

Voting System Development - Secure voting mechanisms - Anonymous voting options - Audit trail maintenance - Result calculation accuracy

Frontend Development - Build assets: ddev build-frontend (DDEV) - User-friendly voting interfaces - Clear result visualization - Mobile-responsive design

Backend Development - Ballot creation and management - User verification systems - Vote counting and validation - Administrative interfaces

Security Considerations - Vote integrity protection - User authentication security - Prevention of multiple voting - Data privacy compliance

Common Development Tasks 

Ballot Management - Create new voting ballots - Configure voting options - Set voting periods and deadlines - Manage voter eligibility

Voting Process - User registration and verification - Voting interface development - Progress tracking and notifications - Result calculation and display

Administration - User management and permissions - Voting statistics and analytics - Archive management - Security monitoring

Special Considerations 

Security & Integrity - Vote anonymity protection - Secure ballot storage - Audit trail maintenance - Protection against manipulation

User Experience - Clear voting instructions - Intuitive interface design - Accessibility compliance - Mobile device support

Performance - Handle high concurrent voting loads - Efficient result calculations - Optimized database queries - Caching for result displays

Compliance - Data protection regulations - Voting process transparency - Record retention policies - User consent management

Known Issues & Solutions 

Common Problems - Authentication issues → Check TYPO3.org account integration - Voting period errors → Verify timezone configurations - Result calculation errors → Check vote counting algorithms - Performance during high load → Optimize database and caching

Development Specific - Testing voting scenarios → Use development/staging data - Database synchronization → Follow standard sync procedures - Asset loading → Verify filefill configuration

Getting Help 

Project Support - Repository issues: Use project issue tracker (when available) - General questions: TYPO3 Slack #typo3-org - Development support: Contact project maintainers

Technical Resources - TYPO3 documentation: https://docs.typo3.org/ - Security best practices: TYPO3 security guidelines - Voting system design: Community governance documentation

Contacts - Project maintainers: To be identified - TYPO3 Association: For voting process questions

Development Status 

What's Available - Project concept and requirements - Technical specifications - Development guidelines

Coming Soon - Repository access - Database dumps - Detailed configuration - Development examples

Next Steps 

  • Repository Access: Wait for repository URL to be provided
  • Setup Environment: Local Environment (when available)
  • Understand Workflow: Workflow
  • Other Projects: Projects (work on available projects)
  • Get Updates: Monitor project communications

my.typo3.org 

The TYPO3 user account management platform for community members.

Repository Information 

Repository URL: To be provided

Branch Strategy: - Main branch: develop - Feature branches: feature/issue-number-description

Workflow: Follow the standard Workflow

Access Requirements - Standard GitLab access - TYPO3.org account required

Project Description 

my.typo3.org serves as the central user management platform providing:

Core Features - User registration for new TYPO3.org users - Profile management and editing - Basic user data management (name, email, contact information) - Community feature integration - Account settings and preferences - GitLab account synchronization

User Data Management - First and last name - Email address management - Contact information - Community profile settings - Privacy preferences

Target Audience - All TYPO3 community members - New users registering for TYPO3.org - Existing users managing their profiles - Community administrators

Technical Details 

TYPO3 Version: 12.4 LTS PHP Version: 8.1+ Database: MariaDB

Key Extensions - t3olayout: Common layout and styling - filefill: Asset loading from production - Custom user management extensions - LDAP integration for authentication

Special Requirements - LDAP connectivity for user authentication - Integration with GitLab for account synchronization

Local Development Setup 

DDEV Setup (Recommended)

  1. Clone the repository:

    git clone [repository-url-to-be-provided]
    cd my.typo3.org
    Copied!
  2. Configure authentication:

    cp auth.json.example auth.json
    # Edit auth.json with your GitLab credentials
    Copied!
  3. Start environment:

    ddev start
    ddev sync-database
    Copied!
  4. Access the site: - Frontend: https://my.typo3.org.ddev.site - Backend: https://my.typo3.org.ddev.site/typo3/ (admin/password)

Manual Setup

Follow the Manual Setup guide with these project-specific details:

  • Database dump: URL will be provided later
  • Filefill configuration: Will be provided later

Development Guidelines 

User Management Development - Secure user data handling - GDPR compliance for personal data - User authentication and authorization - Account verification processes

Frontend Development - Build assets: ddev build-frontend (DDEV) - User-friendly profile interfaces - Responsive design for all devices - Accessibility compliance

Backend Development - User administration interfaces - Data export and import functionality - Account synchronization systems - User activity logging

Security Considerations - Personal data protection - Secure authentication mechanisms - Data encryption for sensitive information - Privacy compliance (GDPR)

Common Development Tasks 

User Profile Management - Profile creation and editing forms - Data validation and sanitization - Image upload and management - Privacy settings configuration

Account Administration - User account creation and verification - Bulk user management operations - Account status management - User data export/import

Integration Development - GitLab account synchronization - LDAP authentication integration - Third-party service connections - API development for external access

Special Considerations 

Data Protection (GDPR) - Personal data handling compliance - User consent management - Data retention policies - Right to be forgotten implementation

Security & Privacy - Secure password handling - Two-factor authentication support - Account lockout mechanisms - Privacy-by-design principles

Performance - Efficient user data queries - Caching for user profiles - Optimized authentication processes - Database indexing for user searches

Integration Requirements - LDAP server connectivity - GitLab API integration - Email service integration - External authentication providers

Known Issues & Solutions 

Common Problems - LDAP connection issues → Check LDAP server configuration - GitLab sync failures → Verify API credentials and permissions - Email delivery problems → Check email service configuration - Authentication loops → Clear cookies and check session handling

Development Specific - User data privacy → Implement proper data handling procedures - Database synchronization → Follow user data protection guidelines - Local LDAP testing → Use development LDAP server or mock services

Getting Help 

Project Support - Repository issues: Use project issue tracker (when available) - User management questions: TYPO3 Slack #typo3-org - LDAP/Authentication: Contact system administrators

Technical Resources - TYPO3 documentation: https://docs.typo3.org/ - GDPR compliance: https://gdpr.eu/ - LDAP integration: TYPO3 LDAP extension documentation

Contacts - Project maintainers: To be identified - System administrators: For LDAP and infrastructure questions

Development Status 

What's Available - Project concept and requirements - Technical specifications - Development guidelines - Integration requirements

Coming Soon - Repository access - Database dumps - LDAP configuration details - Development examples

Community Features 

Planned Features - Community member directory - Group and team management - Event participation tracking - Contribution history display - Community badges and achievements

Integration Points - TYPO3.org main site integration - Extension repository user linking - Voting platform authentication - Community forum connections

Next Steps 

  • Repository Access: Wait for repository URL to be provided
  • Setup Environment: Local Environment (when available)
  • Understand Workflow: Workflow
  • Privacy Training: Familiarize with GDPR requirements
  • Other Projects: Projects (work on available projects)

FAQ 

Frequently Asked Questions and troubleshooting guide for TYPO3.org development.

Getting Started 

Q: How do I get access to the TYPO3.org repositories? A: You need a TYPO3.org account that corresponds to your GitLab username. Manage your account at my.typo3.org. If you can't access GitLab, log in to https://typo3.org/ once to sync your account with LDAP.

Q: Do I need special permissions for all projects? A: No, most projects only require standard GitLab access. However, extensions.typo3.org (TER) requires a signed NDA due to GDPR compliance (user data protection).

Q: Which branch should I work on? A: For all projects, work in feature branches created from: - develop branch for website projects - master branch for extensions

Q: How do I contact the T3O team? A: Contact Thomas Löffler (@spoonerweb) in TYPO3 Slack or use the #typo3-org channel.

DDEV Environment 

Q: DDEV start fails with npm processes error A: Remove the node_modules folder and clear npm cache:

rm -rf vendor/t3o/t3olayout/Build/node_modules
ddev exec npm cache clear --force
Copied!

Q: How do I update my local database? A: Use the sync command, but be careful as it replaces your entire database:

ddev sync-database
Copied!

Q: Can I access the backend after database sync? A: Yes, a backend user is automatically created: - Username: admin - Password: password

Q: How do I compile frontend assets? A: Use the build command:

ddev build-frontend
Copied!

Q: Where can I access Mailpit for testing emails? A: Mailpit is available at: https://[your-project].ddev.site:8026

Authentication & Access 

Q: Why can't I login with my LDAP user in the frontend? A: LDAP login is disabled in local development due to data protection issues. Create a local frontend user instead through the backend.

Q: My GitLab authentication fails A: Check your auth.json file configuration: 1. Ensure the file exists (copy from auth.json.example) 2. Verify both http-basic and gitlab-api sections are configured 3. Check that username/password and username/token match your GitLab account 4. Verify the personal access token is not expired

Q: What's the difference between http-basic and gitlab-api in auth.json? A: Both sections serve different purposes: - http-basic: Username/password for basic Git operations (clone, pull, push) - gitlab-api: Username/token for API access (database downloads, CI/CD artifacts)

Q: How do I get a GitLab token? A: Go to GitLab → User Settings → Access Tokens → Create a token with read_repository and read_api permissions.

Database & Content 

Q: Where do I get the database dump? A: Database dumps are available via GitLab CI/CD artifacts: - typo3.org: https://git.typo3.org/api/v4/projects/5/jobs/artifacts/develop/download?job=Get%20dump%20for%20local%20environment - Other projects: URLs will be provided later

Q: Why are images not loading? A: This is normal. The filefill extension loads assets on-demand from production servers. Images will appear when requested. Check your filefill configuration if images consistently fail to load.

Q: How does filefill work? A: When a file is requested that doesn't exist locally, filefill: 1. Checks configured production domains 2. Downloads the file from production 3. Serves it locally for future requests

Q: My local changes to content are lost after database sync A: This is expected behavior. The ddev sync-database command replaces your entire database with the production dump. Make content changes in the backend after sync, or work on template/code changes instead.

Extensions & Development 

Q: How do I install additional extensions? A: Use Composer:

composer require typo3/cms-extension-name
Copied!

Q: Where are the frontend templates? A: Templates are in the t3olayout extension: - t3olayout extension: vendor/t3o/t3olayout/ - Project-specific extensions: extensions/ directory - Vendor extensions: vendor/ directory

Q: How do I debug TYPO3 issues? A: Enable debug mode in your additional.php:

'SYS' => [
    'displayErrors' => 1,
    'devIPmask' => '*',
    'exceptionalErrors' => E_ALL,
],
Copied!

Q: Frontend assets are not building A: Try these steps: 1. Check Node.js version: ddev exec node --version (should be 14.x) or node --version for manual setup 2. Clear npm cache: ddev exec npm cache clear --force 3. Remove node_modules: rm -rf vendor/t3o/t3olayout/Build/node_modules 4. Rebuild: ddev build-frontend

Q: Wrong Node.js version error A: Frontend assets require Node.js 14: - DDEV: Node.js 14 is included automatically - Manual setup: Install Node.js 14 from https://nodejs.org/

Project-Specific Issues 

Q: Solr is not working for extensions.typo3.org A: For DDEV environments: 1. Solr should start automatically 2. Check Solr admin at port 8983 3. Verify Solr core configuration in TYPO3 backend

Q: How do I access the TER (extensions.typo3.org) project? A: You need: 1. Standard GitLab access 2. Signed NDA due to GDPR compliance 3. Contact project maintainers for the NDA process

Q: What if I need help with a specific project? A: Each project has its own documentation: - typo3.org - extensions.typo3.org - voting.typo3.org - my.typo3.org

Performance & Optimization 

Q: My local environment is slow A: Try these optimizations: 1. Allocate more memory to Docker 2. Use Docker Desktop's filesystem optimization 3. Disable unnecessary services 4. Check database query performance

Q: How do I optimize images? A: Use appropriate formats: - WebP for modern browsers - Optimize file sizes before upload - Use responsive images when possible

Q: Database operations are slow A: Check: 1. Database indexes 2. Query optimization 3. Available memory 4. Disk space

Common Error Messages 

Q: "Could not connect to database" A: Check your database configuration in additional.php: - Verify hostname, username, password - Ensure database exists - Check database server is running

Q: "Trusted hosts pattern mismatch" A: Add this to your additional.php:

'SYS' => [
    'trustedHostsPattern' => '.*',
],
Copied!

Q: "Extension not found" A: Run:

composer install
Copied!

Q: "Permission denied" errors A: Check file permissions:

# For DDEV
ddev exec chown -R www-data:www-data /var/www/html/

# For manual setup
chown -R www-data:www-data html/
Copied!

Development Workflow 

Q: How do I create a merge request? A: Follow the Workflow: 1. Create issue or find existing one 2. Create branch from GitLab interface 3. Work locally on the branch 4. Push changes and create merge request

Q: What coding standards should I follow? A: Follow TYPO3 Core coding standards: - PSR-12 for PHP - TYPO3 CGL (Coding Guidelines) - Use meaningful commit messages - Write tests for new functionality

Q: How do I test my changes? A: Test locally: 1. Verify functionality works 2. Check responsive design 3. Test in different browsers 4. Ensure no PHP errors or warnings

Still Need Help? 

Resources - TYPO3 Slack: #typo3-org channel - TYPO3 Documentation: https://docs.typo3.org/ - DDEV Documentation: https://ddev.readthedocs.io/

Contacts - Thomas Löffler (@spoonerweb): General T3O questions - Project maintainers: Check individual project repositories - Community: TYPO3 Slack channels

Reporting Issues - Use project-specific issue trackers - Provide detailed error messages - Include steps to reproduce - Mention your environment (DDEV/manual, OS, etc.)