As a result of this initiative, I can now present three concrete outcomes:
- Index (index) extension
- Search Engine Abstraction Layer (seal) extension
- SEAL Search AI (seal_ai) extension proof of concept.
Decoupling Indexing from Search
Thinking about search means thinking about indexing. One of the key insights I had during the SEAL integration was that indexing and search should not be treated as the same thing. Historically, TYPO3 extensions tended to bundle both together, but in very different ways. For example, the TYPO3 system extension, Indexed Search, uses a caching mechanism; the Faceted Search (ke_search) extension traverses the TYPO3 database; and the Apache Solr for TYPO3 - Enterprise Search (solr) extension makes HTTP frontend requests.
Each solution worked, but the ecosystem as a whole ended up fragmented. Developers repeatedly had to reinvent indexing logic for each new extension. And there are more use cases than just search today.
That is why I created the Index (index) extension. Its purpose is to provide a central indexing framework in TYPO3. With it, different indexing strategies can be handled in one place without having to embed them directly into search or AI extensions. The indexed data can then be consumed through PSR-Events, giving other extensions a consistent entry point.
From a technical standpoint, everything runs via the TYPO3/Symfony Messenger, which makes the system both robust and scalable. At the moment, the Index extension supports these different index strategies (configurable per page):
- Cache-based indexing, like Indexed Search (indexed_search)
- Frontend subrequests
- Database traversal, like Faceted Search (ke_search)
- HTTP frontend requests, like Apache Solr for TYPO3 (solr)
- Webhooks (move content to external systems)
- Reactions (get content from external systems and use it in the internal process)
- File indexing via file mounts
A critical design choice was to keep the Index extension free of any persistence layer. It simply emits information via events and does not store anything itself. This keeps the extension lightweight and ensures it can serve as a foundation for whatever persistence layers may be added on top.
For those interested, you can take a closer look in the TYPO3 Extension Repository.
Integrating SEAL into TYPO3
The next step was the release of the Search Engine Abstraction Layer (seal) extension, which brings the Search Engine Abstraction Layer into TYPO3. This extension has two main components:
- A plugin for search output to display results in TYPO3.
- A TYPO3 adapter, which stores results in the TYPO3 database using a FULLTEXT index.
By default, the TYPO3 database itself serves as the adapter, which means that as soon as the Seal extension is installed, there’s already a functional search solution in place. No additional adapters are required to get started.
What makes this extension particularly powerful is how it builds on the Index extension. The indexing is handled centrally, and the persistence layer is provided by SEAL through its adapters. With this architecture, projects can start small by using TYPO3’s built-in FULLTEXT database index and later switch to a more advanced or specialized adapter when needed.
For anyone curious to see how it works, you can find it in the TYPO3 Extension Repository.
Proof of Concept for AI-Powered Search
As a final step, I also published a proof of concept: the SEAL Search AI (seal_ai) extension.
This extension integrates with Symfony AI Platform and Store and introduces a SEAL adapter that vectorizes the indexed data. In practice, this means it transforms content via embeddings, enabling semantic, embedding-based search. (Important note: There is no official release of Symfony AI yet, and the packages are currently moving forward very quickly.)
This approach is especially exciting because it solves problems that traditional keyword search engines struggle with. By leveraging embeddings, the search engine understands meaning rather than just words. For example, a query for “car” will also find results containing “automobile.”
At this stage, the SEAL Search AI extension is still only a proof of concept. But it already demonstrates how TYPO3 can tap into AI-driven approaches, opening the door for powerful, context-aware search experiences.
If you’d like to experiment with it yourself, the extension is in the TYPO3 Extension Repository.
Conclusion — a Fresh Approach to Search
Taken together, these three extensions mark a shift in how I think TYPO3 should approach search. This modular approach offers real benefits - delivering flexibility, scalability, and strong innovation.
For me, the biggest win in this journey has been the realization of the conceptual split. By decoupling the indexing process and abstracting the persistence layer, TYPO3 now has a new idea to handle future technologies.
The proof of concept with the SEAL Search AI extension is just the beginning. There are still many open questions, ideas to refine, and experiments to try. But I believe this is a promising step forward - and I’m excited to hear feedback from the TYPO3 community.