CommunityProgramación y desarrollogithub.com

kit:web-frameworks

Construye con Next.js (App Router, RSC, SSR, ISR) y monorepos Turborepo. Útil para aplicaciones React, renderizado del lado del servidor, optimización de compilación, estrategias de caché y dependencias compartidas.

¿Qué es kit:web-frameworks?

Este grupo de habilidades combina Next.js, Turborepo y RemixIcon para construir aplicaciones web modernas de pila completa. Está diseñado para desarrolladores que usan React con renderizado del lado del servidor (SSR), generación de sitios estáticos (SSG) y componentes de servidor (RSC). Incluye guías para configurar monorepos con Turborepo, optimizar rendimiento con caché inteligente y mantener una interfaz de usuario consistente con más de 3,100 iconos de RemixIcon. Funciona en plataformas como Cursor y ayudas de codificación con Claude, ofreciendo referencias detalladas para el enrutamiento de App Router, pipelines de tareas, integración de iconos y estrategias de obtención de datos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/darrenak403/kit-skills/tree/HEAD/skills/kit-web-frameworks

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Grupo de Habilidades de Frameworks Web

Guía completa para construir aplicaciones web modernas de pila completa usando Next.js, Turborepo y RemixIcon.

Resumen

Este grupo de habilidades combina tres herramientas potentes para el desarrollo web:

Next.js - Framework de React con SSR, SSG, RSC y funcionalidades de optimización Turborepo - Sistema de compilación de monorepo de alto rendimiento para JavaScript/TypeScript RemixIcon - Biblioteca de iconos con más de 3,100 iconos con estilo de contorno y relleno

Cuándo usar este grupo de habilidades

  • Construir nuevas aplicaciones web de pila completa con React moderno
  • Configurar monorepos con múltiples aplicaciones y paquetes compartidos
  • Implementar renderizado del lado del servidor y generación estática
  • Optimizar el rendimiento de compilación con caché inteligente
  • Crear una interfaz de usuario consistente con iconografía profesional
  • Gestionar dependencias entre espacios de trabajo en varios proyectos
  • Desplegar aplicaciones listas para producción con optimización adecuada

Guía de selección de stack

Aplicación única: Next.js + RemixIcon

Úsalo al construir una aplicación independiente:

  • Sitios de comercio electrónico
  • Sitios web de marketing
  • Aplicaciones SaaS
  • Sitios de documentación
  • Blogs y plataformas de contenido

Configuración:

npx create-next-app@latest my-app
cd my-app
npm install remixicon

Monorepo: Next.js + Turborepo + RemixIcon

Úsalo al construir múltiples aplicaciones con código compartido:

  • Microfrontends
  • Plataformas multiinquilino
  • Herramientas internas con biblioteca de componentes compartida
  • Múltiples aplicaciones (web, admin, móvil-web) compartiendo lógica
  • Sistema de diseño con sitio de documentación

Configuración:

npx create-turbo@latest my-monorepo
# Luego configurar aplicaciones Next.js en el directorio apps/
# Instalar remixicon en paquetes de UI compartidos

Comparación de funcionalidades de frameworks

FuncionalidadNext.jsTurborepoRemixIcon
Uso principalFramework webSistema de compilaciónIconos de UI
Mejor paraAplicaciones SSR/SSGMonoreposIconografía consistente
RendimientoOptimización incorporadaCaché y tareas paralelasFuentes/SVG ligeros
TypeScriptSoporte completoSoporte completoDefiniciones de tipos disponibles

Inicio rápido

Aplicación Next.js

# Crear nuevo proyecto
npx create-next-app@latest my-app
cd my-app

# Instalar RemixIcon
npm install remixicon

# Importar en layout
# app/layout.tsx
import 'remixicon/fonts/remixicon.css'

# Iniciar desarrollo
npm run dev

Monorepo Turborepo

# Crear monorepo
npx create-turbo@latest my-monorepo
cd my-monorepo

# Estructura:
# apps/web/          - Aplicación Next.js
# apps/docs/         - Sitio de documentación
# packages/ui/       - Componentes compartidos con RemixIcon
# packages/config/   - Configuraciones compartidas
# turbo.json         - Configuración de pipelines

# Ejecutar todas las apps
npm run dev

# Compilar todos los paquetes
npm run build

Integración de RemixIcon

// Webfont (HTML/CSS)
<i className="ri-home-line"></i>
<i className="ri-search-fill ri-2x"></i>

// Componente React
import { RiHomeLine, RiSearchFill } from "@remixicon/react"
<RiHomeLine size={24} />
<RiSearchFill size={32} color="blue" />

Navegación de referencias

Referencias de Next.js:

Referencias de Turborepo:

Referencias de RemixIcon:

Patrones y Flujos de Trabajo Comunes

Patrón 1: Monorepo de Pila Completa

