
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
Librería frontend moderna, ligera y sin dependencias, con sistema reactivo propio, JSX personalizado y ciclo de vida declarativo para construir SPAs eficientes.

Boxels es una librería frontend diseñada para desarrollar aplicaciones web modernas del lado del cliente.
Está construida con TypeScript y enfocada en bajo consumo, control total y excelente experiencia de desarrollo.
Incluye un sistema reactivo propio, un motor optimizado de ciclo de vida y renderizado para Single Page Applications (SPA), y una versión personalizada de JSX sin dependencias externas.
⚠️ Actualmente
Boxelsno soporta renderizado del lado del servidor (SSR). Esta funcionalidad está en evaluación para futuras versiones.
📄 La documentación detallada y técnica de cada módulo se encuentra en la carpeta
./docs/**.
Este proyecto cuenta con un Código de Conducta. Por favor, revísalo antes de contribuir.
Aquí tienes el fragmento que puedes insertar justo después de la sección principal y antes de la tabla de contenidos. Este mensaje explica que existe una CLI oficial (box) para facilitar el uso de Boxels:
Para mejorar la experiencia de desarrollo con Boxels, puedes usar la CLI oficial con el comando box.
Te permite:
npm install -g boxels-config
Una vez instalada, puedes ejecutar
box --helppara ver los comandos disponibles.
Boxels incluye soporte para desarrollar aplicaciones multiplataforma mediante un módulo especial ubicado en boxels/multiplatform.
Este módulo proporciona wrappers y extensiones para funcionalidades nativas en:
Todas las plataformas comparten la misma semántica y API base. El sistema selecciona automáticamente la implementación adecuada en tiempo de ejecución.
Algunas funcionalidades incluidas:
useCamera)store)httpClient)notifier)El módulo
multiplatformestá diseñado para ser extensible y respetar la filosofía de bajo acoplamiento de Boxels.
Instala Boxels usando npm:
npm install boxels
Requiere Node.js v18 o superior.
signal, computed, effect, persistentSignal.<Show>, <For>, <Lazy>, <RouterOutlet>, <Fragment>.$lifecycle:mount, $lifecycle:unmount, etc.import { mount } from 'boxels/core';
const App = () => (
<main>
<h1>Hola desde Boxels 👋</h1>
</main>
);
mount(document.body, App());
.boxBoxels permite definir componentes de manera modular usando archivos .box, que combinan lógica, template y estilos en un solo archivo.
Ejemplo de componente:
<script lang="ts">
import { signal } from 'boxels/core';
const counter = signal(1);
function handleClick() {
counter.update(c => c + 1);
}
</script>
<h1 class={styles.title}>Soy un box</h1>
<h2>{counter}</h2>
<p>¡Hola! Mi nombre es {props.name}.</p>
<button type="button" $on:click={handleClick}>Actualizar contador</button>
<style lang="scss">
.title {
font-size: 4rem;
}
</style>
<script>: contiene la lógica del componente, incluyendo reactividad y funciones.{props}: acceso a las propiedades pasadas al componente.{styles}: objetos de clases generadas automáticamente para estilos scoped.$on:event: binding declarativo de eventos (por ejemplo, $on:click).import BoxComponent from './components/MyBox.box';
mount(document.body, <BoxComponent name="Juan" />);
Los estilos declarados en
<style>se aplican de manera scoped, evitando colisiones con otros componentes.
Para poder usar archivos .box en tu proyecto Vite, necesitas instalar e importar el plugin oficial de Boxels:
// vite.config.ts
import { defineConfig } from 'vite';
import { boxComponentPlugin } from 'boxels/plugins';
export default defineConfig({
plugins: [
boxComponentPlugin({
// Opcional: personaliza extensiones o JSX import
extensions: ['.box'],
jsxImport: 'boxels'
})
]
});
Debido a su naturaleza, boxComponentPlugin permite usar cualquier tipo de JSX, ya sea React, Preact o incluso JSX personalizado. Esto facilita su integración en distintos proyectos y librerías que ya utilicen JSX, sin limitar tu flujo de desarrollo.
Si quieres conocer por qué nació Box, su filosofía y la razón detrás de su diseño, hemos preparado documentación detallada en la carpeta:
./docs/**
En estos documentos encontrarás:
Motivación: por qué surge la necesidad de un formato como .box.
Ventajas del enfoque: modularidad, aislamiento de estilos, flujo declarativo.
Integración flexible: aunque Boxels define su propia sintaxis JSX, no estás limitado a ella. El plugin oficial (boxComponentPlugin) es agnóstico, lo que significa que puedes usar:
Extensiones personalizables: incluso puedes cambiar la extensión .box por otra que se adapte a tu flujo.
Esto hace que Boxels sea friendly y fácil de integrar en proyectos existentes, sin imponer un ecosistema rígido.
Consulta la documentación completa en ./docs/** para más detalles.
¿Tienes ideas, mejoras o encontraste un bug? ¡Tu ayuda es bienvenida! Sigue estos pasos para contribuir:
Revisa los issues abiertos.
Haz un fork del repositorio.
Crea una rama con tu cambio:
git checkout -b feature/mi-cambio
Realiza tus cambios y haz commit:
git commit -m "feat: agrega nueva funcionalidad"
Haz push y abre un Pull Request.
Consulta la guía de contribución para más detalles.
Agradecemos a todas las personas que han contribuido a Boxels:
kkokotero |
¿Quieres aparecer aquí? ¡Envía tu PR!
Este proyecto está licenciado bajo la MIT License.
FAQs
Librería frontend moderna, ligera y sin dependencias, con sistema reactivo propio, JSX personalizado y ciclo de vida declarativo para construir SPAs eficientes.
The npm package boxels receives a total of 0 weekly downloads. As such, boxels popularity was classified as not popular.
We found that boxels demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.