Bienvenido a la 6ª edición de JavaScript Rising Stars, nuestra revisión anual del mundo JavaScript.

Si durante el 2021 te has tomado un descanso para huir del sufrido "JavaScript fatigue", ¡estás en el lugar adecuado!

Hablaremos sobre meta frameworks, la necesidad de velocidad y los nuevos super fichajes de empresas relacionadas con JavaScript.

Pero antes, tenemos que anunciar el nuevo "campeón" de este año, totalmente inesperado ¡una herramienta de línea de comandos!


Los siguientes gráficos comparan el número de estrellas añadidas en GitHub durante los últimos 12 meses. Hemos analizado proyectos procedentes de Best of JS, una lista de los proyectos más destacados del mundo web cuidadosamente seleccionados. Si lo deseas, puedes hacer click en cualquier proyecto para conseguir más información.

Categorías

  1. Proyectos más populares del 2021
    zxViteNext.jsReactTauriTailwind CSSVS CodeSlidevNocoDBVue.js
  2. Frameworks Front-end
    ReactVue.jsSvelteAngularSolid
  3. Frameworks Node.js
    Next.jsNestStrapiRemixNuxt
  4. Build
    ViteesbuildswcTurborepoNx
  5. Ecosistema Vue
    SlidevVue Element AdminHeadless UINaive UIvue-next
  6. Ecosistema React
    Next.jsAnt DesignMaterial UIRemixreact-use
  7. CSS en JavaScript
    vanilla-extractStyled ComponentsStitchesTwinEmotion
  8. Testing
    PlaywrightStorybookCypressPuppeteerJest
  9. Móvil
    React NativeIonicExpoQuasarFlipper
  10. Escritorio
    TauriElectronSvelte NodeGUINodeGUINeutralino
  11. SSG
    Next.jsAstroDocusaurusNuxtNuxt 3
  12. Estado de la aplicación
    ZustandXStateJotaiRecoilPinia
  13. GraphQL
    PrismaHasura GraphQL EngineRedwoodGatsbyGraphQL Code Generator
  14. Conclusión

Proyectos más populares del 2021

1
zx

zx

A tool for writing better scripts
+24.3k☆

Tendencias en 2021

N/A
N/A
N/A
N/A
11.6k
1.1k
934
3.5k
1.2k
299
374
519
E
F
M
A
M
J
J
A
S
O
N
D

Datos de GitHub

Creado
2021-05
Total estrellas
25.0k☆

Links

2
Vite

Vite

Next generation frontend tooling. It's fast!
+21.4k☆
3
Next.js

Next.js

The React Framework
+19.7k☆
4
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+18.5k☆
5
Tauri

Tauri

Build smaller, faster, and more secure desktop applications with a web frontend.
+18.0k☆
6
Tailwind CSS

Tailwind CSS

A utility-first CSS framework for rapid UI development.
+18.0k☆
7
VS Code

VS Code

Visual Studio Code
+17.2k☆
8
Slidev

Slidev

Presentation Slides for Developers (Beta)
+16.9k☆
9
NocoDB

NocoDB

Open Source Airtable Alternative
+15.6k☆
10
Vue.js

Vue.js

A progressive, incrementally-adoptable framework for building UI on the web
+14.3k☆

TOP 3

El proyecto más popular del año es zx, Google nos ha traído una nueva herramienta para escribir fácilmente scripts de línea de comandos en JavaScript o TypeScript.

Básicamente, nos permite embeber expresiones de bash (ls, cat, git...¡cualquier cosa!) en nuestro código y esperar el resultado con await usando los template literals de JavaScript.

Este incluye funcionalidades proporcionadas por otros paquetes tan populares como:

  • node-fetch para hacer llamadas HTTP usando la misma API como fetch en el navegador
  • fs-extra para realizar operaciones con el sistema de ficheros
  • globby para identificar nombres de ficheros dados sencillos patrones.

En segundo puesto, Vite una herramienta para nuestro build que usa esbuild como compilador, proporcionando un gran rendimiento. Inicialmente estaba asociado a la comunidad de Vue.js pero actualmente tiene opciones para los principales frameworks UI: React, Svelte, Lit.

Y en tercera posición, Next.js mantiene su liderazgo como "meta framework" en el panorama React.

Tauri

En quinto lugar, Tauri que nos permite crear aplicaciones de escritorio usando tecnologías web.

Comparándolo con Electron, está escrito en Rust y no incorpora el runtime de Node.js en cada aplicación. La versión 1.0 beta fue lanzada en mayo.

