Un vistazo al futuro del desarrollo full-stack con Blitz.js

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Blitz fue creado como un framework full-stack de React, inspirado en Ru on Rails, y con el objetivo de hacerte lo más productivo posible. Cuenta con una capa de abstracción de datos "Zero-API", autenticación y autorización integradas, y algunas características más emocionantes. Sin embargo, recientemente decidimos cambiar Blitz a un kit de herramientas independiente del framework, lo que significa un cambio enorme y emocionante para la comunidad de Blitz. Durante esta charla, presentaré los conceptos principales, hablaré sobre el por qué y el cómo del cambio, y te daré un vistazo al futuro de Blitz.


Puedes ver las diapositivas de la charla de Aleksandra aquí.

This talk has been presented at Node Congress 2022, check out the latest edition of this JavaScript Conference.

Aleksandra Sikora
Aleksandra Sikora
32 min
18 Feb, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy se centró en el futuro del desarrollo web full-stack con Blitz.js. Blitz es un framework de React construido sobre Next.js, que ofrece acceso directo a la base de datos y autenticación con autorización. Las características principales de Blitz incluyen la capa Zero-API y la capacidad de ejecutar código del servidor directamente desde el frontend. El futuro de Blitz incluye la expansión a otros frameworks y entornos de ejecución. El nuevo kit de herramientas de Blitz estará desacoplado de cualquier framework específico, lo que permitirá a los desarrolladores elegir su base preferida. Mantendrá el valor central de Blitz mientras agrega características adicionales como autenticación JWT y autorización avanzada basada en datos. La migración al nuevo kit de herramientas será transparente para los proyectos existentes de Blitz. El kit de herramientas de Blitz contará con un sistema de complementos para la personalización y admitirá múltiples resolutores. El proyecto Blitz está atravesando actualmente un cambio y se enfocará en el kit de herramientas de Blitz. El objetivo es lanzar el kit de herramientas a finales de marzo. La parte más emocionante del kit de herramientas es el diseño del sistema de complementos que permite a los usuarios personalizar su experiencia.

1. Introducción a Bleeds.js

Short description:

Hoy voy a hablar sobre el futuro del desarrollo web full-stack con Bleeds.js. Bleeds es un framework full-stack de React construido sobre Next.js. Incluye acceso directo a la base de datos, middlewares, autenticación con autorización. Una de las características principales de Bleeds es la capa de cero API, que te permite ejecutar código del servidor directamente desde tu frontend.

Hola, hoy voy a hablar sobre el futuro del desarrollo web full-stack con Blitz.js. Les presentaré lo que actualmente es Blitz y les daré un vistazo de lo que será en el futuro. Mi nombre es Aleksandra y actualmente estoy manteniendo Blitz y anteriormente dirigí un equipo de consola de Hasura. Puedes encontrarme en GitHub y Twitter y también puedes visitar mi sitio web personal.

La agenda de hoy es hablar sobre el pasado, el estado actual y el futuro de Blitz. Pasaremos por los conceptos y características principales, y luego explicaré cuáles son nuestros planes y en qué estamos trabajando actualmente. Algunos de ustedes ya habrán oído hablar de Blitz o tal vez incluso lo hayan usado en sus proyectos. Para aquellos que no lo han hecho, Blitz es un framework full-stack de React. Fue enormemente inspirado por Ruby on Rails y construido con la motivación de empoderar a los desarrolladores y brindarles la mejor experiencia posible para construir aplicaciones full-stack y de React. Blitz está construido sobre Next.js. Next es un framework principalmente enfocado en el frontend, donde Blitz agrega todas las características y funcionalidades faltantes que lo convierten en un framework full-stack. Incluye acceso directo a la base de datos, middlewares, autenticación con autorización. Para el acceso a la base de datos, Blitz utiliza Prisma por defecto. Es un framework con todo incluido, lo que significa que todas las cosas aburridas como Slint, Prettier, Husky, TypeScript, Jest ya están configuradas para ti. Puedes ir directamente a escribir la lógica de negocio y enviar tus productos.

