Revisi贸n de 14 cms sin cabeza 2019

Hace alg煤n tiempo, en una importante empresa p煤blica en el mercado ruso donde trabajaba, surgi贸 la pregunta sobre el uso de cms sin cabeza. Entre las muchas implementaciones, una tuvo que ser elegida. Esta es una historia sobre c贸mo form茅 los criterios de selecci贸n, c贸mo analic茅 cms y c贸mo este an谩lisis me llev贸 a pensar que necesito escribir el m铆o. Descripci贸n general de 14 cms sin cabeza debajo del corte.



驴Qu茅 es un CMS sin cabeza?


Aunque el t茅rmino no es nuevo, por alguna raz贸n este tema est谩 muy poco cubierto en Internet en ruso. Entonces, seg煤n Wikipedia :
Un sistema de gesti贸n de contenido sin cabeza , o CMS sin cabeza , es un sistema de gesti贸n de contenido (CMS) solo de back-end construido desde cero como un repositorio de contenido que hace que el contenido sea accesible a trav茅s de una API RESTful para mostrar en cualquier dispositivo.
El sistema de gesti贸n de contenido sin cabeza , o CMS sin cabeza, es un sistema de gesti贸n de contenido (CMS) basado en servidor, que inicialmente es un repositorio de contenido y proporciona acceso al contenido a trav茅s de la API RESTful para su visualizaci贸n en cualquier dispositivo.

En otras palabras, cms sin cabeza es un concepto, una especie de tipo especial de cms-ok, seg煤n el cual cms solo es responsable de administrar el contenido "puro". Esto le permite separar la capa de datos, que se administra en cms, de la capa de visualizaci贸n, que es controlada por la aplicaci贸n cliente. El contenido se distribuye en un formato universal, generalmente en JSON, y esto permite administrar simult谩neamente un sitio web, una aplicaci贸n m贸vil y cualquier dispositivo conectado a Internet.

Puede leer m谩s sobre los pros y los contras de este concepto en este art铆culo , o en este , o de nuevo en un art铆culo de Wikipedia .

Inmersi贸n en el contexto


Para determinar los criterios de b煤squeda y comprender qu茅 cms sin cabeza es mejor que otros, tuve que responder la pregunta: 驴cu谩l es el mejor? 驴Qu茅 tareas espec铆ficas deber铆a resolver y c贸mo?

Para demostrar mi l铆nea de pensamiento actual, se me ocurri贸 un problema t铆pico y lo resolv铆 usando uno de los cms sin cabeza. Y aunque en realidad todo era ligeramente diferente, este formato de narraci贸n es m谩s conciso y refleja la esencia y revela mejor el tema de los cms sin cabeza.

Entonces, imaginemos que una tarea llega al desarrollo. El sitio necesita implementar una nueva secci贸n en la que los usuarios leer谩n rese帽as de pel铆culas.
Las condiciones son las siguientes:
  • por el momento, solo debe mostrar el nombre de la pel铆cula, el p贸ster, el nombre del director y el texto de la cr铆tica, pero en el futuro la estructura se volver谩 m谩s complicada, aparecer谩 informaci贸n sobre los honorarios, actores, etc.
  • una persona sin antecedentes t茅cnicos, un administrador de contenido, tendr谩 que agregar y cambiar revisiones, y para esto no debe participar un recurso de desarrollo;
  • esta funcionalidad debe estar deshabilitada, es decir necesita implementar alternar caracter铆sticas;
  • Antes de publicar contenido, el administrador de contenido deber铆a poder ver en un entorno de prueba c贸mo se ver谩n las ediciones.

Estos son los requisitos que provienen de un cliente interno. El lado del desarrollo tiene su propia visi贸n t茅cnica para la implementaci贸n, a saber:
  • el cliente no deber铆a poder dispararle en la rodilla, es decir el administrador de contenido no debe romper nada, incluso si as铆 lo desea. Solo debe editar lo que los desarrolladores imaginaron;
  • deber铆a poder administrar versiones y retroceder si algo sucede;
  • no se sabe qu茅 funcionalidad adicional aparecer谩 en el futuro, lo que significa que complicar o cambiar una secci贸n deber铆a ser f谩cil;
  • en el lado de la seguridad: el sistema debe estar en nuestro servidor y no en una nube extra帽a, es decir, deber铆a poder implementarse en las instalaciones.

