<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cristhian Luna</title>
    <description>The latest articles on DEV Community by Cristhian Luna (@devcluna).</description>
    <link>https://dev.to/devcluna</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3861076%2F0f4e4eb7-5432-4e00-a5f1-9692c8e5b088.png</url>
      <title>DEV Community: Cristhian Luna</title>
      <link>https://dev.to/devcluna</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devcluna"/>
    <language>en</language>
    <item>
      <title>How to Build Forms in Strapi v5 with strapi-plugin-form-builder-cms</title>
      <dc:creator>Cristhian Luna</dc:creator>
      <pubDate>Sat, 04 Apr 2026 14:30:12 +0000</pubDate>
      <link>https://dev.to/devcluna/how-to-build-forms-in-strapi-v5-with-strapi-plugin-form-builder-cms-393j</link>
      <guid>https://dev.to/devcluna/how-to-build-forms-in-strapi-v5-with-strapi-plugin-form-builder-cms-393j</guid>
      <description>&lt;p&gt;&lt;em&gt;A step-by-step tutorial to install and configure this open-source plugin that lets you manage dynamic forms directly from the Strapi admin panel.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;If you've ever needed to handle contact forms, registrations, or any kind of data capture inside your Strapi project, you know how tedious it can be to set up from scratch. &lt;strong&gt;strapi-plugin-form-builder-cms&lt;/strong&gt; solves exactly that: a plugin for Strapi v5 that gives you a full form builder right inside the admin panel.&lt;/p&gt;

&lt;p&gt;In this tutorial we'll install Strapi v5 from scratch, add the plugin, and have your first form running in under 15 minutes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt; Node.js 18 or 20 LTS, npm 6+, and basic knowledge of the terminal. This plugin works exclusively with Strapi v5.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/devCluna/strapi-plugin-form-builder-cms/tree/production" rel="noopener noreferrer"&gt;github.com/devCluna/strapi-plugin-form-builder-cms&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1 — Create your Strapi v5 project
&lt;/h2&gt;

&lt;p&gt;If you already have a Strapi v5 project, skip to step 2. Otherwise, use the official CLI:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-strapi-app@latest my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The wizard will ask you a few questions. These are the recommended options for development:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use the default database (SQLite)?     → Yes
Start with an example structure?       → No
Use TypeScript?                        → Yes
Install dependencies with npm?         → Yes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once done, enter the project directory:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h2&gt;
  
  
  Step 2 — Install the plugin from GitHub
&lt;/h2&gt;

&lt;p&gt;Run this command from the root of your Strapi project:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install github:devCluna/strapi-plugin-form-builder-cms#production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Or with yarn:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn add github:devCluna/strapi-plugin-form-builder-cms#production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Installing directly from the &lt;code&gt;production&lt;/code&gt; branch always gives you the latest version. To pin a specific version, replace &lt;code&gt;#production&lt;/code&gt; with a commit hash.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 3 — Register the plugin in your config
&lt;/h2&gt;

&lt;p&gt;Open or create the file &lt;code&gt;config/plugins.ts&lt;/code&gt; and add the following:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// config/plugins.ts