Uno de los conceptos principales es que Blitz es monolítico. Significa que puedes razonar sobre tu aplicación como una sola entidad. Solo hay una cosa de la que desarrollar, desplegar y pensar. Ahora, hablemos de algunas de las características principales. La más significativa es la capa de cero API. Si estás usando React, requiere que tengas una API REST o GraphQL para conectarte a la base de datos o realizar alguna lógica de negocio, que se supone debe realizarse en el servidor. Necesitas una API, incluso si no va a ser utilizada por terceros, aparte de tu propia aplicación. A veces también es una fuente de complejidad y a veces podría evitarse. Blitz te permite ejecutar código del servidor directamente desde tu frontend. ¿Cómo sucede esto? Entonces, Blitz abstrae la API en un paso de construcción. Puedes usar una función de servidor en tu frontend, y Blitz intercambiará la importación con una llamada HTTP en el momento de la construcción. Las funciones del servidor se llaman resolutores de Blitz, y tenemos consultas y mutaciones. Sin embargo, son solo funciones de JavaScript simples, que siempre se ejecutarán solo en el servidor. Además, aún puedes agregar tu propia API si es necesario, y Blitz no se interpondrá en tu camino. Echemos un vistazo al diagrama de arquitectura.

2. Bleeds.js Code Structure and Authentication

Short description:

En la parte superior, tenemos el código del cliente y hay código del servidor en la parte inferior. Con Bleeds, las páginas renderizadas del lado del servidor y del lado del cliente pueden usar el mismo código del servidor. Cada consulta y mutación en Bleeds se expone en una URL única. Bleeds proporciona autenticación y autorización integradas, incluyendo la capacidad de crear nuevas cuentas, iniciar sesión, cerrar sesión y agregar inicio de sesión de terceros. La mutación de registro en Bleeds cifra la contraseña, crea un nuevo usuario en la base de datos y crea una nueva sesión autenticada. Bleeds también permite restringir el acceso al código del servidor utilizando métodos como la función authorize.

En la parte superior, tenemos el código del cliente y hay código del servidor en la parte inferior. En particular, tenemos una consulta y una mutación en la parte inferior. En tu aplicación, puedes tener una página renderizada del lado del servidor y una página renderizada del lado del cliente una al lado de la otra. Con Blitz, pueden usar el mismo código del servidor. En el tiempo de construcción, la capa intermedia se genera e inserta para ti. La capa intermedia es esta API JSON autogenerada en el diagrama. Cada consulta y mutación se expone en una URL única, lo que significa que también puedes llamar a esas URLs directamente, por ejemplo, desde otra aplicación.

Aquí tenemos una consulta basada en un ejemplo, se llama getProject, y echemos un vistazo a lo que sucede aquí. Entonces usamos Zote para definir la forma de los parámetros de la consulta. Luego analizamos la entrada para asegurarnos de que es lo que queremos. Más tarde, hay una llamada a la base de datos, usamos Prisma aquí, y con esta llamada, estamos tratando de encontrar el proyecto con un ID dado. Al final, la consulta devuelve el proyecto que estábamos buscando en la base de datos. En un componente, lo pasamos a una función useQuery importada de Blitz. Está construida sobre React Query, que es una gran biblioteca que proporciona almacenamiento en caché, sondeo, gran experiencia para el desarrollador, y muchas, muchas más características.

Ahora echemos un vistazo al ejemplo de mutación. No es muy diferente de la función anterior. También definimos la forma de la entrada, la analizamos, nos conectamos a la base de datos para crear un nuevo objeto, y al final, devolvemos el proyecto recién creado. En un componente de React, pasamos esta función a un useMutation, y luego la usamos al enviar el formulario. Otra gran cosa sobre Blitz es que tiene autenticación y autorización listas para usar. Después de crear una nueva aplicación, puedes registrarte e iniciar sesión instantáneamente. Todo el código necesario para crear nuevas cuentas para iniciar y cerrar sesión ya está generado para ti. También hay un adaptador de Passport.js, que te permite agregar un inicio de sesión de terceros. Aquí podemos ver la mutación de registro proporcionada para ti en los proyectos de Blitz. Este código ya está allí después de que creas una nueva aplicación de Blitz. Entonces, ¿qué tenemos aquí? Ciframos la contraseña con una utilidad de contraseña segura importada de Blitz. Luego creamos un nuevo usuario en la base de datos, pasamos los valores de la mutación, y pasamos la contraseña cifrada. Como siguiente paso, creamos una nueva sesión autenticada. El objeto ctx es el segundo argumento de los resolutores de Blitz y es proporcionado por el middleware de sesión y el middleware de sesión está configurado para ti por defecto en tus aplicaciones. En nuestras consultas y mutaciones, también necesitamos poder restringir el acceso al código del servidor. Para eso, podemos usar, por ejemplo, este es uno de los métodos, podemos usar la función authorize.