Bueno, la tarea est谩 clara. Paso a la decisi贸n.

Usar茅 Any JSON CMS , este es uno de los cms sin cabeza. Observo que por el momento no cumple con todos los requisitos descritos anteriormente. Por ejemplo, el administrador de contenido no podr谩 ver en un entorno de prueba c贸mo se ver谩n las ediciones. Sin embargo, todas las ventajas y desventajas ser谩n visibles m谩s adelante. Ahora estoy tratando de "sentir" un escenario t铆pico de trabajar con cualquier cms sin cabeza.

Lo primero que debe hacer es describir los modelos. El modelo responde a la pregunta, 驴c贸mo deber铆a ser la entidad de contenido? 驴Cu谩l es su estructura? En esencia, este es un protocolo de interacci贸n entre cms y una aplicaci贸n cliente. En nuestro caso, una revisi贸n de la pel铆cula, el objeto contiene:
  • 3 propiedades obligatorias: t铆tulo de la pel铆cula, p贸ster de la pel铆cula, texto de revisi贸n;
  • 1 propiedad opcional: objeto "director", que a su vez contiene 2 propiedades requeridas nombre y apellido.

En el modelo de vista de esquema JSON se ve as铆:
{ type: 'object', required: ['movieName', 'moviePoster', 'reviewText'], additionalProperties: false, properties: { movieName: { type: 'string', minLength: 1, maxLength: 300, }, moviePoster: { type: 'string', description: 'URL to file', }, movieProducer: { type: 'object', required: ['name', 'surname'], additionalProperties: false, properties: { name: { type: 'string', maxLength: 100, minLength: 1 }, surname: { type: 'string', maxLength: 100, minLength: 1 }, }, }, reviewText: { type: 'string', minLength: 1, maxLength: 3000, }, }, } 

Tambi茅n debe implementar la funci贸n de alternancia, un modelo en forma de un esquema JSON se ve as铆:
 { type: 'object', required: ['isFeatureActive', 'name'], additionalProperties: false, properties: { isFeatureActive: { type: 'boolean' }, name: { type: 'string', enum: ['movieReviewFeatureToggle'] }, }, } 

Cuando comprenda c贸mo deber铆an verse los modelos, puede crearlos en Any JSON CMS.



Inmediatamente creo entidades de contenido, es decir El contenido en s铆, basado en modelos. Una revisi贸n ficticia y entidad de alternancia de funciones.



Para integrar la aplicaci贸n cliente con cms, se requiere una clave API. Lo genero en la secci贸n correspondiente cms.


Ahora todo est谩 listo para la implementaci贸n de la funcionalidad en la aplicaci贸n cliente y la integraci贸n con cms. La aplicaci贸n cliente puede ser cualquier cosa: un sitio web o una aplicaci贸n m贸vil, o ambas, escritas en cualquier cosa. Como ejemplo, implemento la funcionalidad en el sitio SPA en React. De hecho, tomamos los datos con la estructura fija ya conocida de cms y los mostramos de la manera que queremos.
 import React, { Component } from 'react' import { Accordion, AccordionItem, AccordionItemTitle, AccordionItemBody, } from 'react-accessible-accordion' import 'react-accessible-accordion/dist/fancy-example.css' const apiUrl = 'https://api.anyjsoncms.com' // ApiKey      const apiKey = '87414950dfd15648ea560bd89dd0ee02bfc8fcca' class App extends Component { constructor(props) { super(props) this.state = { movies: null, isFeatureActive: null, loading: true, } } componentDidMount() { const options = { method: 'GET', headers: { ApiKey: apiKey } } Promise.all([ fetch(`${apiUrl}/entries?apiId=featureToggle`, options).then(resp => resp.json() ), fetch(`${apiUrl}/entries?apiId=movieReview`, options).then(resp => resp.json() ), ]) .then(([featureToggleResp, movieReviewResp]) => { const featureToggle = featureToggleResp.find( item => item.value.name === 'movieReviewFeatureToggle' ) const isFeatureActive = featureToggle && featureToggle.value && featureToggle.value.isFeatureActive const movies = movieReviewResp.map(item => item.value) this.setState({ movies, isFeatureActive, loading: false }) }) .catch(error => { console.error(error) }) } render() { const { movies, isFeatureActive, loading } = this.state if (loading) return <div>Loading...</div> if (!isFeatureActive) return <div style={{ display: 'none' }}>Section is hidden</div> return ( <div> <Accordion> {movies.map( ({ movieName, moviePoster, movieProducer, reviewText }, index) => ( <AccordionItem key={index}> <AccordionItemTitle> <h3>{movieName}</h3> </AccordionItemTitle> <AccordionItemBody> <img src={`${apiUrl}${moviePoster}`} alt="" /> {!movieProducer ? null : ( <div>{`${movieProducer.name} ${ movieProducer.surname }`}</div> )} <div>{reviewText}</div> </AccordionItemBody> </AccordionItem> ) )} </Accordion> </div> ) } } export default App 

