Image Rendering Initiative

Initiative focuses on improving how TYPO3 renders and processes images.

Background

Performance and flexibility in image processing and rendering was always a strong focus of TYPO3. With constantly changing technology, we must keep up the pace and provide a few pieces.
First of all, as more and more people are using cloud storages in FAL (which are slower than local storage), image processing should not slow down page rendering. This is especially important as a ground step for further enhancements in TYPO3 Backend media management.
Secondly, as more and more different image sizes for one image is needed for a responsive webpage, image processing should not slow down page rendering. The aim for this initiative is to reduce the Time To First Byte (TTFB) for Backend and Frontend requests by asynchronous processing.

Goals

  • Create a public API for image processing inside TYPO3
  • Implement asynchronous images in BE with the API (at least one solution)
  • Implement asynchronous  images in FE with the API (at least one solution)
  • Implement solution for outsourcing image operations (e.g. scaling) to external service with the API
  • Create concept for LQIP (low quality image placeholders) Implementation
  • Review possibility to use TYPO3 without im/gm binary (e.g. by using PHP module or GD)
Image about timing (calendar)

Milestones

  • Must haves for TYPO3 10
  • Create API inside TYPO3
  • Implement asynchronous Image Rendering Solution for BE
  • Implement asynchronous Image Rendering Solution for FE
  • Validate speed improvements and document

Optional Milestones for TYPO3 10 or TYPO3 11

  • Implement solution for outsourcing image operations (e.g. scaling) to external service with the API
  • Create concept for LQIP (low quality image placeholders) Implementation
  • Review possibility to use TYPO3 without im/gm binary (e.g. by using PHP module or GD)

Timing

Since page view performance is important for Backend and Frontend the initiative aims to have a first solution for the TYPO3 Version 10. Additional functionalities may be moved to TYPO3 Version 11.

Scope

This initiative should lay the technical basis for implementing different strategies for image processing. The default strategy should stay as the current implementation: Images are rendered on page view. At least one additional strategy should be implementing as proof of concept. Developers should implement additional strategies for their needs.

The scope of this initiative focus mostly on API level. Building new backend modules e.g. for asset management is not in scope. The implementation of different strategies for image rendering is not part of this initiative.

Current Status

  • A paper with requirements has been created and discussed in the team.
  • A first patch for implementing the API has been created and is currently under review: review.typo3.org/c/Packages/TYPO3.CMS/+/61088
  • The Initiative is created

References / Further Reading

Google docs paper with concepts and discussions:

https://docs.google.com/document/d/1IgTZLFgvAS8f8zDlBmU_bOTH16CzDrIIzNUynQsnA5E/edit#

Status will be reported by updating the initiative paper and inside the slack channel.

Get involved!

Team

Ingo Schmitt (Lead)

Tymoteusz Motylewski

Tim Schreiner