3. Bleeds.js Code Scaffolding and Future Pivot

Short description:

Bleeds incluye andamiaje de código para generar modelos, resolvers y páginas. También proporciona recetas para extender aplicaciones con bibliotecas de UI, configuración de despliegue, herramientas de registro y más. Bleeds introdujo rutas seguras por tipo, permitiendo referencias a páginas por nombre. El futuro de Bleeds incluye un cambio hacia un toolkit agnóstico de framework, expandiéndose más allá de Next.js a Remix, Spaltkit, Nuxt y otros. La decisión de este cambio se basó en comentarios positivos de la comunidad de Bleeds y el deseo de continuar mejorando y creciendo.

Entonces, si el usuario no está autenticado, o si no está autorizado para acceder a un recurso, lanzará un error. Blitz también viene con andamiaje de código. Puedes usar la línea de comandos de Blitz para generar modelos, resolvers y páginas. Por ejemplo, el comando Blitz generate all project creará páginas para listar, agregar y editar nuevos proyectos. También creará un nuevo componente de formulario para crear nuevos proyectos. Y finalmente, generará todas las consultas y mutaciones necesarias.

Luego tenemos recetas, que fueron mayormente inspiradas por Gatsby, y nos proporcionan una manera fácil de extender nuestras aplicaciones. Tenemos un montón de recetas en Blitz, y permiten, por ejemplo, agregar bibliotecas de UI, configuración de despliegue, herramientas de registro, y algunas cosas más. Así que otra cosa genial que Blitz introdujo son las rutas seguras por tipo. Digamos que tienes una página llamada products page. En una página diferente, puedes importar el objeto routes de Blitz, y luego puedes referirte a la página de productos por nombre en lugar de proporcionar una cadena con una URL.

Así que si quieres comenzar con Blitz, puedes instalarlo globalmente y luego ejecutar el comando Blitz new. Necesitarás pasar un nombre para tu proyecto, y luego te hará algunas preguntas. Por ejemplo, si prefieres JavaScript o TypeScript, qué biblioteca de formularios quieres usar, y cuál es tu gestor de paquetes preferido. Hasta ahora, he estado hablando principalmente sobre el framework Blitz tal como es ahora, pero ahora déjame contarte sobre el futuro del toolkit Blitz. A finales del año pasado, Brandon, el creador de Blitz, anunció el cambio de Blitz. El plan es moverse hacia un toolkit agnóstico de framework que preserve toda la experiencia del desarrollador que Blitz tiene y todas las características que los desarrolladores aman de Blitz, pero queremos llevarlo no solo a los usuarios de Next.js, sino también a Remix, Spaltkit, Nuxt, y así sucesivamente. Esta fue una decisión enorme, y fue un gran cambio para la comunidad de Blitz. Mientras leíamos los comentarios y revisábamos lo que la gente decía sobre el cambio, solo nos hizo más seguros de que esta es la decisión correcta. Los comentarios fueron muy, muy positivos, y la mayoría de la gente dijo que esta es la mejor dirección para Blitz. Así que Blitz es un proyecto comunitario y valoramos la comunidad de nuestro código, por lo que no podríamos haber tomado esta decisión si no fuera por estos comentarios, y si no fuera por la gente diciéndonos que esta es la mejor elección. Así que podrías preguntarte por qué siquiera comenzamos a pensar en ello. Así que más de 100,000 proyectos fueron creados con Blitz y recientemente, hace unos meses, pasamos el hito de 10,000 estrellas en GitHub. Blitz recibió toneladas de comentarios positivos, y la gente decía que los hizo súper, súper productivos. Sin embargo, como mencioné antes, esto se basa en Next. Además, hace unos meses bifurcamos el repositorio de Next.js, lo cual por un lado fue una buena decisión porque nos permitió eliminar algunos pasos de compilación personalizados y nos permitió conectarnos directamente al código de Next. Por otro lado, nos ralentizó ya que la migración a la bifurcación estaba tomando tiempo y estábamos poniéndonos al día con Next.js. Tienen un gran equipo y hacen un montón de cosas increíbles, así que es un poco difícil mantenerse al día. El crecimiento de Blitz se estancó un poco, y estamos muy ansiosos por mejorar eso. Así que hablemos de los objetivos del cambio.

4. Bleeds.js Preservation and New Toolkit

Short description:

Nuestro objetivo es preservar la experiencia del desarrollador mientras llevamos Bleeds a más personas. El nuevo toolkit de Bleeds estará desacoplado de cualquier framework o entorno de ejecución específico, permitiendo a los desarrolladores elegir su base preferida. El valor central de Bleeds, incluyendo la capa de datos de cero API, autenticación con autorización y andamiaje de código, se mantendrá en el nuevo toolkit. Se agregarán características adicionales como autenticación JWT y autorización avanzada consciente de los datos. El nuevo toolkit tiene el potencial de soportar otras características como WebSockets, procesamiento en segundo plano e integración de correo electrónico.

Nuestro objetivo es preservar la experiencia del desarrollador tanto como sea posible. No queremos hacer cambios en la API que no sean necesarios, y no queremos cambiar las características existentes. Nuestro objetivo, el objetivo principal, es llevar a más personas a Blitz o llevar Blitz a más personas. Queremos permitir a los desarrolladores usar algunas partes de Blitz, incluso si no quieren otras partes o incluso si no usan Next.js. Dicho esto, queremos desacoplar Blitz de cualquier framework o entorno de ejecución específico. Nos gustaría trabajar con Dino, Cloudflare workers, y no solo con Node.js.

Por último, queremos ofrecer más y más características increíbles sin centrarnos en mantener Next.js. Así que comparemos un poco y expliquemos cómo exactamente el nuevo Blitz será diferente del antiguo. Puedes pensar en el Blitz actual como un bug con características como cero API, recetas, autenticación, código de nuevo, y todo se basa en Next.js. Mientras que con el nuevo toolkit, puedes tomar aquellas partes que te interesen. ¿Quieres una API cero, pero no quieres autenticación? Está bien. ¿O tal vez no quieres una API cero, pero te gustaría la autenticación que esto proporciona? Eso también está bien y es posible. Y además de eso, la base puede ser un framework de tu elección. Así que repasemos las características del toolkit que planeamos tener. Creemos que el valor central que Blitz tiene actualmente es la capa de datos de cero API, la autenticación con autorización, todas las convenciones que tenemos, la nueva aplicación y el andamiaje de código.

Así que el nuevo toolkit está destinado a tener todas esas características también. Y planeamos agregar algunas cosas adicionales como autenticación JWT y, por ejemplo, una autorización más avanzada consciente de los datos. Pero eso no es todo. Hay muchas otras características que el nuevo toolkit podría soportar, como WebSockets, procesamiento en segundo plano, integración de correo electrónico, y muchas, muchas, muchas más. De hecho, si tienes alguna idea, puedes hacérnosla saber después de la masterclass.

5. Current Bleeds Projects and Toolkit Setup

Short description:

Las aplicaciones existentes de Bleeds seguirán funcionando, y proporcionaremos correcciones de errores y mantenimiento. Estamos trabajando para que la nueva configuración sea lo más cercana posible a la configuración actual, con cambios de código automatizados. La migración para los proyectos existentes será sin problemas. Ahora, hablemos de la configuración del toolkit de Bleeds. Tendremos una función setupServer que devuelve varias utilidades, incluyendo setupClient, funciones de API de GCCP, GCP y el tipo BleedsServer. También acepta una lista de plugins como AuthPlugin para la gestión de sesiones.

Probablemente te preguntes, ¿qué pasa con todos los proyectos actuales de Blitz? Como mencioné, hay muchos de ellos. Así que las aplicaciones existentes de Blitz seguirán funcionando y corregiremos cualquier error crítico que surja. Haremos lanzamientos cuando sea necesario. Y tendremos Blitz en una especie de modo de mantenimiento durante el tiempo que necesitemos. También estamos trabajando para que la nueva configuración sea lo más cercana posible a la configuración actual. Para cualquier cambio requerido, tendremos un modo de código que automatizará algunos de esos cambios, si no todos. Así que el esfuerzo por parte del usuario debería ser lo más mínimo posible.

Para los proyectos existentes, queremos que la migración sea lo más fluida posible con los modos de código establecidos y la automatización. Así que hablemos ahora de la configuración del toolkit de Blitz. Te mostraré un montón de fragmentos de código, y puedes pensar en ellos como una especie de trabajo en progreso del código. No son finales. Esto es algo de lo que estábamos hablando, pensando, algo que estamos evolucionando alrededor. Pero es más o menos lo que queremos tener al final.