export default {
  'form-builder-cms': {
    enabled: true,
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If the file already exists with other plugins, just add the &lt;code&gt;form-builder-cms&lt;/code&gt; entry to the existing object.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4 — Rebuild the admin panel
&lt;/h2&gt;

&lt;p&gt;Every time you add a plugin with an admin interface, Strapi needs to rebuild the panel:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This may take a couple of minutes. Once complete, start the dev server:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run develop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Open your browser at &lt;code&gt;http://localhost:1337/admin&lt;/code&gt;. If this is your first run, it will prompt you to create an admin user.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5 — Create your first form
&lt;/h2&gt;

&lt;p&gt;Once inside the admin panel, you'll see a new entry in the left sidebar called &lt;strong&gt;Form Builder&lt;/strong&gt;. From there you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create forms with a name and description&lt;/li&gt;
&lt;li&gt;Add dynamic fields (text, email, number, date, select, checkbox, phone, etc.)&lt;/li&gt;
&lt;li&gt;Configure per-field validations&lt;/li&gt;
&lt;li&gt;View submissions sent from the frontend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To create a new form, click &lt;strong&gt;Create new form&lt;/strong&gt;, give it a name (e.g. &lt;em&gt;Contact Form&lt;/em&gt;), and start adding fields using the &lt;strong&gt;Add field&lt;/strong&gt; button.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6 — Consume the API from your frontend
&lt;/h2&gt;

&lt;p&gt;The plugin exposes REST endpoints to fetch form structures and receive submissions:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET  /api/form-builder-cms/forms
GET  /api/form-builder-cms/forms/:id
POST /api/form-builder-cms/forms/:id/submit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;A practical JavaScript example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Fetch the form structure
const res = await fetch(
  'http://localhost:1337/api/form-builder-cms/forms/1'
);
const { data } = await res.json();

// Submit a response
await fetch(
  'http://localhost:1337/api/form-builder-cms/forms/1/submit',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      data: {
        name: 'Jane Doe',
        email: 'jane@example.com',
        message: 'Hi, I am interested in your service.',
      }
    })
  }
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Public permissions:&lt;/strong&gt; By default Strapi protects all endpoints. Go to &lt;strong&gt;Settings → Users &amp;amp; Permissions → Roles → Public&lt;/strong&gt; and enable the &lt;code&gt;form-builder-cms&lt;/code&gt; permissions you need to expose.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Quick sanity check
&lt;/h2&gt;

&lt;p&gt;Before moving on, confirm everything is working:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The admin sidebar shows &lt;strong&gt;Form Builder&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You can create a form with at least one field&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/form-builder-cms/forms&lt;/code&gt; returns your form (with permissions enabled)&lt;/li&gt;
&lt;li&gt;A test &lt;code&gt;POST&lt;/code&gt; appears in the submissions section of the admin&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Troubleshooting common issues
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The plugin doesn't appear in the sidebar&lt;/strong&gt;&lt;br&gt;
Make sure you ran &lt;code&gt;npm run build&lt;/code&gt; after installing the plugin, and that the entry in &lt;code&gt;config/plugins.ts&lt;/code&gt; is exactly &lt;code&gt;form-builder-cms&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error when installing from GitHub&lt;/strong&gt;&lt;br&gt;
Verify you have network access to GitHub and that git is installed on your system. If the repository is private, you'll need to configure SSH authentication or a personal access token.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Server won't start after installing the plugin&lt;/strong&gt;&lt;br&gt;
Check the terminal for dependency errors. Try deleting &lt;code&gt;node_modules&lt;/code&gt; and &lt;code&gt;package-lock.json&lt;/code&gt;, then run &lt;code&gt;npm install&lt;/code&gt; again.&lt;/p&gt;




&lt;p&gt;That's it. In just a few steps you have a fully functional form system inside Strapi v5 — no manual Content Type setup, no custom admin UI to build from scratch.&lt;/p&gt;

&lt;p&gt;If the plugin saved you time, drop a ⭐ on GitHub at &lt;strong&gt;devCluna&lt;/strong&gt;'s repository. Contributions are always welcome.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: Strapi, Strapi v5, Headless CMS, Plugin, Forms, Node.js, Tutorial&lt;/em&gt;&lt;/p&gt;

