Versión 0.0.5 - Beta

El Framework JS para
Desarrolladores Modernos.

Una estructura potente basada en Express y React, diseñada para crear aplicaciones rápidas con componentes hidratados (Islands) y todo lo que necesitas pre-configurado.

Ver Documentación
npm install @seip/blue-bird

La Filosofía Blue Bird

¿Cansado de configurar CORS, Body Parsers, Cookies y Routing cada vez que inicias un proyecto? Blue Bird provee una base sólida y pre-configurada para que vayas directo a la lógica, sin perder la extensibilidad pura de Express.

⚡ Todo Incluido

Express, React (con Islas), Validaciones, JWT Auth y Uploads listos para usar.

💎 Flexible

Usa el método `.use()` para configurar middleware de Express tal como lo haces siempre.

Características Principales

Diseñado para escalar con elegancia.

JWT Auth Integrado

Generación y validación de tokens con middleware listo para proteger tus rutas API o Web.

Validación de Datos

Motor de validación multi-idioma con reglas predefinidas y mensajes automáticos.

Upload Helpers

Subida de archivos a disco facilitada por Multer, configurada para tu carpeta pública.

React

React y React Router pre-configurados para SPA, Islands o páginas tradicionales.

Vite

Vite listo para usar, optimizado para desarrollo y producción.

Ex

Express

Express pre-configurado para modo API o modo Web tradicional.

Referencia Técnica

Todo sobre la API Core de Blue Bird.

Init Inicializar App

Inicializa tu aplicación Blue Bird.

npx blue-bird

React Configuración React

Configura React para tu aplicación Blue Bird.

npm run react

Dev Configuración Dev (Express + Vite)

Inicia el servidor backend:

npm run dev

Inicia el servidor frontend (Vite):

npm run vite:dev

App Clase App principal

Configuración central de tu servidor Express.

import App from "@seip/blue-bird/core/app.js";
import routerUsers from "./routes/users.js";

const app = new App({
    port: 3000,
    routes: [routerUsers],
    cors: { origin: '*' }
});

// Extiende Express con .use()
app.use(myCustomMiddleware);
//Ó app.set(key,value) Ejemplo: app.set('view engine', 'ejs');

app.run();
Opción Tipo Default
port Number 3001
host String "http://localhost"
routes Array []
middlewares Array []
logger Boolean true
json Boolean true
static Object public (default)
cookieParser Boolean true

R Router

Maneja tus rutas de forma modular y límpia.

import Router from "@seip/blue-bird/core/router.js";
import Template from "@seip/blue-bird/core/template.js";

const routerUsers = new Router("/")

routerUsers.get("*", (req, res) => {
    // Renderizado SPA con React
    return Template.renderReact(res, "App", { title: "Mi Proyecto" });
})

export default routerUsers;

T Template & React

Renderiza vistas completas o componentes react hidratados (Islands) con un solo método.

import Template from "@seip/blue-bird/core/template.js";

router.get("/", (req, res) => {
    // Renderiza el componente 'Home' con props iniciales
    return Template.renderReact(res, "Home", { title: "Mi App" });
});

V Validación

import Validator from "@seip/blue-bird/core/validate.js";

const schema = {
    email: { required: true, email: true },
    password: { required: true, min: 6 }
};

const validate = new Validator(schema, 'es');

router.post("/register", validate.middleware(), (req, res) => {
    res.json({ message: "OK" });
});

Auth (JWT)

import Auth from "...";
Auth.generateToken(payload);
Auth.protect(); // Middleware

Uploads

import Upload from "...";
Upload.disk({ folder: 'img' });
// Basado en Multer