¿Qué es Payload?
PayloadCMS es un Headless CMS (Content Management System), esto quiere decir que nos permite tener un panel adminitrador para nuestros proyectos web, pero la interfaz para el usario queda a nuestro criterio, asi que podemos desarrollar la interfaz que queramos, web o movil y usando cualquier framework o biblioteca de interfaces.
Payload esta desarrollado en Nodejs, React, Mongodb, y Typescript, ademas de otras bibliotecas relacionadas a Javascript. Basicamente podemos decir que es un CMS desarrollado usando el Stack MERN (Mongodb, Express, React y Node).
Caracteristicas de PayloadCMS
Este CMS tiene las siguientes caracteristicas.
- Self Hosted. PayloadCMS es totalmente Self Hosted, asi que tendras control completo de tu backend. Esto tambien quiere decir que tu decides en proveedor de la nube desplegarlo.
- Admin Panel (basado en React). Posee un panel adminitrador ya incluido en el que podras darle a tus clientes o a los usuarios principal de tu apliacion acceso. Es configurable y muy facil de personalizar con código.
- Conditional Logic. A diferencia de otros CMS PayloadCMS permite crear interfaces de forma condicional, esto es muy util en aquellas interfaces que necesitemos sean dinamicas.
- Subida de Archivos, Permite subir archivos tanto de forma local como a una plataforma de tercero.
- Desarrollado con MERN, Todo el CMS esta desarrollado sobre React, Nodejs, Mongodb, y Express (Stack MERN), usando Typescript
- Extensible con codigo, Te permite tambien tener acceso al codigo del backend de Express, de esta forma podras extenderlo si lo necesitas en un backend ya existente de Express.
- Auth strategies POsee varios metodos de autenticación de usuarios.
- Local Authentication
- Third party: Github
- Localization Support, los campos que creas en el CMS, pueden ser traducidos a multiples idiomas sin la necesidad de plugisn o codigo adicional
- Tabs, para organizar las opciones del panel de administracion
- collapsible fields
- Dark Mode
La idea principal del CMS, es que no debes aprender como funciona el CMS internamente, el CMS te dara la mayor cantidad de cosas hechas asi que solo necesitas seguir aprendiendo Javascript/Typescript.
Ok, ahora vamos a crear nuestra primer aplicación.
Requerimientos
Para poder instalar Payload CMS, es necesario tener los siguientes programas instalados:
- Nodejs
- Mongodb
Mongodb con Docker
Si quieres crear una base de datos rapidamente con Mongodb, puedes usar este comando:
docker run --name mymongo -p 27017:27017 -d mongo
Instalación
npx create-payload-app
cd firstapp
code .
npm run dev
Crea tu primer Usuario
al ejecutarlo y visitar el enlace http://localhost:3000 veras un formulario de registro, esto es para que puedas registrar tu primer usuario administrador.
Una vez coloques tu usuario, veras una colección llamada Users, esta es una coleccion donde estan guardados los usuarios.
Aunque tambien podemos crear nuestras propias colecciones.
Los tipos de datos se pueden encontrar en este enlace: https://payloadcms.com/docs/fields/overview
Crear Proyecto desde Cero
Colecciones
Las colecciones es la forma en la que el CMS almacena los datos y tambien crea campos nuevos.
Coleccion de publicaciones
export const Posts = {
slug: "posts",
fields: [
{
name: "slug",
type: "text",
required: true,
},
],
};
Testing
Para el testing Payload esta usando Cypress