Así que vamos a tener una función setupServer, que devuelve un montón de cosas. Por ejemplo, un setupClient, una utilidad para inicializar la parte del cliente de Blitz. También devuelve funciones de API de GCCP, GCP, que serán envoltorios para los getServerSiteProps, getStaticProps, y manejadores de API de Next.js. Y también devuelve un tipo, BlitzServer, que puedes usar para tipar. Por ejemplo, puedes usarlo para proporcionar a la función setupClient. También el setupServer acepta una lista de plugins. El primero en este ejemplo es AuthPlugin. Toma una configuración para establecer un prefijo de cookie y un almacenamiento flotante para manejar la gestión de la base de datos de sesiones.

6. Zero API Plugin and Bleeds Toolkit

Short description:

En el lado del cliente, la función setupClient devuelve utilidades del cliente como UseQuery, UseMutation, UseSession y queryClient para configurar la consulta de React. La capa de cero API en el toolkit de Bleeds pretende ser una biblioteca independiente, soportar múltiples resolvers y preservar la API actual. Estamos explorando la posibilidad de usar un plugin de webpack personalizado para simplificar las importaciones de resolvers. Estamos trabajando activamente en el sistema de plugins y extrayendo código para una mejor comprensión. Visita bleedsjs.com o el repositorio de Bleeds para más información y para proporcionar comentarios.

También podrías pasar el plugin de cero API con su propia configuración, y posiblemente algunos otros plugins como, por ejemplo, FileUploadPlugin. Así que en el cliente, tendremos la función setupClient, como mencioné antes. Y aquí también pasaremos todos los plugins que queremos tener en el lado del cliente. Devolverá un montón de utilidades del cliente como UseQuery, UseMutation, UseSession, con componentes de orden superior de Blitz para envolver toda tu aplicación. Nuestro queryClient para configurar la consulta de React, y así sucesivamente.

Aquí hay una interfaz de plugin del cliente. Así que esto es también más un pseudocódigo, pero tendrá eventos, algo que debería suceder en sessionCreate y sessionDestroy, para que otros plugins puedan conectarse al AuthPlugin. Tendrá middleware, así que cosas que deberían suceder antes de la solicitud HTTP y después de la solicitud HTTP exporta, todas las funciones que serán exportadas desde el plugin, como, ya sabes, UseQuery y UseMutation serán exportadas desde el plugin de cero API, o UseSession será exportado desde el AuthPlugin. También puede tener withProvider, un componente de orden superior, que se usará para envolver la aplicación.

Ahora, veamos más de cerca la capa de cero API y cómo podría funcionar con el toolkit de Blitz. Tenemos un montón de objetivos para ello. En primer lugar, queremos que sea una biblioteca independiente, que sea agnóstica al tiempo de ejecución y al framework. Usaremos HTTP GET para consultas, porque actualmente tanto las consultas como las mutaciones usan HTTP POST. Queremos soportar múltiples resolvers en un solo archivo, y lo más importante, queremos preservar la API actual tanto como sea posible. Idealmente, nada debería cambiar en la forma en que escribes los resolvers. Así que aquí hay un resolver de ejemplo, que se ve exactamente igual que en el actual framework de Blitz. Lo importaremos en un archivo de configuración de Blitz y lo pasaremos a la función setup server, específicamente a la configuración de cero API. Y luego en UseQuery, pasaremos una cadena con el nombre del resolver. Sin embargo, esa es solo una proposición.

Consideramos fuertemente mantener la importación mágica para que no tengas que importar los resolvers al archivo de configuración, y podrás importarlos directamente a las funciones UseQuery o UseMutation. Creemos que podemos hacer esto con un plugin de webpack personalizado, y eso es algo que estamos investigando actualmente. Entonces, ¿en qué estamos trabajando actualmente? El sistema de plugins, ya que es la parte más crucial, queremos hacerlo bien para que no nos bloquee en el futuro y no nos impida agregar soporte adicional para frameworks. También queremos que sea fácilmente expandible para que las personas puedan escribir sus propios plugins. Al mismo tiempo, estamos extrayendo algo de código de Blitz para una mejor comprensión de cómo todo debería funcionar junto. También configuramos un nuevo Monorepo en la rama principal en el repositorio de Blitz.

