strapi-plugin-form-builder-cms
Un plugin de Strapi que permite a los equipos crear y gestionar formularios directamente desde el CMS — sin esquemas personalizados, endpoints ni interfaz de administración.
Overview
Desarrollé un plugin personalizado para Strapi v5 que permite crear y gestionar formularios dinámicos directamente desde el CMS, eliminando la necesidad de definir schemas, endpoints y lógica repetida en el frontend.
→ https://www.npmjs.com/package/strapi-plugin-form-builder-cms
Qué construí
- Constructor de formularios dentro del panel de administración de Strapi
- Sistema flexible de campos (tipo, validación, opciones, requerido)
- Formularios expuestos vía API para renderizado dinámico
- Arquitectura reutilizable para múltiples proyectos
Cómo funciona
Los formularios se modelan como entidades dentro del CMS. Cada uno contiene un identificador único y una estructura de campos configurable.
El frontend (Next.js, Astro, React, etc.) consume la definición vía API y renderiza el formulario dinámicamente, manteniendo una arquitectura desacoplada.
Decisiones clave
- CMS como fuente de verdad
- Renderizado basado en API (frontend como renderer)
- Plugin reutilizable en lugar de implementación específica
- Estandarización de schemas entre proyectos
Diferenciación
A diferencia de otros plugins que priorizan features visuales (layouts, lógica condicional), este enfoque prioriza arquitectura y reutilización:
- Independencia total del frontend
- Reutilización multi-proyecto
- Mejor experiencia de desarrollo (DX)
- Menor acoplamiento y mayor mantenibilidad
Challenges & Trade-offs
Flexibilidad vs simplicidad
Diseñar un schema flexible sin hacerlo complejo para usuarios no técnicos.Validación distribuida
Parte de la validación vive en el CMS y parte en el frontend, lo que requiere mantener consistencia.Renderizado dinámico vs tipado fuerte
Se sacrifica tipado estricto en frontend a cambio de mayor flexibilidad.Limitaciones del ecosistema de plugins de Strapi
Adaptarse a la arquitectura interna y ciclos de vida del admin panel.
Impacto
- Eliminación de implementaciones repetidas de formularios
- Reducción significativa del tiempo de desarrollo
- Autonomía para equipos no técnicos
- Estandarización de formularios entre proyectos
Tech Stack
- Node.js + TypeScript
- Strapi v5
- React (Strapi Design System)