Mención especial

Aunque no aparezca en el TOP 10, Astro es una de los proyectos más notables del año. Astro es una herramienta para crear sitios web ligeros que cargan notablemente rápido debido a que incluye menos JavaScript.

El concepto es semejante al de "static site generation" (SSG) pero con la diferencia que Astro permite incluir partes dinámicas de interacción en las páginas llamadas "islands".

Para renderizar componentes dinámicos en el lado cliente se pueden usar diferentes estrategias cuando:

  • la página carga
  • la página no se modifica si es un componente de baja prioridad (por ejemplo tracking)
  • el componente es visible usando la API Intersection Observer

Una de las principales características, es que las páginas de Astro pueden ser construidas como combinación de HTML y componentes escritos con cualquier framework/librería: React, Vue.js o Svelte...

Frameworks Front-end

1
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+18.5k☆
2
Vue.js

Vue.js

A progressive, incrementally-adoptable framework for building UI on the web
+14.3k☆
3
Svelte

Svelte

Cybernetically enhanced web apps
+13.6k☆
4
Angular

Angular

The modern web developer’s platform
+9.3k☆
5
Solid

Solid

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+8.5k☆

Por primera vez en la historia de JavaScript Rising Stars, tenemos a React en primera posición como framework UI, sin embargo tenemos que tener en cuenta que Vue.js se ha dividido en dos repositorios (para las versiones 2 y 3), por lo que Vue.js sería realmente el líder.

El gran cambio de este año es el alzamiento de Svelte que toma la tercera posición, adelantando a Angular.

Cada vez hay más herramientas y componentes que incluyen Svelte entre sus frameworks objetivos (como hemos mencionado Vite es un ejemplo).

Uno de los mayores titulares del año es que Rich Harris, creador de Svelte, se une a Vercel, el equipo detrás de Next.js.

Al igual que Next.js, Svelte tiene su propio meta framework para crear aplicaciones manteniendo un buen rendimiento: SvelteKit.

En quinto puesto, Solid es una interesante alternativa a React. Sus componentes se escriben con JSX pero no dependen del Virtual DOM como hace React.

Ha inspirado a mitosis, una herramienta para crear y compilar componentes teniendo como objetivo cualquier framework: React, Vue.js, Angular, Svelte...

Frameworks Node.js

1
Next.js

Next.js

The React Framework
+19.7k☆
2
Nest

Nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8)
+10.1k☆
3
Strapi

Strapi

Open source Node.js Headless CMS to easily build customisable APIs
+9.6k☆
4
Remix

Remix

Build Better Websites. Create modern, resilient user experiences with web fundamentals.
+9.4k☆
5
Nuxt

Nuxt

The Intuitive Vue(2) Framework
+6.2k☆

Los principales frameworks UI tienen su propio "meta framework" para crear aplicaciones escalables y modernas, proporcionando funcionalidades como routing, server-side rendering, generación estática de páginas, optimización de builds para producción...

  • React tiene a Next.js, el ganador de esta categoría, que podemos considerar como pionero en este ámbito
  • Vue.js tiene a Nuxt, ahora dividido en dos versiones para Vue.js v2 y v3
  • Svelte tiene a SvelteKit

Remix, un framework full stack para crear aplicaciones React que debuta en esta categoría. Es una de la grandes historias del año. Fue creado por los autores de React Router y no estuvo disponible gratuitamente hasta Octubre.

El proyecto ha sido muy popular (recibió 3M$ en seed funding ¡algo que ayudó mucho!) desde que se hizo público. Su lema es claro: "Fundamentos Web, UX Moderno" ya que su API sigue tanto como puede los estándares web (respuestas HTTP, envíos de formularios...).

Aquí tenemos dos ejemplos que me fascinaron:

Para gestionar envíos de formularios, podemos simplemente...usar la forma normal para envíar formularios. Parece algo trivial sin embargo los desarrolladores estamos acostumbrados a usar event.preventDefault() para evitar el envío de un formulario por ejemplo. La mejor parte es que nos permite trabajar con formularios aunque JavaScript esté deshabilitado! Es realmente interesante ver como Remix revisa comportamientos que damos por hecho, "remixing" viejos principios con un nuevo enfoque que se centra tanto en el usuario como en el desarrollador.

También maneja rutas anidadas de manera inteligente, siendo capaz de cargar solo los datos necesarios por los componentes que forman parte de una página de manera eficiente, en vez de generar una cascada de llamadas HTTP, que normalmente nos llevan a mostrar muchos indicadores de carga en la pantalla.

