// STACK TECNOLÓGICO — Logos/iconos de tecnologías const stackCategories = [ { title: 'Frontend', color: '#22D3EE', items: [ { n: 'React', icon: }, { n: 'Next.js', icon: }, { n: 'TypeScript', icon: }, { n: 'Vue', icon: }, { n: 'Tailwind', icon: }, ], }, { title: 'Backend', color: '#4F8CFF', items: [ { n: 'Node.js', icon: }, { n: 'NestJS', icon: }, { n: 'Laravel', icon: }, { n: 'Python', icon: }, { n: '.NET', icon: }, ], }, { title: 'Datos & Infra', color: '#A855F7', items: [ { n: 'PostgreSQL', icon: <> }, { n: 'MySQL', icon: <> }, { n: 'MongoDB', icon: }, { n: 'Docker', icon: <> }, { n: 'AWS', icon: <> }, ], }, { title: 'Móvil', color: '#4F8CFF', items: [ { n: 'React Native', icon: <> }, { n: 'Flutter', icon: }, { n: 'Swift', icon: }, { n: 'Kotlin', icon: }, ], }, ]; function TechBadge({ item, color }) { return (
{ e.currentTarget.style.borderColor = `${color}66`; e.currentTarget.style.boxShadow = `0 0 30px ${color}33`; e.currentTarget.style.transform = 'translateY(-3px)'; }} onMouseLeave={(e)=>{ e.currentTarget.style.borderColor = 'var(--line)'; e.currentTarget.style.boxShadow = 'none'; e.currentTarget.style.transform = 'none'; }} >
{item.icon}
{item.n}
); } function Stack() { return (
Stack tecnológico

Las herramientas correctas para cada problema.

No somos religiosos con un solo stack. Elegimos tecnologías estables, con comunidad sólida y que permiten que tu sistema siga evolucionando dentro de 5 o 10 años.

{stackCategories.map(cat => (
{cat.title}
{cat.items.map(it => )}
))}
); } window.Stack = Stack;