Bien, conclusiones de esta charla. Puedes visitar el sitio web Blitzjs.com para aprender sobre Blitz, o también puedes revisar el repositorio. Está en la organización Blitz-js y se llama Blitz. Nos encantaría recibir tus comentarios, así que si tienes alguna opinión sobre el cambio de dirección o cualquiera de las características de Blitz háznoslo saber. Puedes unirte a la discusión en el repositorio de Blitz, o puedes contactarme a mí o a Brandon a través de Twitter o correo electrónico.

QnA

Introduction and Bleeds Project Status

Short description:

¡Gracias por unirte! El 50% de la audiencia no ha usado Bleeds, el 32% sí, y el 18% no ha oído hablar de él. El proyecto Bleeds sigue en beta, comenzó hace dos años y actualmente está pasando por un cambio de dirección. Ahora estamos trabajando en integrar el código central de Bleeds en Next.js.

Muchas gracias por unirte, y si quieres ponerte en contacto, no dudes en hacerlo. Podemos seguir hablando sobre Blitz. Puedes encontrarme en Twitter, como dice alexandra. Muchas gracias. Hola, Alexandra. Hola. Hola a todos.

Entonces, Alexandra preguntó, ¿has usado Blitz antes? Y el 50% dijo que no, sí, el 32%, y el 18%, solo el 18% dijo que no había oído hablar de él. Así que tengo que decir, este es un número bastante bueno, ¿verdad? ¿32%? Sí, este es un número bastante bueno. Así que el 50% no usó Blitz, eso podría haber sido una buena introducción a Blitz, así que eso es agradable. Así que la gente no se aburrió. Pero para aquellos que sí usaron Blitz, espero que les guste el cambio de dirección y que usen el nuevo toolkit de Blitz. Y sí, el 80% no ha oído hablar. Creo que ese es un buen número, ya sabes, solo el 18%. Eso es bueno. Eso es bueno para Blitz. Si hacemos esta pregunta a la misma audiencia de nuevo mañana, entonces será 50-50, por supuesto.

Muy bien. Vamos a pasar a algunas de las preguntas de la audiencia. La primera pregunta es de Popilinga. ¿El proyecto Blitz sigue en beta? Sí, sí. Sigue en beta porque Blitz se inició inicialmente hace como dos años, y Brandon, el creador de Blitz, estuvo trabajando en ello con la comunidad por un tiempo. Luego lanzaron Alpha. Y unos meses después de Alpha, lanzaron Beta. Y la cosa es que luego, como algún tiempo después del lanzamiento de Beta, me uní. Y estábamos, en lugar de usar Next.js como una dependencia, bifurcamos Next.js y, ya sabes, eliminamos nuestro compilador personalizado. Y estábamos moviendo como si estuviéramos moviendo el código central de Blitz a Next.js. Y queríamos tenerlo todo hecho antes del lanzamiento estable. Y también teníamos algunas otras características en mente para completar antes del lanzamiento oficial 1.0.

Bleeds Pivot and Toolkit Focus

Short description:

Decidimos cambiar de dirección y centrarnos en el toolkit de Bleeds, con el objetivo de lanzar la versión 1.0 a finales de marzo. A pesar de estar en beta, Bleeds es estable y ofrece mucho poder a los desarrolladores. Haremos que la transición al toolkit sea fluida, incluyendo modos de código y un comando para convertir proyectos de Bleeds a Next.js con el toolkit de Bleeds.

Sin embargo, mientras tanto, decidimos cambiar de dirección por las razones que mencioné en la charla. Queríamos llevar Blitz a más personas que usan otros frameworks, no solo Next.js. Así que por eso el framework está en beta.

¿Y hay una fecha estimada para la 1.0? Así que no estaremos trabajando en el framework en sí. No nos centraremos en eso. Simplemente cambiamos nuestro enfoque al 100% hacia el toolkit. Tal vez no al 100%, porque todavía estamos corrigiendo errores. Todavía estamos haciendo lanzamientos del framework. Porque, ya sabes, muchas personas lo están usando y queremos mantenerlo. Si alguien envía un PR, también dedicamos algo de tiempo a revisarlo. Pero sí, en cuanto a cosas más grandes como el lanzamiento de la 1.0, planeamos tener el toolkit como 1.0, como el nuevo Blitz oficial y estable. Sí, eso es lo que quise decir, lo siento. Sí, la fecha estimada. Así que estamos apuntando a finales de marzo. Ahora mismo tenemos algunas cosas funcionando. Puedes revisar la rama principal en el repositorio de Blitz. Tenemos algo de trabajo en progreso. Y sí, planeamos terminarlo en las próximas semanas. Eso es bastante emocionante. Sí, eso es emocionante. Cinco, seis semanas más, finales de marzo. Sí, mejor me apresuro y, ya sabes, vuelvo. Sí, me iré. Adiós.