</description>
      <category>strapi</category>
      <category>plugin</category>
      <category>forms</category>
      <category>strapiv5</category>
    </item>
    <item>
      <title>Cómo crear formularios en Strapi v5 con strapi-plugin-form-builder-cms</title>
      <dc:creator>Cristhian Luna</dc:creator>
      <pubDate>Sat, 04 Apr 2026 14:22:59 +0000</pubDate>
      <link>https://dev.to/devcluna/como-crear-formularios-en-strapi-v5-con-strapi-plugin-form-builder-cms-467d</link>
      <guid>https://dev.to/devcluna/como-crear-formularios-en-strapi-v5-con-strapi-plugin-form-builder-cms-467d</guid>
      <description>&lt;p&gt;&lt;em&gt;Un tutorial paso a paso para instalar y configurar este plugin open-source que te permite gestionar formularios dinámicos directamente desde el panel de administración.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Si alguna vez necesitaste manejar formularios de contacto, registros o cualquier tipo de captura de datos dentro de tu proyecto Strapi, sabes lo tedioso que puede ser configurarlo desde cero. &lt;strong&gt;strapi-plugin-form-builder-cms&lt;/strong&gt; resuelve exactamente eso: un plugin para Strapi v5 que te da un constructor de formularios completo directo en el admin panel.&lt;/p&gt;

&lt;p&gt;En este tutorial vamos a instalar Strapi v5 desde cero, agregar el plugin, y levantar tu primer formulario en menos de 15 minutos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Requisitos previos:&lt;/strong&gt; Node.js 18 o 20 LTS, npm 6+, y conocimientos básicos de terminal. El plugin funciona exclusivamente con Strapi v5.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Repositorio: &lt;a href="https://github.com/devCluna/strapi-plugin-form-builder-cms/tree/production" rel="noopener noreferrer"&gt;github.com/devCluna/strapi-plugin-form-builder-cms&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Paso 1 — Crea tu proyecto Strapi v5
&lt;/h2&gt;

&lt;p&gt;Si ya tienes un proyecto Strapi v5, puedes saltar al paso 2. Si no, usa el CLI oficial:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-strapi-app@latest my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;El asistente te hará algunas preguntas. Estas son las opciones recomendadas:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;¿Usar base de datos por defecto (SQLite)?  → Yes
¿Comenzar con estructura de ejemplo?       → No
¿Usar TypeScript?                          → Yes
¿Instalar dependencias con npm?            → Yes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Una vez completado, entra al directorio:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h2&gt;
  
  
  Paso 2 — Instala el plugin desde GitHub
&lt;/h2&gt;

&lt;p&gt;Ejecuta este comando en la raíz de tu proyecto Strapi:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install github:devCluna/strapi-plugin-form-builder-cms#production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;O con yarn:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn add github:devCluna/strapi-plugin-form-builder-cms#production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Al instalar desde GitHub apuntando al branch &lt;code&gt;production&lt;/code&gt;, siempre obtienes la versión más reciente. Para fijar una versión específica, reemplaza &lt;code&gt;#production&lt;/code&gt; por un commit hash.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Paso 3 — Registra el plugin en la configuración
&lt;/h2&gt;

&lt;p&gt;Abre o crea el archivo &lt;code&gt;config/plugins.ts&lt;/code&gt; y agrega lo siguiente:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// config/plugins.ts