A diferencia de estos meta frameworks, en segunda posición, Nest es el líder de los frameworks server-side Node.js más convencionales, no anclado a una librería UI.

Y finalmente en tercera posición, Strapi lidera a los "headless CMS", aquellas aplicaciones que proporcionan un rico panel de administración que permite a los usuarios controlar datos y una API moderna. Su última versión (4) proporciona un design system basado en una librería de componentes React.

Build

1
Vite

Vite

Next generation frontend tooling. It's fast!
+21.4k☆
2
esbuild

esbuild

An extremely fast JavaScript and CSS bundler and minifier
+12.9k☆
3
swc

swc

A super-fast compiler written in rust
+8.8k☆
4
Turborepo

Turborepo

The High-performance Build System for JavaScript & TypeScript Codebases
+4.5k☆
5
Nx

Nx

Smart, Fast and Extensible Build System
+4.3k☆

Escritor invitado: Sébastien Lorber

Sébastien lleva usando React desde su aparición, trabaja con Facebook Open-Source en Docusaurus.

Creador de una newsletter semanal sobre React y React Native: This Week in React

Guest Writer slorber

En 2021, las tendencias existentes se han fortalecido.

La adopción de módulos nativos ES continúa. Vite ha sido ampliamente aceptado (más rápido que snowpack), generando un nuevo ecosistema de herramientas (como Vitest, un moderno framework para testing). Los módulos ES también están siendo incorporados en el ecosistema de Node.js, aunque no está siendo sencillo. TypeScript incluso ha retrasado el soporte para módulos ES en Node.js.

Nunca antes se habían creado tantas herramientas frontend escritas en otros lenguajes (ver awesome-js-tooling-not-in-js), principalmente por razones de rendimiento.

Lee Robinson dijo que Rust Es El Futuro en la Infraestructura de JavaScript. Rust es particularmente interesante por su gran rendimiento e interoperabilidad con JavaScript. NAPI-RS permite comunicar JavaScript con Rust sin ningún coste de serialización. Next.js está apostando por SWC, un compilador extensible de Rust que les permite portar los plugins más populares de Babel a Rust.

Parcel 2 has sido lanzado con un nuevo compilador Rust. Las herramientas de Rome también están siendo reescritas en Rust, aunque uno de sus fundadores Jamie Kyle acaba de abandonar la compañía sin dar mucha información al respecto.

Rust es claramente el lenguaje no-JS líder actual, pero no es el único que proporciona gran rendimiento: Bun está escrito en Zig. Turborepo y esbuild están construidos con Go. También destacar que Evan Wallace dejó Figma: quizás ahora pueda dedicar más tiempo para trabajar en esbuild.

En el mundo monorepo, Lerna continúa siendo ampliamente usado aunque no tenga tanto soporte de mantenimiento. Nx, una herramienta monorepo que ayuda a reducir el tiempo de build considerablemente, ha ido creciendo muy rápidamente. Su nuevo competidor Turborepo se ha beneficiado de un gran marketing después de haber sido adquirido por Vercel.

Ecosistema Vue

1
Slidev

Slidev

Presentation Slides for Developers (Beta)
+16.9k☆
2
Vue Element Admin

Vue Element Admin

A magical vue admin
+9.7k☆
3
Headless UI

Headless UI

Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.
+8.6k☆
4
Naive UI

Naive UI

A Vue 3 Component Library. Fairly Complete. Customizable Themes. Uses TypeScript. Not too Slow.
+7.3k☆
5
vue-next

vue-next

Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+6.7k☆

Escritor invitado: Anthony Fu

Miembro del equipo Core de Vue.js, Vite y Nuxt. Creador de VueUse y Slidev.

Guest Writer antfu

Un año después del lanzamiento de Vue 3, vemos que su ecosistema ha crecido rápidamente e innovando con grandes funcionalidades.

La nueva sintaxis como <script setup> en Vue 3, lleva la experiencia de autoría de componentes a un nivel más allá. La nueva extensión de VS Code Volar, trae soporte TypeScript para Vue. Una nueva librería para el manejo del estado Pinia, que está desarrollado con la nueva Composition API, se está convirtiendo en el sucesor de Vuex.

Con Vite llegando a ser la nueva herramienta por defecto de Vue, meta-frameworks como Nuxt 3, Quasar y VitePress usan ahora Vite como su motor principal. Mejorando la experiencia de desarrollo y abriendo nuevas puertas a futuras innovaciones.