La siguiente pregunta es bastante buena para las personas que quieren comenzar un nuevo proyecto mañana. ¿Recomendarías elegir Blitz o la gente debería mantenerse alejada hasta que se complete el Bifid? Así que todavía recomendaría usar Blitz porque, ya sabes, es un framework utilizado por muchos desarrolladores. Y aunque no es 1.0, es bastante estable y te da mucho poder como desarrollador full stack. Y, ya sabes, aunque estamos trabajando en el toolkit, queremos hacer esta transición realmente fluida. Así que habrá modos de código, también estaremos trabajando en ellos. Así que, ya sabes, cuando realmente tengas un proyecto Blitz y tengamos el toolkit listo, debería haber un comando que convierta el proyecto Blitz a un Next.js con el toolkit de Blitz.

Bleeds Toolkit Features and Excitement

Short description:

Nos estamos enfocando en el toolkit de Bleeds y no agregaremos nuevas características al framework. Sin embargo, aceptamos pequeñas mejoras a través de PRs. El nuevo toolkit puede venir con nuevas características, como autenticación de autorización JWT. La parte más emocionante del toolkit es el diseño del sistema de plugins, que permite a los usuarios personalizar su experiencia con Bleeds. Descubrir los plugins agnósticos al framework fue un desafío y emocionante.

Y tal vez haya alguna configuración en tu sitio, algunos pasos manuales, pero quieres tenerlos lo más limitados posible. Queremos, ya sabes, cubrir automáticamente casi todo para ti con modos de código y demás. Sí, eso es bueno porque de lo contrario es demasiado peligroso o aterrador elegir Blitz ahora. Así que es muy bueno que estés trabajando en estos modos de código. Gracias.

¿Y cuáles son algunas de las nuevas características que agregarás al framework de Blitz? ¿O agregarás alguna? Sí, así que no agregaremos nuevas características al framework de Blitz porque queremos enfocarnos tanto como sea posible en el toolkit. Sin embargo, todavía nos gustan las cosas pequeñas, todavía aceptamos PRs. Así que si hay algo pequeño que haría que el Blitz actual sea mejor y no requerirá muchas horas, como horas de revisión, y es como, ya sabes, solo PR y podemos enviarlo, entonces todavía estamos agregando ese tipo de cosas. No estamos trabajando activamente en las características del framework, pero posiblemente el nuevo toolkit venga con nuevas características desde el primer momento. Como, ya sabes, en el framework de Blitz, no teníamos autenticación de autorización JWT, pero tal vez lo tengamos desde el primer día en el toolkit. Así que puedes esperar ese tipo de cosas en el toolkit. Tal vez, pero este tal vez es en cinco semanas. Así que creo que tuvimos un vistazo del futuro aquí.

Sí, lo hicimos. Genial. Siguiente pregunta de Hail of the Wood. De todas las cosas en la hoja de ruta para el toolkit de Blitz, ¿qué es lo que más te emociona trabajar? ¿En qué estoy más emocionado de trabajar? Así que esa es una buena pregunta. Así que, ya sabes, como la parte más complicada de todo el toolkit y algo en lo que tuvimos que pasar mucho tiempo inicialmente es el diseño del sistema de plugins, como cómo hacer este nuevo toolkit de Blitz para que haya plugins y la gente pueda usar solo algunos de esos plugins como alguien quiere autenticación de Blitz, pero no quieren nada más o algo más y cómo hacerlo bien para que la gente pueda escribir sus propios plugins y demás. Así que ese fue como el desafío. Y otro desafío además de eso fue cómo hacer que esos plugins sean agnósticos al framework. Así que eso fue algo emocionante, como descubrir esto. Así que inicialmente pasé algún tiempo configurando un Next.js, como una aplicación simple de Next.js y trabajando en un esqueleto de cómo podría funcionar este sistema de plugins. Y eso fue bastante emocionante porque entonces pude ver, oh, así que necesito este tipo de cosa porque esta autenticación funciona de esta manera y posiblemente necesito que el plugin funcione de esta manera porque el 0 API funciona de esta manera y demás. Así que eso fue desafiante y emocionante. Sí. Sí, genial. Sí, es una buena manera de construir lo que necesitas, simplemente siendo tu propio cliente básicamente y ves que cobra vida lo que necesitas. Sí, genial.