export default {
  'form-builder-cms': {
    enabled: true,
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Si el archivo ya existe con otros plugins, simplemente añade la entrada &lt;code&gt;form-builder-cms&lt;/code&gt; al objeto existente.&lt;/p&gt;




&lt;h2&gt;
  
  
  Paso 4 — Reconstruye el admin panel
&lt;/h2&gt;

&lt;p&gt;Cada vez que agregas un plugin con interfaz de administración, Strapi necesita reconstruir el panel:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Este proceso puede tardar un par de minutos. Una vez completado, levanta el servidor:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run develop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Abre tu navegador en &lt;code&gt;http://localhost:1337/admin&lt;/code&gt;. Si es la primera vez, te pedirá crear un usuario administrador.&lt;/p&gt;




&lt;h2&gt;
  
  
  Paso 5 — Crea tu primer formulario
&lt;/h2&gt;

&lt;p&gt;Una vez dentro del admin panel, verás una nueva entrada en el menú lateral llamada &lt;strong&gt;Form Builder&lt;/strong&gt;. Desde ahí puedes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crear formularios con nombre y descripción&lt;/li&gt;
&lt;li&gt;Agregar campos dinámicos (texto, email, número, fecha, select, checkbox, teléfono, etc.)&lt;/li&gt;
&lt;li&gt;Configurar validaciones por campo&lt;/li&gt;
&lt;li&gt;Ver las respuestas enviadas desde el frontend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para crear un formulario nuevo, haz clic en &lt;strong&gt;Create new form&lt;/strong&gt;, dale un nombre (por ejemplo: &lt;em&gt;Formulario de contacto&lt;/em&gt;) y empieza a agregar campos con el botón &lt;strong&gt;Add field&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Paso 6 — Consume la API desde tu frontend
&lt;/h2&gt;

&lt;p&gt;El plugin expone endpoints REST para obtener la estructura de los formularios y recibir envíos:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET  /api/form-builder-cms/forms
GET  /api/form-builder-cms/forms/:id
POST /api/form-builder-cms/forms/:id/submit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Un ejemplo práctico en JavaScript:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Obtener la estructura del formulario
const res = await fetch(
  'http://localhost:1337/api/form-builder-cms/forms/1'
);
const { data } = await res.json();

// Enviar una respuesta
await fetch(
  'http://localhost:1337/api/form-builder-cms/forms/1/submit',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      data: {
        nombre: 'María García',
        email: 'maria@ejemplo.com',
        mensaje: 'Hola, me interesa su servicio.',
      }
    })
  }
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Permisos públicos:&lt;/strong&gt; Por defecto Strapi protege todos los endpoints. Ve a &lt;strong&gt;Settings → Users &amp;amp; Permissions → Roles → Public&lt;/strong&gt; y habilita los permisos de &lt;code&gt;form-builder-cms&lt;/code&gt; que necesites exponer.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Verificación rápida
&lt;/h2&gt;

&lt;p&gt;Antes de continuar, confirma que todo funciona:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;El menú lateral del admin muestra &lt;strong&gt;Form Builder&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Puedes crear un formulario con al menos un campo&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/form-builder-cms/forms&lt;/code&gt; retorna tu formulario (con permisos habilitados)&lt;/li&gt;
&lt;li&gt;Un &lt;code&gt;POST&lt;/code&gt; de prueba aparece en la sección de respuestas del admin&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Resolución de problemas comunes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;El plugin no aparece en el menú lateral&lt;/strong&gt;&lt;br&gt;
Asegúrate de haber ejecutado &lt;code&gt;npm run build&lt;/code&gt; después de instalar el plugin, y que la entrada en &lt;code&gt;config/plugins.ts&lt;/code&gt; tenga exactamente el nombre &lt;code&gt;form-builder-cms&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error al instalar desde GitHub&lt;/strong&gt;&lt;br&gt;
Verifica que tienes acceso a GitHub desde tu red y que git está instalado. Si el repositorio es privado, necesitarás configurar autenticación SSH o un token personal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El servidor no arranca tras instalar el plugin&lt;/strong&gt;&lt;br&gt;
Revisa la terminal en busca de errores de dependencias. Intenta eliminar &lt;code&gt;node_modules&lt;/code&gt; y &lt;code&gt;package-lock.json&lt;/code&gt;, luego ejecuta &lt;code&gt;npm install&lt;/code&gt; nuevamente.&lt;/p&gt;




&lt;p&gt;Y eso es todo. En pocos pasos tienes un sistema de formularios completamente funcional dentro de Strapi v5, sin tener que configurar Content Types manualmente ni construir la UI del admin desde cero.&lt;/p&gt;

&lt;p&gt;Si el plugin te resultó útil, dale una ⭐ en GitHub al repositorio de &lt;strong&gt;devCluna&lt;/strong&gt;. Las contribuciones siempre son bienvenidas.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: Strapi, Strapi v5, Headless CMS, Plugin, Formularios, Node.js, Tutorial&lt;/em&gt;&lt;/p&gt;

</description>
      <category>strapi</category>
      <category>headlesscms</category>
      <category>plugin</category>
      <category>forms</category>
    </item>
  </channel>
</rss>
