Todo Networking

Cómo empezó todo

¿Qué es Todo Networking?

TodoNetworking es uno de nuestros proyectos favoritos. No por hacer locuras de diseño, sino por todo lo que genera alrededor. A través de su comunidad hemos conocido colegas, proveedores, clientes y amigos.

Flamingo forma parte activa de TodoNetworking y, con el tiempo, construimos una relación muy cercana con Antonio, su creador. Un verdadero crack del networking y, sobre todo, una gran persona con una visión muy clara de cómo conectar gente, proyectos y oportunidades.

El problema

¿Por qué nos contrataron?

El proyecto tenía varios frentes abiertos al mismo tiempo. Por un lado, la web necesitaba una mejora clara a nivel comunicacional, estético y funcional. Por otro, TodoNetworking requería una plataforma ágil para comunicar novedades y eventos sin depender de procesos complejos.

Además, Antonio necesitaba algo clave como empresario: control y claridad sobre temas técnicos y poco atractivos como hosting, dominios, DNS y gestión general del sitio. A eso se sumaba un desafío mayor: ordenar y dar forma a una plataforma interna de gestión de usuarios para los miembros, con precios claros y una ejecución ordenada.

Cómo lo resolvimos

¿Cómo ayudamos a Antonio?

Trabajamos en una mejora integral del sitio web, enfocándonos en claridad, usabilidad y orden. Construimos una base sólida que permite gestionar contenidos, eventos y comunicaciones de forma simple y rápida, sin fricción.

Al mismo tiempo, acompañamos a Antonio en la toma de control de toda la parte técnica del proyecto y colaboramos en el desarrollo de una plataforma interna para la gestión de usuarios y miembros, aportando estructura, precios claros y procesos definidos.

El resultado fue el esperado: TodoNetworking dio un salto de calidad visible y perceptible. Hoy el proyecto se gestiona con mayor control, claridad y autonomía. Además, este trabajo reforzó una relación sólida entre empresas, basada en colaboración, apoyo mutuo y crecimiento compartido.

") O en un plugin tipo "Insert Headers and Footers" ============================================ */document.addEventListener('DOMContentLoaded', function () {/* 1. Crear los elementos del cursor una sola vez */ var glow = document.createElement('div'); glow.id = 'custom-cursor-glow'; document.body.appendChild(glow);var cursor = document.createElement('div'); cursor.id = 'custom-cursor'; cursor.innerHTML = ''; document.body.appendChild(cursor);var cursorIcon = cursor.querySelector('i'); var cursorText = cursor.querySelector('span');/* 2. Config por variante: tamaño del circulo y tamaño de fuente al activarse */ var VARIANT_SIZE = { 'cursor-solid': 72, 'cursor-gradient': 72, 'cursor-glass': 66, 'cursor-outline': 66, 'cursor-square': 80, 'cursor-blur': 74, 'cursor-glow': 60, 'cursor-icon': 76 }; var VARIANT_FONT = { 'cursor-solid': 11, 'cursor-gradient': 11, 'cursor-glass': 11, 'cursor-outline': 10, 'cursor-square': 11, 'cursor-blur': 10, 'cursor-glow': 11, 'cursor-icon': 9 }; var ALL_VARIANTS = Object.keys(VARIANT_SIZE);/* 3. Movimiento con retardo (lerp) */ var mouseX = 0, mouseY = 0; var curX = 0, curY = 0; var ease = 0.16; var currentSize = 0; var targetSize = 0; var glowExtra = 30;document.addEventListener('mousemove', function (e) { mouseX = e.clientX; mouseY = e.clientY; });function loop() { curX += (mouseX - curX) * ease; curY += (mouseY - curY) * ease; currentSize += (targetSize - currentSize) * ease;cursor.style.opacity = currentSize > 0.5 ? '1' : '0'; cursor.style.width = currentSize + 'px'; cursor.style.height = currentSize + 'px'; cursor.style.transform = 'translate(' + (curX - currentSize / 2) + 'px,' + (curY - currentSize / 2) + 'px)'; var glowSize = currentSize > 0 ? currentSize + glowExtra : 0; glow.style.width = glowSize + 'px'; glow.style.height = glowSize + 'px'; glow.style.transform = 'translate(' + (curX - glowSize / 2) + 'px,' + (curY - glowSize / 2) + 'px)';requestAnimationFrame(loop); } loop();/* 4. Detectar hover sobre cualquier elemento con alguna clase cursor-* */ var selector = ALL_VARIANTS.map(function (v) { return '.' + v; }).join(', ');document.addEventListener('mouseover', function (e) { var target = e.target.closest(selector); if (!target) return;var variant = ALL_VARIANTS.find(function (v) { return target.classList.contains(v); }); if (!variant) return;/* limpia variantes anteriores y aplica la actual */ ALL_VARIANTS.forEach(function (v) { cursor.classList.remove(v); }); ALL_VARIANTS.forEach(function (v) { document.body.classList.remove(v); }); cursor.classList.add(variant); document.body.classList.add(variant, '__active'); target.classList.add('__active');targetSize = VARIANT_SIZE[variant] || 70;var text = target.getAttribute('data-cursor-text') || ''; var iconClass = target.getAttribute('data-cursor-icon') || ''; cursorText.textContent = text; cursorText.style.fontSize = text ? (VARIANT_FONT[variant] || 11) + 'px' : '0px'; cursorIcon.className = iconClass; cursorIcon.style.fontSize = iconClass ? (variant === 'cursor-icon' ? 16 : 14) + 'px' : '0px'; });document.addEventListener('mouseout', function (e) { var target = e.target.closest(selector); if (!target) return; var related = e.relatedTarget; if (related && target.contains(related)) return;target.classList.remove('__active'); document.body.classList.remove('__active'); ALL_VARIANTS.forEach(function (v) { document.body.classList.remove(v); }); targetSize = 0; cursorText.style.fontSize = '0px'; cursorIcon.style.fontSize = '0px'; });});