Eso es todo. Ahora el administrador de contenido puede administrar f谩cilmente las revisiones, y tambi茅n existe la oportunidad de habilitar y deshabilitar la funcionalidad utilizando la funci贸n de alternancia.

Mostrar rese帽as de pel铆culas es un ejemplo simple, lo cit茅 deliberadamente para no ahogarme en detalles, sino solo para demostrar el principio. En realidad, las caracter铆sticas pueden ser un orden de magnitud m谩s complicado. Pueden ser elementos de interfaz, cat谩logos de productos, widgets complejos, p谩ginas de destino, generadores de formularios, publicaciones, etc. Adem谩s, en este ejemplo, cms solo difunde informaci贸n, pero la mayor铆a de los cms sin cabeza proporcionan API CRUD, lo que hace posible, por ejemplo, procesar formularios, y generalmente manipulan entidades, lo que sea. En general, la idea de cms sin cabeza es precisamente proporcionar libertad y conveniencia en la implementaci贸n de un protocolo complejo arbitrario para transferir el control a cms de cualquier cosa y seg煤n sea necesario.

Criterios de selecci贸n y an谩lisis cms sin cabeza


Despu茅s de comprender qu茅 tareas se resolver铆an utilizando cms sin cabeza y c贸mo, seleccion茅 los criterios y comenc茅 a estudiar los sistemas. Actualmente hay 54 cms seg煤n headlesscms.org . Analizarlos todos es un proceso que lleva bastante tiempo, por lo que destaqu茅 los 14 sistemas m谩s populares, notables y discutidos: Cualquier JSON CMS, Contentful, Strapi, GraphCMS, Squidex, Butter CMS, Cloud CMS, ockpit, Cosmic JS, Directus, Kentico Cloud, Netlify CMS , Prismic, Ghost.

Los resultados son m谩s convenientes para estudiar en forma de tabla . Pero duplica aqu铆.

Cualquier JSON CMS


Sitioanyjsoncms.com
Descripci贸nCMS sin cabeza que podr铆a ayudar a administrar y entregar cualquier JSON a cualquier aplicaci贸n
P煤blico objetivoEquipos digitales
Precio por mesen las instalaciones - gratis
Oportunidad de soporte comercialsi
Seguidores en twitter0 mil
Estrellas de Github (si es de c贸digo abierto)0 mil
Soluci贸n de c贸digo abiertosi
Software localsi
Servicio en la nubeno
API GraphQLno
API RESTsi
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)no
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)si
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)no
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficono
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)si
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidono
API CRUD para modelosno
Tokens de acceso de soporte APIsi
Diferenciaci贸n de derechos de acceso a API por token de acceso APIno
Sistema de publicaci贸n: borrador / publicaci贸nno
Capacidad de publicaci贸n retrasadano
Fijaci贸n de versiones del modelono
Confirmaci贸n de versiones de entidad de contenidono
Sistema de versiones similar a Gitno
Gesti贸n de proyectossi
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhooksno
Gesti贸n de usuariosno
Control de acceso de usuariono

Contento


Sitiocontentful.com
Descripci贸nActualice una vez y publique en todas partes, para que los equipos creen productos digitales m谩s r谩pido.
DestinoGesti贸n de contenidos en el mundo multicanal.
P煤blico objetivoEquipos digitales, empresas
Precio por mesnube - gratis, $ 39, $ 879, precio oculto para la empresa
Oportunidad de soporte comercialsi
Seguidores en twitter33,6 mil
Estrellas de Github (si es de c贸digo abierto)no de c贸digo abierto
Soluci贸n de c贸digo abiertono
Software localno
Servicio en la nubesi
API GraphQLsi
API RESTsi
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)si
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)no
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)no
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficono
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)no
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidosi
API CRUD para modelossi
Tokens de acceso de soporte APIsi
Diferenciaci贸n de derechos de acceso a API por token de acceso APIsi
Sistema de publicaci贸n: borrador / publicaci贸nsi
Capacidad de publicaci贸n retrasadano
Fijaci贸n de versiones del modelosi
Confirmaci贸n de versiones de entidad de contenidosi
Sistema de versiones similar a Gitno
Gesti贸n de proyectossi
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhookssi
Gesti贸n de usuariossi
Control de acceso de usuariosi

