kit:web-frameworks

Construa com Next.js (App Router, RSC, SSR, ISR), monorepos Turborepo. Use para aplicativos React, renderização no servidor, otimização de build, estratégias de cache e dependências compartilhadas.

O que é kit:web-frameworks?

Este pacote de habilidades fornece um guia completo para construir aplicações web full-stack modernas usando Next.js, Turborepo e RemixIcon. Ele abrange desde a configuração inicial de projetos individuais ou monorepos até padrões avançados como componentes compartilhados e fetching de dados otimizado. A skill é ideal para desenvolvedores que desejam criar desde sites de comércio eletrônico e SaaS até plataformas multi-inquilino e sistemas de design, aproveitando o poder do SSR, SSG e RSC do Next.js, a orquestração eficiente de builds do Turborepo e a vasta biblioteca de ícones do RemixIcon. O conteúdo detalha guias de início rápido, comparações de funcionalidades, fluxos de trabalho comuns (como monorepos e pipelines CI/CD) e melhores práticas para cada ferramenta, funcionando perfeitamente em ambientes como Claude Code, Cursor e Codex para auxiliar no desenvolvimento de aplicações React prontas para produção.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Grupo de Habilidades de Frameworks Web

Guia completo para construir aplicações web full-stack modernas usando Next.js, Turborepo e RemixIcon.

Visão Geral

Este grupo de habilidades combina três ferramentas poderosas para desenvolvimento web:

Next.js - Framework React com SSR, SSG, RSC e recursos de otimização Turborepo - Sistema de build monorepo de alto desempenho para JavaScript/TypeScript RemixIcon - Biblioteca de ícones com mais de 3.100 ícones em estilo outline e filled

Quando Usar Este Grupo de Habilidades

  • Construir novas aplicações web full-stack com React moderno
  • Configurar monorepos com múltiplos aplicativos e pacotes compartilhados
  • Implementar renderização no lado do servidor e geração estática
  • Otimizar o desempenho do build com cache inteligente
  • Criar UI consistente com iconografia profissional
  • Gerenciar dependências do workspace em vários projetos
  • Implantar aplicações prontas para produção com otimização adequada

Guia de Seleção de Stack

Aplicativo Único: Next.js + RemixIcon

Use ao construir um aplicativo independente:

  • Sites de comércio eletrônico
  • Sites de marketing
  • Aplicações SaaS
  • Sites de documentação
  • Blogs e plataformas de conteúdo

Configuração:

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

Monorepo: Next.js + Turborepo + RemixIcon

Use ao construir múltiplos aplicativos com código compartilhado:

  • Microfrontends
  • Plataformas multi-inquilino
  • Ferramentas internas com biblioteca de componentes compartilhada
  • Múltiplos apps (web, admin, mobile-web) compartilhando lógica
  • Sistema de design com site de documentação

Configuração:

npx create-turbo@latest my-monorepo
# Em seguida, configure apps Next.js no diretório apps/
# Instale remixicon nos pacotes de UI compartilhados

Comparação de Funcionalidades do Framework

FuncionalidadeNext.jsTurborepoRemixIcon
Uso PrincipalFramework webSistema de buildÍcones de UI
Melhor ParaApps SSR/SSGMonoreposIconografia consistente
DesempenhoOtimização integradaCache e tarefas paralelasFontes/SVG leves
TypeScriptSuporte completoSuporte completoDefinições de tipo disponíveis

Início Rápido

Aplicação Next.js

# Criar novo projeto
npx create-next-app@latest my-app
cd my-app

# Instalar RemixIcon
npm install remixicon

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

# Iniciar desenvolvimento
npm run dev

Monorepo Turborepo

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

# Estrutura:
# apps/web/          - Aplicação Next.js
# apps/docs/         - Site de documentação
# packages/ui/       - Componentes compartilhados com RemixIcon
# packages/config/   - Configurações compartilhadas
# turbo.json         - Configuração do pipeline

# Executar todos os apps
npm run dev

# Build de todos os pacotes
npm run build

Integração 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" />

Navegação de Referências

Referências Next.js:

Referências Turborepo:

Referências RemixIcon:

Padrões e Fluxos de Trabalho Comuns

Padrão 1: Monorepo Full-Stack

my-monorepo/
├── apps/
│   ├── web/              # App Next.js voltado ao cliente
│   ├── admin/            # App Next.js painel admin
│   └── docs/             # Site de documentação
├── packages/
│   ├── ui/               # UI compartilhada com RemixIcon
│   ├── api-client/       # Biblioteca cliente de API
│   ├── config/           # Configurações ESLint, TypeScript
│   └── types/            # Tipos TypeScript compartilhados
└── turbo.json            # Pipeline de build

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"]
    }
  }
}

Padrão 2: Biblioteca de Componentes Compartilhados

// 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 />}>Home</Button>;
}

Padrão 3: Fetching de Dados Otimizado

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

// Geração estática no momento do build
export async function generateStaticParams() {
  const posts = await getPosts();
  return posts.map((post) => ({ slug: post.slug }));
}

// Revalidar a 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>;
}

Padrão 4: Pipeline CI/CD 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 Utilitários

Utilitários Python no diretório scripts/:

nextjs_init.py - Inicializar projeto Next.js com boas práticas turborepo_migrate.py - Converter monorepo existente para Turborepo

Exemplos de uso:

# Inicializar novo app Next.js com TypeScript e configuração recomendada
python scripts/nextjs_init.py --name my-app --typescript --app-router

# Migrar monorepo existente para Turborepo com dry-run
python scripts/turborepo_migrate.py --path ./my-monorepo --dry-run

# Executar testes
cd scripts/tests
pytest

Melhores Práticas

Next.js:

  • Padrão para Componentes Servidor, use Componentes Cliente apenas quando necessário
  • Implemente estados de carregamento e erro adequados
  • Use o componente Image para otimização automática
  • Defina metadados apropriados para SEO
  • Aproveite estratégias de cache (force-cache, revalidate, no-store)
  • Acompanhe as versões de segurança estáveis do Next.js separadamente de mudanças canary. Aplicações de produção devem permanecer em uma linha de versão estável corrigida e evitar pins canary a menos que estejam testando um problema upstream específico.

Turborepo:

  • Estruture o monorepo com separação clara (apps/, packages/)
  • Defina dependências de tarefas corretamente (^build para topológico)
  • Configure outputs para cache adequado
  • Ative cache remoto para colaboração em equipe
  • Use filtros para executar tarefas apenas em pacotes alterados

RemixIcon:

  • Use estilo line para interfaces minimalistas, fill para destaque
  • Mantenha alinhamento da grade 24x24 para renderização nítida
  • Forneça aria-labels para acessibilidade
  • Use currentColor para theming flexível
  • Prefira webfonts para múltiplos ícones, SVG para ícones únicos

Recursos

Checklist de Implementação

Construindo com esta stack:

  • Criar estrutura do projeto (app único ou monorepo)
  • Configurar TypeScript e ESLint
  • Configurar Next.js com App Router
  • Configurar pipeline Turborepo (se monorepo)
  • Instalar e configurar RemixIcon
  • Implementar roteamento e layouts
  • Adicionar estados de carregamento e erro
  • Configurar otimização de imagens e fontes
  • Configurar padrões de fetching de dados
  • Configurar estratégias de cache
  • Adicionar rotas de API conforme necessário
  • Implementar biblioteca de componentes compartilhada (se monorepo)
  • Configurar cache remoto (se monorepo)
  • Configurar pipeline CI/CD
  • Configurar plataforma de deployment

Habilidades Relacionadas