Installation
This chapter describes how to install and set up TYPO3 Astryx (skom/) in a
TYPO3 v14 project.
Prerequisites
System Requirements
- PHP:
>= 8.3 < 8. 5 - TYPO3 Core:
~14.(including3. 0 typo3/,cms- core typo3/,cms- fluid typo3/, andcms- frontend typo3/)cms- rte- ckeditor - MariaDB or MySQL: MariaDB 10.6+ or MySQL 8.0+
Required TYPO3 Extensions
TYPO3 Astryx requires the following Composer packages:
friendsoftypo3/:content- blocks ^2.(provides the Content Blocks schema and rendering)4. 10 b13/:container ^4.(powers multi-column and single-column container elements)1 skom/:stylex- connector ^1.(bridges TYPO3 Fluid with the StyleX manifest)1. 2 praetorius/:vite- asset- collector ^1.(asset collection and Vite integration)18
Conflict with Fluid Styled Content
Important
TYPO3 Astryx explicitly conflicts with Fluid Styled Content (FSC).
Astryx is designed to completely replace typo3/. Both extensions
cannot be active simultaneously. Before installing Astryx, remove FSC from your Composer
dependencies and remove its Site Set / TypoScript imports from your site configuration.
Frontend Build Requirements (Optional)
If you use the default packaged assets, no Node.js runtime or build step is required. If you compile custom StyleX styles or consume the extension through Vite:
- Node.js:
v22.x - Vite:
^7.3. 0 - StyleX Compiler:
@stylexjs/,stylex: 0. 19. 1 @stylexjs/, andunplugin @babel/parser
Installing in a New Project
Step 1: Require the Package via Composer
Run Composer from your project root:
# If fluid-styled-content is installed, remove it first:
composer remove typo3/cms-fluid-styled-content
# Require TYPO3 Astryx and its pinned dependencies:
composer require skom/typo3-astryx
Ensure that skom/ is referenced at ^1. in your root composer.:
"require": {
"skom/typo3-astryx": "^0.1.0",
"skom/stylex-connector": "^1.1.2"
}
Step 2: Activate the Site Set
TYPO3 Astryx provides a reusable Site Set named skom/.
Option A: In Your Site Package
In your custom site package's Site Set configuration
(packages/), declare the dependency:
name: my-vendor/site-package
label: 'My Site Package'
dependencies:
- skom/typo3-astryx
Option B: In the Site Configuration Directly
Alternatively, add the Site Set directly to your site configuration in
config/:
dependencies:
- skom/typo3-astryx
Step 3: Update Database Schema and Clear Caches
Apply the database schema additions and flush system caches:
vendor/bin/typo3 cache:flush
vendor/bin/typo3 extension:setup
Note
vendor/ creates the required database tables, including the
Content Block collection tables (tx_, tx_,
tx_, tx_, tx_,
and tx_).
Step 4: Select Asset Delivery Mode
Astryx supports two asset delivery modes:
- Packaged Assets (Default):
Pre-compiled frontend and editor stylesheets/scripts are served directly from
EXT:. This mode requires no Node build pipeline on your web server. Site setting:typo3_ astryx/ Resources/ Public/ Assets/ Astryx..use Vite: false - Consuming Vite Integration:
The consuming site package compiles frontend assets via Vite and
praetorius/, reading fromvite- asset- collector Configuration/. Site setting:Vite Entrypoints. json Astryx..use Vite: true
Migrating an Existing FSC Site
If you are migrating an existing TYPO3 site from typo3/ to Astryx,
follow this structured migration workflow:
Workflow Steps
- Full Backup:
Export your database (
mysqldump) and create a full backup offileadmin/and FAL storages. Record the current Composer lock state and Git commit hash. - Inventory Records:
Audit all existing
tt_records, checking for CTypes, hidden/deleted records, workspace versions, and multi-language records.content - Rehearse in an Isolated Environment: Perform the migration first on a staging or local DDEV fixture before touching production.
-
Switch Composer Requirements: Remove
typo3/and addcms- fluid- styled- content skom/in the same Composer operation:typo3- astryx composer remove typo3/cms-fluid-styled-content composer require skom/typo3-astryx composer updateCopied! -
Flush Caches and Apply Schema:
vendor/bin/typo3 cache:flush vendor/bin/typo3 extension:setupCopied! -
Run Migration Dry Run: Execute the migration console command in dry-run mode (read-only):
vendor/bin/typo3 astryx:migrateCopied!Review the JSON output. If any records appear under
manual, investigate them. The migration tool refuses to apply changes if unsupported types, deleted records, or draft workspace versions are detected.Review -
Apply Migration with Report: When all records are accounted for, run the migration with
--and a mandatory absolute path for the audit report file:apply vendor/bin/typo3 astryx:migrate --apply --report=/var/backup/astryx-migration-report.jsonCopied!Caution
The report file path must be absolute, must not already exist, and must be located outside the web root (outside
public/). It saves the full pre-migration state of every modified record before writing changes through TYPO3'sData.Handler -
Verify and Flush: Flush caches and run a second dry run, which should report zero pending changes:
vendor/bin/typo3 cache:flush vendor/bin/typo3 astryx:migrateCopied!
CType Mapping Matrix
The migration command maps supported legacy FSC content types losslessly:
| FSC Source CType | Astryx Target CType | Handling & Notes |
|---|---|---|
header | astryx_ | Preserves core header, layout, link, etc. |
text | astryx_ | Preserves core bodytext and RTE formatting |
textmedia, textpic,
image | astryx_ | Preserves FAL image and assets relations, bodytext, and orientation settings |
div | astryx_ | Maps to Astryx horizontal divider |
uploads | astryx_ | Preserves core media FAL file relations |
menu_,
menu_,
menu_ | Retained CType (same CType identifier) | Rendered with native Astryx components
(astryx:, astryx:) |
shortcut | Retained CType | Uses native RECORDS reference renderer |
html | Retained CType | Rendered with sanitized HTML standard wrap |
bullets, table | Manual Conversion | Convert manually to Collection-based list / table Content Blocks |
| Dedicated Plugins | Unchanged | Plugin registration is fully preserved |
Rollback Procedure
If you must revert a migration:
- Restore the prior Git commit and Composer lock file.
- Run
composer install. - Restore the database dump and FAL storage backup taken prior to migration.
- Flush caches:
vendor/.bin/ typo3 cache: flush - Verify that legacy FSC rendering is restored.
Note
Do not attempt to replay the JSON migration report directly back into a database where TCA definitions have changed. Full recovery relies on the database dump.