Tu instancia de TYPO3 te acaba de costar otros €8k en mano de obra de actualización este trimestre
Si eres responsable de plataforma en una empresa DACH y ves cómo tus configuraciones de TypoScript se alejan cada vez más de tu hoja de ruta con React, has llegado al límite del desacoplamiento.
Why leave TYPO3?
- TCA configuration files demand PHP expertise for every content type change and break silently across version upgrades
- Multilingual overlays via sys_language_uid create 6-table JOIN queries that stall under 50,000+ DACH content records
- Fluid templates lock your design system inside TYPO3, blocking iOS apps and digital signage from reusing content
- Version upgrades from v11 to v13 routinely cost €20,000–€50,000 in extension rewrites and database schema patches
- Extbase repositories require 300+ lines of PHP to fetch filtered content that GROQ handles in 12 lines
- The monolithic stack forces your frontend team to learn TypoScript instead of shipping React components
What you gain
- TypeScript schemas replace TCA arrays, cutting content model changes from 4-hour sprints to 15-minute commits with full Git history
- GROQ queries eliminate Extbase boilerplate, reducing data-fetching code by 60–70% and query times to sub-200ms
- Real-time Studio collaboration drops average content entry from 15 minutes to 5 minutes with live multi-editor presence
- Frankfurt EU data residency on Enterprise tier satisfies GDPR and German data sovereignty laws without custom hosting
- Headless architecture feeds Next.js storefronts, native mobile apps, and in-store displays from one content source simultaneously
- Structured content with portable text blocks enables your marketing team to publish to web, email, and app push notifications without developer tickets
Por qué los equipos empresariales DACH están abandonando TYPO3
TYPO3 se ha ganado su reputación en el mundo de habla alemana. Impulsa cientos de miles de instalaciones en Alemania, Austria y Suiza — y con razón. Permisos detallados, soporte multilingüe profundo a través de sys_language_uid, un ecosistema de extensiones probado en batalla. El sistema funciona.
Pero la arquitectura está mostrando su edad. El TCA (Table Configuration Array), que define los tipos de contenido en tt_content, es verboso, frágil y hostil a los frameworks de frontend modernos. Cada cambio de contenido requiere conocimientos de PHP, migraciones de base de datos y rituales de limpieza de caché que parecen más superstición que ingeniería. Los editores emplean más de 15 minutos en tareas que deberían llevar 3. Y el pipeline de renderizado monolítico mantiene tu frontend permanentemente acoplado a tu backend — sin vía de escape.
Sanity CMS resuelve estos problemas con un enfoque headless y orientado a esquemas que ofrece a las empresas DACH lo que realmente necesitan: contenido estructurado, colaboración en tiempo real, consultas con GROQ y una experiencia de editor en Studio que tu equipo de contenidos no odiará.
Los verdaderos puntos de dolor de TYPO3 a escala empresarial
El infierno de la configuración TCA
Cada tipo de contenido en TYPO3 vive en tt_content con el comportamiento definido por arrays TCA distribuidos entre ext_tables.php, TCA/Overrides y diversas configuraciones de extensiones. Añadir un nuevo elemento de contenido implica escribir configuración PHP, crear plantillas Fluid, registrar plugins y limpiar múltiples capas de caché. Renombrar un campo puede desencadenar horas de depuración. Lo hemos visto ocurrir a las 3 de la madrugada más de una vez.
El contenido multilingüe es frágil
La gestión de idiomas en TYPO3 mediante sys_language_uid y l10n_parent genera relaciones de base de datos complejas. Los editores de contenido lidian con registros superpuestos, modos de traducción libre o conectado y cadenas de idiomas de reserva. Un registro de idioma mal configurado puede romper una localización completa — silenciosamente, si tienes mala suerte.
Dependencia del frontend
Las plantillas Fluid son potentes, pero encadenan tu presentación al backend de TYPO3. ¿Quieres servir contenido a una aplicación móvil, un frontend Next.js y un sistema de señalización digital simultáneamente? La extensión headless de TYPO3 existe, pero está añadida como parche a una arquitectura monolítica.
Fatiga de actualizaciones
Las actualizaciones de versiones principales de TYPO3 (v11 → v12 → v13) rompen extensiones, exigen subidas de versión de PHP y requieren pruebas exhaustivas. Las empresas DACH habitualmente gastan entre €20.000 y €50.000 anuales solo en mantener TYPO3 funcionando y parcheado. Es presupuesto que podría destinarse a trabajo de producto real.
Lo que Sanity aporta
Modelado de contenido orientado a esquemas
Los esquemas de Sanity son definiciones TypeScript. Tu modelo de contenido está bajo control de versiones, es seguro en tipos y legible por personas. No más descifrar arrays TCA anidados — un esquema de página son 30 líneas de TypeScript limpio en lugar de 300 líneas de configuración PHP.
GROQ: un lenguaje de consulta construido para el contenido
GROQ reemplaza los repositorios Extbase de TYPO3 y las cadenas QueryBuilder. ¿Necesitas todas las páginas con contenido en alemán que referencian a un autor específico? Una sola expresión GROQ:
*[_type == "page" && language == "de-DE" && references($authorId)]{
title,
slug,
content[]{ ... }
}
Sin JOINs. Sin clases Repository. Sin envoltorios QueryResult.
Sanity Studio: los editores lo adoran
Sanity Studio es una aplicación React a la que tus editores acceden desde el navegador. La colaboración en tiempo real permite que dos editores trabajen en el mismo documento simultáneamente — sin más conflictos por bloqueo de registros en TYPO3. Componentes de entrada personalizados, vista previa en vivo y bloques de contenido con arrastrar y soltar reemplazan la rígida experiencia del módulo backend que los editores han venido tolerando durante años.
Residencia de datos DACH
Sanity Enterprise ofrece alojamiento de Content Lake en Fráncfort, cumpliendo con los requisitos de GDPR y soberanía de datos que las empresas DACH no pueden ignorar. Combinado con un control de acceso basado en roles que se adapta limpiamente a las jerarquías corporativas alemanas, el cumplimiento normativo se convierte en algo sencillo en lugar de ser una pesadilla de auditorías trimestrales.
Nuestro proceso de migración: de TCA a esquemas Sanity
Fase 1: Auditoría de contenido y mapeo de esquemas (semanas 1–3)
Extraemos tu modelo de contenido completo de TYPO3 analizando pages, tt_content y todas las tablas de extensiones personalizadas. Cada tipo de campo TCA se mapea a su equivalente en Sanity:
tt_content.bodytext(RTE) → bloques Portable Text de Sanitytt_content.image(referencias FAL) → activos de imagen de Sanity con metadatos- Referencias padre
pages.uid/tt_content.pid→ referencias de documento_refen Sanity - Superposiciones de
sys_language_uid→ internacionalización a nivel de documento o arrays de locale a nivel de campo en Sanity - Campos TCA personalizados
select/group→ tipos de referencia Sanity con filtros
Antes de mover ningún dato, recibes un documento completo de mapeo de esquemas y prototipos de esquemas Sanity en TypeScript.
Fase 2: Extracción automatizada de datos (semanas 3–5)
Desarrollamos scripts de extracción personalizados en Node.js que se conectan directamente a tu base de datos MySQL de TYPO3:
// Extraer páginas con todas las superposiciones de idioma
const pages = await db.query(`
SELECT p.uid, p.title, p.slug, p.description,
p.seo_title, p.og_description, p.sys_language_uid
FROM pages p
WHERE p.deleted = 0 AND p.hidden = 0
ORDER BY p.sorting
`);
El texto enriquecido de tt_content.bodytext se convierte de HTML a Portable Text usando @sanity/block-tools, preservando enlaces internos, medios incrustados y estructura semántica. Las referencias a archivos FAL se resuelven y los activos se cargan en la CDN de Sanity con los metadatos originales intactos.
Fase 3: Despliegue de esquemas e importación de datos (semanas 5–8)
Los esquemas de Sanity se despliegan mediante sanity deploy. Las importaciones de contenido se ejecutan en lotes transaccionales a través del cliente de Sanity:
const tx = client.transaction();
transformedDocs.forEach(doc => tx.createIfNotExists(doc));
await tx.commit();
Las importaciones idempotentes nos permiten ejecutar la migración repetidamente durante la operación en paralelo sin duplicar contenido. Cada documento importado se valida contra el esquema y las discrepancias se señalan automáticamente.
Fase 4: Personalización de Studio y formación de editores (semanas 6–10)
Configuramos Sanity Studio con plugins personalizados que replican los flujos de trabajo habituales de TYPO3. Los tipos de elementos de contenido de tt_content.CType se convierten en tipos de bloque de Studio con componentes de vista previa. Desarrollamos widgets de entrada personalizados para necesidades específicas del mercado DACH — campos de dirección con validación de códigos postales austriacos y suizos, generadores de slugs multilingües y flujos de aprobación que se ajustan a tu proceso editorial existente.
Fase 5: Integración del frontend y puesta en producción (semanas 8–14)
Tu nuevo frontend — habitualmente Next.js o Astro — consume contenido mediante consultas GROQ. Implementamos ISR (Incremental Static Regeneration) o revalidación bajo demanda activada por webhooks de Sanity. El resultado: cargas de página en menos de un segundo con actualizaciones de contenido en tiempo real.
Estrategia de preservación del SEO
El SEO no es opcional en las migraciones de empresas DACH. Nuestro enfoque:
- Mapeo completo de URLs: cada ruta de RealURL/route enhancer de TYPO3 se mapea a una regla de redirección. Generamos un mapa completo de redirecciones 301 que cubre todas las variantes de idioma (prefijos
/de/,/at/,/ch/). - Migración de metadatos:
pages.seo_title,pages.og_description,pages.canonical_linky todos los campos de extensiones SEO se transfieren a campos de esquema dedicados en Sanity. - Preservación de datos estructurados: cualquier marcado JSON-LD o schema.org generado por extensiones de TYPO3 se reconstruye como componentes de frontend alimentados por datos estructurados de Sanity.
- Generación de sitemaps: sitemaps XML dinámicos generados a partir de consultas GROQ, con etiquetas
hreflangpara todas las variantes de idioma DACH. - Monitorización: configuramos el seguimiento en Google Search Console antes de la migración y observamos la indexación, los errores de rastreo y los cambios de posicionamiento durante 90 días tras el lanzamiento.
Nuestro objetivo: cero pérdida de tráfico orgánico en los primeros 30 días.
Plazos y precios
Las migraciones empresariales de TYPO3 a Sanity suelen durar entre 10 y 16 semanas según el volumen de contenido y la complejidad de las extensiones personalizadas:
| Tamaño del proyecto | Volumen de contenido | Extensiones personalizadas | Plazo | Inversión |
|---|---|---|---|---|
| Mediana empresa | 5.000–20.000 registros | 5–10 | 10–12 semanas | €35.000–€55.000 |
| Empresa | 20.000–100.000 registros | 10–25 | 12–16 semanas | €55.000–€95.000 |
| Gran empresa | 100.000+ registros | 25+ | 16–20 semanas | €95.000–€150.000 |
Esto cubre el diseño de esquemas, la migración de datos, la personalización de Studio, el desarrollo del frontend, la preservación del SEO y 90 días de soporte post-lanzamiento. Los costes de la plataforma Sanity (nivel Growth o Enterprise) se facturan por separado.
Por qué trabajar con Social Animal en esta migración
Conocemos ambos lados de esta migración. Sabemos qué aspecto tiene TCA['tt_content']['columns'] a las 3 de la madrugada, y sabemos cómo modelar ese mismo contenido como esquemas Sanity limpios para cuando amanece. Nuestro equipo ha ejecutado migraciones de CMS empresariales para compañías DACH con requisitos de cumplimiento estrictos, árboles de contenido multilingüe complejos y equipos editoriales que necesitan que el nuevo sistema se sienta mejor desde el primer día — no solo diferente.
Aryan Shah lidera nuestra ingeniería de migraciones, aportando una profunda experiencia en las entrañas de TYPO3 y la arquitectura de esquemas Sanity. Cada migración cuenta con un responsable técnico dedicado, pipelines de validación automatizados y un plan de reversión que esperamos que nunca necesites usar.
The migration process
Discovery & Audit
We map every page, post, media file, redirect, and plugin. Nothing gets missed.
Architecture Plan
New stack designed for your content structure, SEO requirements, and performance targets.
Staged Migration
Content migrated in batches. Each batch verified before the next begins.
SEO Preservation
301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.
Launch & Monitor
DNS cutover with zero downtime. 30-day monitoring period included.
TYPO3 vs Sanity CMS
| Metric | TYPO3 | Sanity CMS |
|---|---|---|
| Lighthouse Mobile | 35-55 | 92-100 |
| TTFB | 1.5-3.2s | <0.25s |
| Content Model Change | 2-8 hours (TCA + PHP) | 10-30 min (TypeScript) |
| Annual Maintenance Cost | €20,000-€50,000 | €12,000-€48,000 |
| Developer Experience | PHP/TCA/Fluid/TypoScript | TypeScript/GROQ/React |
| Headless API Support | Bolt-on extension (partial) | Native (full Content Lake API) |
Common questions
¿Cuánto tiempo lleva una migración de TYPO3 a Sanity CMS?
Las migraciones empresariales de TYPO3 a Sanity suelen tardar entre 10 y 16 semanas. El plazo depende del volumen de contenido, el número de extensiones personalizadas de TYPO3, la complejidad multilingüe y los requisitos del frontend. Un sitio de mediana empresa con 10.000 registros y unas pocas extensiones tarda unas 10–12 semanas. Las empresas más grandes con más de 100.000 registros y 25+ extensiones necesitan entre 16 y 20 semanas — no hay atajos cuando hay tantos datos y tantas configuraciones personalizadas.
¿Se pueden convertir automáticamente las definiciones de campos TCA de TYPO3 a esquemas Sanity?
Hemos desarrollado herramientas automatizadas que analizan las configuraciones TCA y generan borradores de definiciones de esquemas Sanity en TypeScript. Gestiona aproximadamente el 70% de los tipos de campo estándar — texto, RTE, select, group, relaciones inline. Los `renderType` personalizados de TCA y las estructuras FlexForm complejas requieren mapeo manual, que trabajamos durante la fase de diseño de esquemas. No se omite nada; simplemente requiere la atención de un experto.
¿Perderemos posicionamiento SEO al migrar de TYPO3 a Sanity?
No, si la migración se ejecuta correctamente. Generamos mapas completos de redirecciones 301 que cubren cada URL de TYPO3 — variantes de RealURL, superposiciones de idioma y todo lo demás. Todos los metadatos SEO, etiquetas canónicas y datos estructurados se transfieren a campos de esquema dedicados en Sanity. Monitorizamos Search Console durante 90 días tras el lanzamiento y normalmente observamos cero pérdida de tráfico orgánico en los primeros 30 días.
¿Cómo gestiona Sanity el contenido multilingüe para sitios alemanes, austriacos y suizos?
Sanity admite dos enfoques multilingüe: internacionalización a nivel de documento, donde cada idioma tiene su propio documento vinculado por un ID compartido, o localización a nivel de campo usando arrays de locale dentro de un único documento. Para empresas DACH, casi siempre recomendamos la opción a nivel de documento con el plugin `@sanity/document-internationalization`. Los editores obtienen flujos de trabajo limpios por idioma con cadenas de reserva — mucho más cercano a lo que esperan viniendo de TYPO3.
¿Qué ocurre con los activos FAL (File Abstraction Layer) de TYPO3 durante la migración?
Todos los activos gestionados por FAL — imágenes, PDFs, vídeos — se extraen con sus metadatos (texto alternativo, título, descripción, variantes de recorte) y se cargan en el pipeline de activos de Sanity. La CDN de Sanity gestiona las transformaciones de imagen automáticamente, reemplazando la pila de procesamiento de imágenes de TYPO3. Los metadatos originales de FAL se mapean directamente a los campos de activos de Sanity, por lo que los atributos de accesibilidad y los datos de imagen para SEO se transfieren intactos.
¿Cumple Sanity con el GDPR para uso empresarial en el mercado DACH?
Sí. Sanity Enterprise ofrece residencia de datos en Fráncfort, manteniendo tu Content Lake dentro de la UE. Sanity proporciona un DPA (Acuerdo de Procesamiento de Datos), admite SSO mediante SAML y ofrece control de acceso basado en roles que se adapta a los requisitos de gobernanza corporativa alemana. Los datos del Content Lake están cifrados en reposo y en tránsito — esto cubre la lista de verificación de cumplimiento estándar DACH sin necesidad de soluciones alternativas especiales.
¿Cómo se compara GROQ con el enfoque de consultas Extbase de TYPO3?
GROQ es un lenguaje de consulta de contenido diseñado específicamente que reemplaza los repositorios Extbase, QueryBuilder y el procesamiento de datos TypoScript en una sola expresión. Gestiona proyecciones, joins mediante referencias, manipulación de cadenas y operaciones con arrays — sin clases PHP, sin objetos TypoScript. Los desarrolladores habitualmente escriben entre un 60 y un 70% menos de código de consulta en comparación con implementaciones equivalentes en Extbase. Una vez que has escrito unas pocas consultas GROQ, volver a los repositorios Extbase se siente como un castigo.
¿Puede Sanity Studio replicar la experiencia de edición del backend de TYPO3?
Sanity Studio es completamente personalizable con componentes React. Desarrollamos configuraciones de Studio que replican los flujos de trabajo habituales de TYPO3 — los tipos de elementos de contenido se convierten en bloques con arrastrar y soltar, los árboles de páginas se convierten en listas de documentos estructuradas y los módulos de área de trabajo replican los módulos del backend de TYPO3. La mayoría de los equipos editoriales encuentran Studio más intuitivo en la primera semana. Las dos cosas que mencionan más: la colaboración en tiempo real y la vista previa en vivo. Ambas de las cuales TYPO3 sencillamente no tiene.
Ready to migrate?
Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.
Let's build
something together.
Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.