Strapi


Sitiostrapi.io
Descripci贸nAdministra tu contenido. Distribuirlo en cualquier lugar.
DestinoCree una potente API de contenido sin esfuerzo
P煤blico objetivoDesarrolladores profesionales
Precio por mesen las instalaciones - gratis
Oportunidad de soporte comercialsi
Seguidores en twitter2,3 mil
Estrellas de Github (si es de c贸digo abierto)11,1 mil
Soluci贸n de c贸digo abiertosi
Software localsi
Servicio en la nubeno
API GraphQLsi
API RESTsi
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)no
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)no
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)no
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficono
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)no
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidosi
API CRUD para modelosno
Tokens de acceso de soporte APIno
Diferenciaci贸n de derechos de acceso a API por token de acceso APIsi
Sistema de publicaci贸n: borrador / publicaci贸nno
Capacidad de publicaci贸n retrasadano
Fijaci贸n de versiones del modelono
Confirmaci贸n de versiones de entidad de contenidono
Sistema de versiones similar a Gitno
Gesti贸n de proyectosno, pero puedes implementar una instancia separada de cms
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhooksno, pero se puede implementar mediante devoluciones de llamada del ciclo de vida
Gesti贸n de usuariossi
Control de acceso de usuariosi
Informaci贸n adicionalEstudi茅 la versi贸n alfa, hubo errores al guardar el modelo

GraphCMS


Sitiographcms.com
Descripci贸nLleva contenido a cualquier plataforma
DestinoInfraestructura de contenido para su producto digital
P煤blico objetivoDesarrolladores profesionales, agencias, empresas.
Precio por mesnube - gratis, $ 49, $ 149, $ 499, precio oculto para la empresa
Oportunidad de soporte comercialsi
Seguidores en twitter2,4 mil
Estrellas de Github (si es de c贸digo abierto)no de c贸digo abierto
Soluci贸n de c贸digo abiertono
Software localno
Servicio en la nubesi
API GraphQLsi
API RESTno
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)no
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)no
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)no
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficono
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)s铆, o no le permite cambiar el modelo, o el cambio conduce a la p茅rdida de datos despu茅s de la confirmaci贸n
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidosi
API CRUD para modelosno
Tokens de acceso de soporte APIsi
Diferenciaci贸n de derechos de acceso a API por token de acceso APIsi
Sistema de publicaci贸n: borrador / publicaci贸nsi
Capacidad de publicaci贸n retrasadano
Fijaci贸n de versiones del modelono
Confirmaci贸n de versiones de entidad de contenidono
Sistema de versiones similar a Gitno
Gesti贸n de proyectossi
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhookssi
Gesti贸n de usuariossi
Control de acceso de usuariosi

Squidex


Sitiosquidex.io
Descripci贸nSquidex le permite administrar el contenido en un lugar central y utilizar su paquete tecnol贸gico para aplicaciones, sitios web y servicios.
DestinoNuestra primera prioridad es ofrecer un centro de gesti贸n de contenido de vanguardia, estable, r谩pido y gratuito para facilitar un poco la vida de los desarrolladores.
P煤blico objetivoDesarrolladores profesionales
Precio por meslibre de la nube, $ 19, $ 49, $ 99; en las instalaciones - gratis
Oportunidad de soporte comercialno anunciado
Seguidores en twitter0 mil
Estrellas de Github (si es de c贸digo abierto)0.5 mil
Soluci贸n de c贸digo abiertosi
Software localsi
Servicio en la nubesi
API GraphQLsi
API RESTsi
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)no
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)no
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)no
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficopuede especificar contenido 煤nico o contenido m煤ltiple, no se puede especificar un n煤mero espec铆fico
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)no
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidosi
API CRUD para modelosno
Tokens de acceso de soporte APIsi
Diferenciaci贸n de derechos de acceso a API por token de acceso APIsi
Sistema de publicaci贸n: borrador / publicaci贸nsi
Capacidad de publicaci贸n retrasadasi
Fijaci贸n de versiones del modelono
Confirmaci贸n de versiones de entidad de contenidosi
Sistema de versiones similar a Gitno
Gesti贸n de proyectossi
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhookssi
Gesti贸n de usuariossi
Control de acceso de usuariosi