my-monorepo/
├── apps/
│   ├── web/              # App Next.js orientada al cliente
│   ├── admin/            # App Next.js para panel de administración
│   └── docs/             # Sitio de documentación
├── packages/
│   ├── ui/               # UI compartida con RemixIcon
│   ├── api-client/       # Biblioteca de cliente API
│   ├── config/           # Configuraciones de ESLint, TypeScript
│   └── types/            # Tipos TypeScript compartidos
└── turbo.json            # Pipeline de compilación

turbo.json:

{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": [".next/**", "!.next/cache/**", "dist/**"]
    },
    "dev": {
      "cache": false,
      "persistent": true
    },
    "lint": {},
    "test": {
      "dependsOn": ["build"]
    }
  }
}

Patrón 2: Biblioteca de Componentes Compartida

// packages/ui/src/button.tsx
import { RiLoader4Line } from "@remixicon/react";

export function Button({ children, loading, icon }) {
  return (
    <button>
      {loading ? <RiLoader4Line className="animate-spin" /> : icon}
      {children}
    </button>
  );
}

// apps/web/app/page.tsx
import { Button } from "@repo/ui/button";
import { RiHomeLine } from "@remixicon/react";

export default function Page() {
  return <Button icon={<RiHomeLine />}>Inicio</Button>;
}

Patrón 3: Obtención de Datos Optimizada

// app/posts/[slug]/page.tsx
import { notFound } from "next/navigation";

// Generación estática en tiempo de compilación
export async function generateStaticParams() {
  const posts = await getPosts();
  return posts.map((post) => ({ slug: post.slug }));
}

// Revalidar cada hora
async function getPost(slug: string) {
  const res = await fetch(`https://api.example.com/posts/${slug}`, {
    next: { revalidate: 3600 },
  });
  if (!res.ok) return null;
  return res.json();
}

export default async function Post({ params }: { params: { slug: string } }) {
  const post = await getPost(params.slug);
  if (!post) notFound();

  return <article>{post.content}</article>;
}

Patrón 4: Pipeline CI/CD de Monorepo

# .github/workflows/ci.yml
name: CI
on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 18
      - run: npm install
      - run: npx turbo run build test lint
        env:
          TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
          TURBO_TEAM: ${{ secrets.TURBO_TEAM }}

Scripts de Utilidad

Utilidades de Python en el directorio scripts/:

nextjs_init.py - Inicializar proyecto Next.js con mejores prácticas turborepo_migrate.py - Convertir un monorepo existente a Turborepo

Ejemplos de uso:

# Inicializar nueva app Next.js con TypeScript y configuración recomendada
python scripts/nextjs_init.py --name my-app --typescript --app-router

# Migrar monorepo existente a Turborepo con simulación
python scripts/turborepo_migrate.py --path ./my-monorepo --dry-run

# Ejecutar pruebas
cd scripts/tests
pytest

Mejores Prácticas

Next.js:

  • Por defecto usa Componentes de Servidor, usa Componentes de Cliente solo cuando sea necesario
  • Implementa estados de carga y error adecuados
  • Usa el componente Image para optimización automática
  • Configura metadatos adecuados para SEO
  • Aprovecha las estrategias de caché (force-cache, revalidate, no-store)
  • Realiza un seguimiento de las versiones estables de seguridad de Next.js por separado del desvío del framework canary. Las aplicaciones de producción deben permanecer en una línea estable parcheada y evitar dependencias exclusivas de canary a menos que se esté probando un problema específico de origen.

Turborepo:

  • Estructura el monorepo con separación clara (apps/, packages/)
  • Define correctamente las dependencias de tareas (^build para topológico)
  • Configura las salidas para un caché adecuado
  • Habilita el caché remoto para colaboración en equipo
  • Usa filtros para ejecutar solo tareas en paquetes modificados

RemixIcon:

  • Usa estilo de línea para interfaces minimalistas, relleno para énfasis
  • Mantén una alineación de cuadrícula de 24x24 para un renderizado nítido
  • Proporciona etiquetas aria para accesibilidad
  • Usa currentColor para theming flexible
  • Prefiere fuentes web para múltiples iconos, SVG para iconos individuales

Recursos

Lista de Verificación de Implementación

Construyendo con este stack:

  • Crear estructura del proyecto (app única o monorepo)
  • Configurar TypeScript y ESLint
  • Configurar Next.js con App Router
  • Configurar pipeline de Turborepo (si es monorepo)
  • Instalar y configurar RemixIcon
  • Implementar enrutamiento y layouts
  • Agregar estados de carga y error
  • Configurar optimización de imágenes y fuentes
  • Configurar patrones de obtención de datos
  • Configurar estrategias de almacenamiento en caché
  • Agregar rutas de API según sea necesario
  • Implementar biblioteca de componentes compartida (si es monorepo)
  • Configurar caché remota (si es monorepo)
  • Configurar pipeline CI/CD
  • Configurar plataforma de despliegue

Skills relacionados