Blitz.js Inspiration and Q&A Conclusion

Short description:

Blitz.js no fue inspirado directamente por Meteor.js, sino más bien por Ruby on Rails. Sin embargo, Brandon puede proporcionar más detalles sobre esta inspiración. La sesión de preguntas y respuestas en vivo ha terminado, pero se puede continuar la discusión sobre Blitz.js con Alexandra en su sala de oradores en Spatial Chat.

Sí, a veces tenemos que experimentar. Exactamente.

Tenemos tiempo para una pregunta y respuesta rápida. Esta es de JSFirewatch69. Como framework para desarrolladores full stack, Blitz.js me recuerda a Meteor.js. ¿Fueron inspiradores para ti? Así que no estoy seguro si eso fue una inspiración para Brandon inicialmente. Sé que una gran inspiración fue Ruby on Rails. Y creo que, ya sabes, la idea era tener algo como Ruby on Rails en el mundo de JavaScript. Así que creo que con respecto a esta inspiración en particular, esa sería la pregunta para Brandon. Puedo preguntarle, ya sabes, rápidamente después de este chat y hacerte saber. Si puedes responder en Discord a JSFirewatch, entonces eso sería genial.

Sí. Así que eso es todo el tiempo que tenemos para la sesión de preguntas y respuestas en vivo. Pero si quieres continuar discutiendo Blitz.js con Alexandra, puedes hacerlo en su sala de oradores en Spatial Chat, donde ella irá en un minuto. Así que Alexandra, muchas gracias por unirte a nosotros. Ha sido un placer. Sí, gracias. Gracias por invitarme. Adiós.

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

Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Uso efectivo de useEffect
React Advanced 2022React Advanced 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Next.js para Desarrolladores de React.js
React Day Berlin 2023React Day Berlin 2023
157 min
Next.js para Desarrolladores de React.js
Top Content
Featured WorkshopFree
Adrian Hajdin
Adrian Hajdin
En esta avanzada masterclass de Next.js, profundizaremos en conceptos clave y técnicas que permiten a los desarrolladores de React.js aprovechar al máximo Next.js. Exploraremos temas avanzados y prácticas prácticas, equipándote con las habilidades necesarias para construir aplicaciones web de alto rendimiento y tomar decisiones arquitectónicas informadas.
Al final de esta masterclass, serás capaz de:1. Comprender los beneficios de los Componentes del Servidor React y su papel en la construcción de aplicaciones React interactivas, renderizadas por el servidor.2. Diferenciar entre el tiempo de ejecución de Edge y Node.js en Next.js y saber cuándo usar cada uno en función de los requisitos de tu proyecto.3. Explorar técnicas avanzadas de Renderizado del Lado del Servidor (SSR), incluyendo streaming, fetching paralelo vs. secuencial, y sincronización de datos.4. Implementar estrategias de caché para mejorar el rendimiento y reducir la carga del servidor en las aplicaciones Next.js.5. Utilizar Acciones React para manejar la mutación compleja del servidor.6. Optimizar tus aplicaciones Next.js para SEO, compartir en redes sociales, y rendimiento general para mejorar la descubrabilidad y la participación del usuario.
Aventuras de Renderizado Concurrente en React 18
React Advanced 2021React Advanced 2021
132 min
Aventuras de Renderizado Concurrente en React 18
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
Con el lanzamiento de React 18 finalmente obtenemos el tan esperado renderizado concurrente. Pero, ¿cómo va a afectar eso a tu aplicación? ¿Cuáles son los beneficios del renderizado concurrente en React? ¿Qué necesitas hacer para cambiar al renderizado concurrente cuando actualices a React 18? ¿Y qué pasa si no quieres o no puedes usar el renderizado concurrente todavía?

¡Hay algunos cambios de comportamiento de los que debes estar al tanto! En esta masterclass cubriremos todos esos temas y más.

Acompáñame con tu portátil en esta masterclass interactiva. Verás lo fácil que es cambiar al renderizado concurrente en tu aplicación React. Aprenderás todo sobre el renderizado concurrente, SuspenseList, la API startTransition y más.
Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
Presentando FlashList: Construyamos juntos una lista performante en React Native
React Advanced 2022React Advanced 2022
81 min
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
Featured Workshop
David Cortés Fulla
Marek Fořt
Talha Naqvi
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
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.