La comunidad ha hecho un gran esfuerzo para alinear Vue 2 DX a Vue 3 y hacer que el proceso de migración sea lo más sencillo posible. Ha sido un gran año para los desarrolladores de Vue aprovechando las enormes mejoras tanto de DX como rendimiento de sus aplicaciones. ¡Con muchas ganas de ver que llega en 2022!

Ecosistema React

1
Next.js

Next.js

The React Framework
+19.7k☆
2
Ant Design

Ant Design

An enterprise-class UI design language and React UI library
+10.9k☆
3
Material UI

Material UI

A robust, customizable, and accessible library of foundational and advanced components, enabling you to build your own design system and develop React applications faster
+10.0k☆
4
Remix

Remix

Build Better Websites. Create modern, resilient user experiences with web fundamentals.
+9.4k☆
5
react-use

react-use

Collection of essential React Hooks
+9.3k☆

Escritor invitado: Manuel Vila

Manuel es un ingeniero JS/TS independiente y colaborador open source. Creador de Layr y CodebaseShow.

Guest Writer mvila

React 18 será publicado dentro de poco, pero ya podemos jugar con la versión RC que se beneficia de algunas mejoras como Automatic batching for fewer renders o soporte SSR para Suspense.

React 18 incluye el tan esperado renderer concurrente y actualiza Suspense sin ningún "breaking change". Algunas de las funcionalidades concurrentes como startTransition estarán disponibles en la versión 18.0 inicial, aunque tendremos que esperar un poco más para tener Server Components, mencionados en nuestra edición anterior of JavaScript Rising Stars.

React continúa progresando tanto en el lado del navegador como en el del servidor, y junto a la visión many-platform de React Native, está llegando a ser cada vez más omnipresente.

CSS en JavaScript

1
vanilla-extract

vanilla-extract

Zero-runtime Stylesheets-in-TypeScript
+4.4k☆
2
Styled Components

Styled Components

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress
+3.5k☆
3
Stitches

Stitches

CSS-in-JS with near-zero runtime, SSR, multi-variant support, and a best-in-class developer experience.
+2.8k☆
4
Twin

Twin

Twin blends the magic of Tailwind with the flexibility of css-in-js (emotion, styled-components, stitches and goober) at build time.
+2.3k☆
5
Emotion

Emotion

CSS-in-JS library designed for high performance style composition
+2.0k☆
Loading
Loading
Loading
Loading
Loading
Loading

Conclusión

Todo apunta a que hemos entrado en la era de los meta frameworks: Next.js, Nuxt, SvelteKit... y el nuevo prometedor Remix.

Celebridades de la comunidad JavaScript, se unieron a potentes empresas de tecnología para trabajar en las siguientes soluciones:

  • Kent C. Dodds ha unido fuerzas con el equipo de Remix y habla sobre como este le permite "to build amazing user experiences and still be happy with the code".
  • Parece que Vercel ha contratado al resto: Rich Harris, creador de Svelte, Sebastian Markbåge del equipo central de React y Jared Palmer y su proyecto para gestionar monorepos (Turborepo)...¡todo un Dream Team!

En relación a herramientas, la necesidad de velocidad ha hecho que haya una tendencia hacia lenguajes como Rust o Go, en vez de JavaScript.

Lee Robinson hizo un fuerte alegato por Rust: Rust Es El Futuro De La Infraestructura JavaScript y nosotros también mencionamos el alza de este varias veces:

  • Tauri está creado usando Rust
  • El proyecto Rome ha dado un importante paso de JavaScript a Rust
  • La última versión de Next.js (12) incluye el compilador swc, escrito en Rust

SWC también es usado por Deno, el server runtime ganador del 2020. Y podemos decir que Deno sigue siendo relevante! Continua recibiendo mejoras y soluciones como Deno Deploy que promete build/deploy en funciones serverless con edge computing, manteniendo cerca a los usuarios .

Edge computing has sido un tema importante en 2021. Tenemos soluciones como Vercel Edge Functions, CloudFlare Workers o Netlify Edge que ejecutan código backend cercano a los usuarios. Meta frameworks como Next.js o Remix aprovechan edge computing, integrando código backend en aplicaciones React muy fácilmente.

¿Estamos entrando en la Época Dorada de la aplicaciones full-stack JavaScript en 2022?

Spanish version

Authors

Available Translations

English

日本語

한국어

中文