Mantequilla cms


Sitiobuttercms.com
Descripci贸nAgregue un blog o CMS a su sitio en minutos. Ingrese a nuestro CMS sin cabeza y regrese a problemas m谩s interesantes.
DestinoColoque nuestro CMS basado en API en cualquier pila de tecnolog铆a en minutos.
P煤blico objetivoStartups, agencias, empresas
Precio por mesnube: $ 24, $ 83, $ 166, precio oculto para la empresa
Oportunidad de soporte comercialsi
Seguidores en twitter0.4 mil
Estrellas de Github (si es de c贸digo abierto)no de c贸digo abierto
Soluci贸n de c贸digo abiertono
Software localno
Servicio en la nubesi
API GraphQLno
API RESTsi
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)no
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)no
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)no
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficono
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)no
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidono
API CRUD para modelosno
Tokens de acceso de soporte APIsi
Diferenciaci贸n de derechos de acceso a API por token de acceso APIno (y no es obligatorio, porque solo hay lectura)
Sistema de publicaci贸n: borrador / publicaci贸nsi
Capacidad de publicaci贸n retrasadano
Fijaci贸n de versiones del modelono
Confirmaci贸n de versiones de entidad de contenidosi
Sistema de versiones similar a Gitno
Gesti贸n de proyectossi
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhookssi
Gesti贸n de usuariossi
Control de acceso de usuariosi

Nube cms


Sitiocloudcms.com
Descripci贸nF谩cil para editores de contenido + Potente para desarrolladores
DestinoCMS para aplicaciones cr铆ticas de negocios
P煤blico objetivoEnterprise
Precio por mes$ 200, $ 800, $ 1,200
Oportunidad de soporte comercialsi
Seguidores en twitter0.3 mil
Estrellas de Github (si es de c贸digo abierto)no de c贸digo abierto
Soluci贸n de c贸digo abiertono
Software localsi
Servicio en la nubesi
API GraphQLsi
API RESTsi
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)si
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)si
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)no
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficono
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)no
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidosi
API CRUD para modelossi
Tokens de acceso de soporte APIsi
Diferenciaci贸n de derechos de acceso a API por token de acceso APIno
Sistema de publicaci贸n: borrador / publicaci贸ns铆, puedes habilitarlo en la configuraci贸n
Capacidad de publicaci贸n retrasadano
Fijaci贸n de versiones del modelosi
Confirmaci贸n de versiones de entidad de contenidosi
Sistema de versiones similar a Gitsi
Gesti贸n de proyectossi
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhookssi
Gesti贸n de usuariossi
Control de acceso de usuariosi
Informaci贸n adicionalMuy poderoso, hay todos los chips de nivel emprendedor, y a煤n m谩s. Debido a la abundancia de funcionalidad, necesita un poco m谩s de tiempo para comprenderlo.

ockpit


