Crear un Producto Colaborativo Similar a Notion en 2H

Rate this content
Bookmark

Se te ha asignado la tarea de crear una función de edición de texto colaborativa dentro del producto de tu empresa. Algo similar a Notion o Google Docs.


CK 5 es un marco de trabajo y ecosistema rico en funciones listas para usar que se enfoca en una amplia gama de casos de uso. Ofrece una infraestructura en la nube para satisfacer las necesidades del sistema de colaboración en tiempo real. Durante esta masterclass, aprenderás cómo configurar e integrar CK 5. Repasaremos los conceptos básicos de cómo incrustar el editor en una página, desde la configuración hasta la habilitación de funciones de colaboración en tiempo real. Aprendizajes clave: cómo incrustar, configurar y ajustar CK 5 para que se adapte mejor a un sistema de edición de documentos que admita colaboración en tiempo real.


Tabla de contenidos:

- Introducción al ecosistema de CK 5.

- Introducción a una plantilla de proyecto similar a `Notion`.

- Incrustar CK 5 en una página.

- Configuración básica de CK 5.

- Ajustar CK 5 para un caso de uso específico.

- Habilitar funciones de edición en tiempo real.

This workshop has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

FAQ

CK Editor es un editor de texto enriquecido que permite crear contenido de manera visual y recibirlo en el formato deseado, como HTML. Está escrito en TypeScript y es altamente extensible, permitiendo agregar funcionalidades adicionales.

Sí, CK Editor es un proyecto de código abierto y está licenciado bajo la licencia GPL. Puedes revisar el código y contribuir en GitHub.

CK Editor se puede implementar en cualquier aplicación que tenga soporte de HTML, CMS y JavaScript. Es altamente configurable a través de plugins y complementos.

Las funcionalidades básicas de CK Editor incluyen estilos de texto como negritas, cursivas, encabezados, listas y enlaces. También permite la configuración de barras de herramientas y la edición colaborativa en tiempo real.

Sí, CK Editor es altamente personalizable. Puedes usarlo como un marco para agregar funcionalidades propias o ajustar las existentes a través de su sistema de plugins.

CKBox es un adaptador de carga oficial para CK Editor que maneja la carga de imágenes y archivos, optimizando su almacenamiento y presentación. Es necesario tener una licencia para usar CKBox, y se ofrece una prueba gratuita de 30 días.

Sí, CK Editor permite la edición colaborativa en tiempo real, donde los usuarios pueden ver y editar el contenido simultáneamente. Esta funcionalidad se maneja a través de complementos específicos para la colaboración.

Los datos en CK Editor pueden ser gestionados y guardados automáticamente mediante complementos de autoguardado. También es posible configurar adaptadores personalizados para conectar el editor con sistemas de gestión de datos externos.