Sitiogetcockpit.com
Descripci贸nPlataforma de contenido simple para administrar cualquier contenido estructurado
DestinoAgregue funcionalidad de administraci贸n de contenido a cualquier sitio: plug & play / headless / api-first CMS
P煤blico objetivoEquipos digitales
Precio por mesen las instalaciones - gratis
Oportunidad de soporte comercialsi
Seguidores en twitter0.7 mil
Estrellas de Github (si es de c贸digo abierto)3,5 mil
Soluci贸n de c贸digo abiertosi
Software localsi
Servicio en la nubeno
API GraphQLno, pero implementado mediante la instalaci贸n de un complemento
API RESTsi
La entidad de contenido se crea seg煤n el modelo.si
Es posible crear sus propios modelos.si
Es posible crear sus propios modelos a trav茅s de la interfaz de usuariosi
Un modelo puede contener un enlace a otro modelo.si
Es posible combinar enlaces (por ejemplo, un modelo puede enlazar a cualquiera de los dos modelos)s铆, usando el tipo de repetidor
Es posible crear modelos anidados (por ejemplo, un objeto contiene otro objeto)si
Es posible combinar modelos (por ejemplo, un campo puede ser una cadena o un n煤mero)s铆, usando el tipo de repetidor
Es posible especificar cu谩ntas entidades de contenido se pueden crear en funci贸n de un modelo espec铆ficono, es posible crear solo modelos singleton
Gesti贸n de conflictos detectados entre el modelo y la entidad de contenido (por ejemplo, si cambia el modelo para que la entidad de contenido existente no satisfaga estos cambios, 驴puede el sistema resolver tales situaciones?)no
Leer API para entidades de contenidosi
Ceate, actualiza, elimina API para entidades de contenidosi
API CRUD para modelossolo leer y actualizar
Tokens de acceso de soporte APIsi
Diferenciaci贸n de derechos de acceso a API por token de acceso APIs铆, a trav茅s de la configuraci贸n de permisos de colecciones
Sistema de publicaci贸n: borrador / publicaci贸nno
Capacidad de publicaci贸n retrasadano
Fijaci贸n de versiones del modelono
Confirmaci贸n de versiones de entidad de contenidosi
Sistema de versiones similar a Gitno
Gesti贸n de proyectosno, pero puedes implementar una instancia separada de cms
Gesti贸n de imagensi
Gesti贸n de archivossi
Webhookssi
Gesti贸n de usuariossi
Control de acceso de usuarios铆, a trav茅s de la configuraci贸n del grupo
Informaci贸n adicionalUna soluci贸n decente de c贸digo abierto. Algunos ajustes se configuran a trav茅s de la configuraci贸n y no a trav茅s de la interfaz. Por ejemplo, para configurar el tipo de repetidor, debe estudiar la documentaci贸n y escribir opciones a trav茅s de JSON. Est谩 escrito en PHP.

Js c贸smico


Sitiocosmicjs.com
Descripci贸nSoluci贸n moderna de gesti贸n de contenidos. El CMS l铆der para equipos digitales modernos.
DestinoEl CMS sin cabeza Cosmic JS le brinda a su equipo todo lo que necesita para hacer el trabajo.
P煤blico objetivoEquipos digitales, enterprice
Precio por mes$ 44, $ 179, $ 449, $ 359, $ 719
twitter2,8
Github stars ( open source)open source
Open sourceno
On-premises software
Cloud service
GraphQL API
REST API
, , . Es decir -> .
UI
( ), :
  • Object
  • Object Object Type

( )
( , )no
no
(, , , ?)no
Read API
Ceate, update, delete API
CRUD API
API access tokens
API API access token, read write
: Draft/Publish
no
Gitno
Webhooks

Directus


Sitiodirectus.io
Descripci贸nPremium Open-Source Software For Any Data-Driven Project
Directus is an open-source suite of software that provides an instant API wrapper for SQL databases and an intuitive Admin App for non-technical users to manage that content.
Digital teams, enterprice
on-premises 鈥 free
twitter19,4
Github stars ( open source)3,8
Open source
On-premises software
Cloud service, -
GraphQL APIno
REST API
UI
( )no
( ), group,
( , )no
, singleton
(, , , ?)no
Read API
Ceate, update, delete API
CRUD API
API access tokens, , ,
API API access token,
: Draft/Publishno
no
no
Gitno
, cms
Webhooks, , php
芦Something is wrong with this instance's server or database.禄 . . 10 . 鈥 5 . , , . . - . , Directus Stable, .. .

Kentico Cloud


Sitiokenticocloud.com
Descripci贸nStop Your Content Friction. Collaborate and deliver engaging omnichannel experiences with a CMS that's built for content strategists and developers.
Create engaging personalized experiences across any device with a next-generation headless CMS.
Digital teams, agencies, enterprice
cloud 鈥 0$, 299$, 999$, hidden price for enterprise
twitter1
Github stars ( open source)open source
Open sourceno
On-premises softwareno
Cloud service
GraphQL APIno
REST API
UI
( )
( ), Content Type Snippets, , snippet snippet
( , )no
no
(, , , ?)no
Read API
Ceate, update, delete API, professional
CRUD API, beta , professional
API access tokens, professional
API API access token, API token ,
: Draft/Publish
no
Gitno
Webhooks
, contentfull. .

Netlify CMS