Witek Socha
Witek Socha
87 min
23 May, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La masterclass de hoy se centró en la creación de un producto colaborativo similar a Notion utilizando CK Editor 5. La masterclass cubrió la configuración del editor y la configuración de complementos, incluyendo funciones como negrita, encabezados, listas y enlaces. Otros temas incluyeron la funcionalidad de autoguardado, deshacer/rehacer, trabajar con tablas e imágenes, implementar colaboración en tiempo real y comentarios, e introducir funciones experimentales como arrastrar y soltar. La masterclass concluyó con una discusión sobre las limitaciones de Notion y el potencial de crear complementos personalizados con CK Editor 5.`, `seotitle`: null, `seodescription`: nul

1. Introducción a CK Editor 5

Short description:

Bienvenidos a todos. Hoy construiremos un producto similar a Notion utilizando CK Editor 5. CK Editor es un editor de texto enriquecido escrito en TypeScript. Es altamente extensible y de código abierto. La historia de CK Editor abarca 20 años, desde FCK Editor hasta CK Editor 5. Nos enfocaremos en configurar el editor y utilizar complementos existentes. Amamos Notion y nuestro objetivo es construir algo similar. Pueden hacer preguntas.

Bienvenidos a todos. Estoy extremadamente feliz de estar aquí. Y hoy tendremos alrededor de dos horas de talleres y trataremos de construir un producto similar a Notion en dos horas.

Antes de comenzar con la codificación, mostraré algunas diapositivas aquí. Así que el nombre, por ejemplo, mi nombre es Itek Soha y soy el propietario técnico del equipo principal de CK Editor 5 y junto conmigo, con sus cámaras encendidas, pueden ver a Piotr Koszulinsky, él es el director de ingeniería, y a Szymon, él es el líder del proyecto en las características de colaboración, y ellos también se unen a nosotros. Juntos tienen alrededor de 20 años de experiencia en la construcción de editores, así que si tienen preguntas más avanzadas, estoy seguro de que las responderán de inmediato. Entonces, CK qué, como, ese es un nombre bastante extraño para el producto, pero CK Editor es básicamente un editor de texto enriquecido, ¿verdad?, por lo que tenemos un editor, lo que ves es lo que obtienes, y básicamente puedes crear el contenido de manera visual y luego recibir el contenido en el formato deseado. Por lo general, es HTML, por lo que el editor en sí está escrito completamente en TypeScript en este momento. Esto es algo nuevo. Acabamos de terminar la reescritura a TypeScript. También usaremos TypeScript hoy y el editor en sí se puede implementar en cualquier aplicación que tenga soporte de HTML, CSM y JavaScript, ¿verdad? El editor en sí también es altamente extensible. Si te faltan algunas funcionalidades, puedes usar el editor en sí como un marco y agregar algunas funcionalidades por ti mismo. Y es un proyecto de código abierto. Así que si quieres, puedes revisar en GitHub. Estamos allí y el editor completo está licenciado bajo la licencia GPL. Entonces la historia no es tan breve. El editor en sí lleva en el mercado alrededor de 20 años. Y comenzó en 2003 como FCK editor, hecho por Federico. Y luego fue renombrado como pueden ver, FCK no era un buen acrónimo para tener el producto. Pueden responder ustedes mismos por qué. Pero luego fue rebrandeado a CK editor 3. Luego en 2012, se lanzó CK editor 4. Y hay una alta probabilidad de que en realidad lo hayan usado en algún lugar. Fue el editor principal en el CMS Drupal, ¿verdad? Luego tuvimos otro producto, que es básicamente un producto totalmente diferente, CK editor 5 lanzado en 2018. Y como dije, una arquitectura totalmente diferente, esos dos productos en realidad aún estaban en el mercado lado a lado. Es por eso que tienes estos números 4 y 5, pero CK editor 5 introdujo soluciones de edición de texto más poderosas como la colaboración en tiempo real que intentaremos usar hoy. Y en 2022, CK editor 5 fue nuevamente incluido en el núcleo de Drupal como el editor principal. Aquí tienen algunos logotipos muy geniales de nuestros productos que utilizan CK editor 5. Y nuestros clientes también. Esta es la historia breve y algunos datos sobre CK editor. Pero ¿qué haremos hoy? Y así es como la IA imagina el muro de pegamentos. Lo que haremos principalmente hoy es pegar. Pegaremos diferentes configuraciones del editor solo para obtener un producto que nos gustaría tener. Digo pegar porque pasaremos la mayor parte del tiempo configurando el editor, instalando diferentes complementos. No desarrollaremos nuevas características para el editor. Ese puede ser un tema para futuros talleres. Y también solo tenemos dos horas, así que intentaremos utilizar solo los complementos que ya están allí, pero aún divirtiéndonos un poco con ello. Pequeña advertencia. Amamos Notion. Este es el producto similar a Notion. De hecho, usamos Notion dentro de la empresa CK source. Por lo tanto, esto es algo que valoramos mucho y realmente nos gusta este producto y trataremos de construir algo similar. Y si tienen alguna pregunta, aquí está Simon, aquí está Piotrek. Así que siéntanse libres de preguntar. Básicamente pueden hacer las preguntas en el chat. ¿Se utiliza CK editor dentro de Notion? No o aún no. No lo sabemos, pero actualmente no se utiliza. Así que si tienen alguna pregunta, intentaré echar un vistazo al

2. Configuración del Editor y el Producto

Short description:

¡Bienvenidos a la masterclass! Configuraremos el editor y el producto como parte de una historia. Te unes a una nueva empresa como desarrollador y hay un proyecto de incorporación esperándote. El gerente de producto quiere funciones geniales de creación de contenido. Revisamos el repositorio y encontramos un mensaje del desarrollador anterior. El producto utiliza Vite y CK5, escritos y leídos en TypeScript. Tiene una arquitectura basada en complementos. Lo trataremos como una prueba para aumentar la participación de los usuarios.

chat. Así que siéntanse libres de preguntar cualquier cosa. Nuestro anfitrión también dijo que pueden simplemente preguntar y desactivar el silencio y trataremos de responder. Si desean programar junto con nosotros, adelante, yo estaré programando. Intentaremos configurar el editor y el producto, así que si desean unirse, adelante, y enviaré algunos detalles en un segundo y toda la masterclass estará configurada como una especie de historia, ¿verdad? Así que tendremos un ejemplo de la vida real de configurar el editor, esto será un escenario de la vida real que tal vez algunos de ustedes hayan experimentado cuando se unieron a algunas empresas. La historia es la siguiente. Básicamente te uniste a una nueva empresa como desarrollador y hay un proyecto de incorporación esperándote y el gerente de producto no puede esperar para contarte más al respecto. Así que estaré programando en Vim, ¿verdad? Ese es mi editor de elección. Pero si desean programar junto con nosotros, aquí está el enlace al repositorio. Siéntanse libres de clonarlo y básicamente lo único que necesitan hacer en la raíz del repositorio es ejecutar un comando. Aquí hay este directorio meta. Solo necesitan obtener un script de allí llamado reset, y cuando lo ejecuten, el índice del proyecto se configurará en la etapa inicial de lo que estamos haciendo ahora mismo. Si no desean programar junto con nosotros, solo observen lo que estaré haciendo. Si desean unirse más adelante, este script de reinicio les permitirá unirse más adelante. Nuestra historia se dividirá en actos. Por ejemplo, si desean unirse a nosotros en el acto cinco, si ejecutan este comando, el índice de su proyecto se restablecerá al código que obtendremos al final del acto cuatro. Más adelante, si desean verificar diferentes etapas de este proyecto, siéntanse libres de hacerlo, pero comenzaré desde el principio, al menos por ahora. Espero no tener que moverme a otros actos con este comando. Bien, empecemos. Y revisemos la licencia, revisemos la licencia, siempre revisen la licencia. Eso es cierto, si no quieren tener problemas con su departamento legal. Bien, comencemos nuestra historia. Nuestro gerente de producto dice que queremos tener funciones geniales de creación de contenido en nuestra aplicación. Los desarrolladores anteriores comenzaron a trabajar en algo, revisemos lo que crearon, ¿verdad? Así que intentemos visitar nuestro repositorio. Veamos qué tenemos aquí. Cuando lo revisemos, tenemos atleta, ¿verdad?, bastante estándar. Tenemos un archivo readme. Así que revisémoslo. Y aquí tenemos un mensaje de nuestro desarrollador anterior que no está contento con su gerente de producto, supongo. Pero seguro que preparó algo para nosotros, ¿verdad? El producto utiliza Vite. Es una configuración experimental en CK5, pero funciona muy bien. Se lee completamente en TypeScript y también se escribe en TypeScript. Arquitectura basada en complementos, más detalles en un segundo. Y el mensaje trata sobre no confiar nunca en el gerente de producto. No estoy seguro si eso es cierto, lo veremos. Buena suerte. Y al final tienes las instrucciones meta de cómo configurar este script de reinicio si desean seguirlo. Así que aquí tenemos el readme. También tenemos el index HTML, ¿verdad? Con algunas partes comentadas. Eso es porque las habilitaremos más adelante. Y sí, esa es la configuración. Básicamente todo se ve bien. También tenemos el package.json, con algunos paquetes, pero no muchos, principalmente paquetes de desarrollo, un paquete de CKEditor5. Así que no lo tocaremos por ahora. Con esta configuración, comencemos. Y básicamente iremos al primer acto de nuestra historia. Así que básicamente vas a tu gerente de producto, y le dices que hay algo, pero no mucho. Y el gerente de producto te dirá, como que queremos aumentar la participación de los usuarios. Creemos un contenido impresionante. Y lo trataremos como una prueba, ¿verdad? Será un prototipo.

Watch more workshops on topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced 2021React Advanced 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetsov
Mikhail Kuznetsov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
This Talk introduces the Epic Stack, a project starter and reference for modern web development. It emphasizes that the choice of tools is not as important as we think and that any tool can be fine. The Epic Stack aims to provide a limited set of services and common use cases, with a focus on adaptability and ease of swapping out tools. It incorporates technologies like Remix, React, Fly to I.O, Grafana, and Sentry. The Epic Web Dev offers free materials and workshops to gain a solid understanding of the Epic Stack.
Construyendo un Asistente AI Activado por Voz con Javascript
JSNation 2023JSNation 2023
21 min
Construyendo un Asistente AI Activado por Voz con Javascript
Top Content
This Talk discusses building a voice-activated AI assistant using web APIs and JavaScript. It covers using the Web Speech API for speech recognition and the speech synthesis API for text to speech. The speaker demonstrates how to communicate with the Open AI API and handle the response. The Talk also explores enabling speech recognition and addressing the user. The speaker concludes by mentioning the possibility of creating a product out of the project and using Tauri for native desktop-like experiences.