Sitionetlifycms.org
Descripci贸nOpen source content management for your Git workflow. Use Netlify CMS with any static site
generator for a faster and more flexible web project
Get the speed, security, and scalability of a static site, while still providing a convenient editing interface for content.
Profesional developers
on-premises 鈥 free
twitter3,6
Github stars ( open source)7,4
Open source
On-premises software
Cloud serviceno
GraphQL APIno
REST API, git
UI, yml
( )no
( ), object ,
( , )no
no
(, , , ?)no
Read APIno
Ceate, update, delete APIno
CRUD APIno
API access tokensno
API API access tokenno
: Draft/Publish, editorial_workflow on, GitHub
no
Git
, cms
, , ,
, , ,
Webhooksno
, cms , git ( bitbucket, github, gitlab .)
, git
鈥 2.5.1. CMS 鈥 . , git .

Prismic


Sitioprismic.io
Descripci贸nOne CMS Backend for all your Websites & Apps
CMS for apps, e-commerce, editorial websites, corporate websites. Enables marketing teams to create highly targeted acquisition campaigns.
Digital teams, enterprice
cloud 鈥 0$, 7$, 15$, 100$, 500$
twitter12,1
Github stars ( open source)open source
Open sourceno
On-premises softwareno
Cloud service
GraphQL API, alpha
REST API
UI
( )
( ), 芦group 鈥 a repeatable group of fields禄, , group group
( , )no
, singleton
(, , , ?), .. ,
Read API
Ceate, update, delete APIno
CRUD APIno
API access tokens
API API access token( , .. read)
: Draft/Publish
no
Gitno
Webhooks
, Professional

Ghost


Sitioghost.org
Descripci贸nGhost is a fully open source, adaptable platform for building and running a modern online publication. We power blogs, magazines and journalists from Zappos to Sky News.
Powerful platform for creating an online blog or publication
Professional bloggers, serious enterprise publishers
on-premises 鈥 free; cloud 鈥 29$, 79$, 199$
twitter24,1
Github stars ( open source)28,7
Open source
On-premises software
Cloud service
GraphQL APIno
REST API
no
no
UIno
no
( )no
( )no
( , )no
no
(, , , ?)no
Read API
Ceate, update, delete APIno
CRUD APIno
API access tokens
API API access tokenno
: Draft/Publish
no
no
Gitno
no
Webhooks
wordpress, editing tool


Conclusiones


En general, desde el cms sin cabeza, esperaba ver dos cosas principales: libertad para crear modelos, gracias a los cuales puede implementar cualquier protocolo, y obtener un sistema de control de versiones similar para que pueda administrar de manera transparente todos los cambios.
Y una ligera decepci贸n me esperaba. Aunque puede trabajar con la mayor铆a de estos sistemas, tienen una serie de desventajas que son desagradables para m铆. Esto, por supuesto, no significa que los sistemas sean malos, solo significa que no cumplieron mis expectativas, y mis expectativas son mis problemas. Los expresar茅:
  • headless cms . , , . , , , , . , , . - Cloud CMS, Cockpit Cosmic JS.
  • : , , . , - , 鈥 . , - , :
     { "oneOf": [ { "type": "number", "multipleOf": 5 }, { "type": "number", "multipleOf": 3 } ] } 

    Cockpit.
  • , . , number, 100. , maximum: 50? ? GraphCMS.
  • Git Cloud CMS Netlify CMS.

Desafortunadamente, cuando trabajaba en esa empresa p煤blica, no pudimos tomar ninguno de estos sistemas. Cloud CMS fue el m谩s adecuado para nuestras necesidades, pero el precio de la misma mordi贸.

Conclusi贸n


As铆 es como este an谩lisis me llev贸 a pensar que necesito escribir mi cms sin cabeza. Ya la has visto, en su ejemplo fue una demostraci贸n de la soluci贸n al problema. Se llama Any JSON CMS .

ACTUALIZACI脫N: Cualquier JSON CMS se ha convertido en una soluci贸n de c贸digo abierto, el repositorio de github est谩 aqu铆 .

Su objetivo principal es proporcionar libertad para crear modelos arbitrariamente complejos y controlar todos los cambios utilizando un sistema similar a git. Ahora, lejos de todo lo que me gustar铆a haber implementado, ya tiene el "mensaje" principal.

Source: https://habr.com/ru/post/444600/


All Articles