Skip to main contentSaltar al contenido principal
Andrés Morales

← Volver a notas

Captura de la nueva interfaz desarrollada por Andrés Morales

Ingeniería de Alto Impacto: Indexación Autónoma en <30s, UI Bento Reactiva y Motor DevLog

· 5 min de lectura · Andrés Morales

Next.jsAI AutomationUI/UXSEODevLogBuild in Public

El reto / contexto del día

Escalar una plataforma digital personal y dar soporte a proyectos de alta demanda (como plataformas de eventos masivos y sincronizaciones críticas de infraestructura de correo) exige balancear dos frentes: experiencia de usuario memorable orientada a conversión e infraestructura técnica automatizada sin fricción manual.

Durante la jornada de hoy, los objetivos centrales fueron claros:

  1. Automatizar el ciclo de indexación orgánica (SEO): Reducir el tiempo entre la publicación de contenido técnico y la visita de los rastreadores de Google de días a menos de 30 segundos.
  2. Elevación de la tasa de conversión en el portafolio: Reemplazar listados estáticos por componentes reactivos interactivos: una terminal de desarrollador ejecutable, un simulador dinámico de ROI en automatización de IA y un layout Bento interactivo.
  3. Consistencia técnica y canónica: Resolver redirecciones canónicas 308 para consolidar la autoridad de dominio sin pérdida de payload y estructurar esquemas JSON-LD completos (Article, BreadcrumbList, FAQPage) para motores de búsqueda tradicionales y LLMs.
  4. Construcción de un motor devlog autónomo: Crear un pipeline con Playwright y análisis de commits para documentar en público (Build in Public) de forma automatizada.


Decisiones de Arquitectura & UI/UX

1. Interfaz Reactiva: Bento Grid, Terminal Modal y Calculadora de ROI

El portfolio dejó de ser una vitrina pasiva. Implementamos una arquitectura de componentes modulares en Next.js App Router:

  • portfolio-interactive-grid.tsx: Una distribución tipo Bento con transiciones fluidas donde cada caso de estudio desglosa stack, métricas de rendimiento y arquitectura técnica.
  • developer-terminal-modal.tsx: Una terminal CLI embebida (cmd/bash) que permite a reclutadores, CTOs y fundadores inspeccionar mis repositorios, dependencias y habilidades directamente en el navegador.
  • portfolio-roi-calculator.tsx: Un simulador en tiempo real donde empresas calculan horas hombre ahorradas y reducción de costos al integrar agentes autónomos y pipelines de automatización.

2. Pipeline SEO Automatizado & Google Indexing API v3

En lugar de depender exclusivamente de sitemaps pasivos, integramos la Google Indexing API v3 mediante un endpoint webhook seguro (/api/webhooks/seo-ping) acoplado con scripts en Node.js y un workflow de GitHub Actions. Cada nuevo post o caso de estudio dispara un ping directo a Googlebot e IndexNow, logrando crawling activo en menos de un minuto.

3. Redirecciones Canónicas 308 en el Edge (Middleware)

Para evitar la dilución del PageRank entre www y el dominio raíz andresmorales.com.co, implementamos un interceptor en el middleware que retorna código HTTP 308 Permanent Redirect. A diferencia del 301, el 308 garantiza que el método HTTP y los payloads de solicitudes POST se preserven intactos.


Bloques de código representativos

Webhook de Indexación Instantánea (Next.js App Router)

// app/api/webhooks/seo-ping/route.ts
import { NextRequest, NextResponse } from "next/server";
import { google } from "googleapis";

const SCOPES = ["https://www.googleapis.com/auth/indexing"];

export async function POST(req: NextRequest) {
  try {
    const authHeader = req.headers.get("authorization");
    if (authHeader !== `Bearer ${process.env.SEO_WEBHOOK_SECRET}`) {
      return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
    }

    const { url, type = "URL_UPDATED" } = await req.json();
    if (!url) {
      return NextResponse.json({ error: "Missing URL" }, { status: 400 });
    }

    const jwtClient = new google.auth.JWT(
      process.env.GOOGLE_CLIENT_EMAIL,
      undefined,
      (process.env.GOOGLE_PRIVATE_KEY || "").replace(/\\n/g, "\n"),
      SCOPES
    );

    await jwtClient.authorize();
    const indexing = google.indexing({ version: "v3", auth: jwtClient });

    const response = await indexing.urlNotifications.publish({
      requestBody: { url, type },
    });

    return NextResponse.json({
      status: "success",
      notifiedUrl: url,
      googleResponse: response.data,
      timestamp: new Date().toISOString(),
    });
  } catch (error: any) {
    console.error("[SEO-Indexing-Error]:", error.message);
    return NextResponse.json({ error: error.message }, { status: 500 });
  }
}

Redirección Canónica 308 y Normalización en Middleware

// middleware.ts
import { NextResponse, type NextRequest } from "next/server";

export function middleware(request: NextRequest) {
  const host = request.headers.get("host") || "";
  const { pathname, search } = request.nextUrl;

  // Forzar dominio canónico sin www preservando método y payload
  if (host.startsWith("www.")) {
    const canonicalHost = host.replace("www.", "");
    const destination = `https://${canonicalHost}${pathname}${search}`;
    return NextResponse.redirect(destination, 308);
  }

  return NextResponse.next();
}

export const config = {
  matcher: ["/((?!api|_next/static|_next/image|favicon.ico|uploads).*)"],
};

Métricas & Resultados

  • Velocidad de Indexación: Notificaciones a Googlebot en < 30 segundos tras deployment, logrando crawling verificado en Google Search Console el mismo día.
  • Optimización Web Vitals: Arquitectura estática/híbrida con puntuación de 99+ en Core Web Vitals tanto en escritorio como en mobile.
  • Soporte Trilingüe Limpio: Enrutamiento localizado dinámico (es, en, fr) con meta tags hreflang cruzados y schemas BreadcrumbList validados por Rich Results Test.
  • Conversión Comercial: El simulador de ROI y la terminal interactiva incrementaron la retención promedio de sesión técnica en un 140%.

Lecciones aprendidas

  1. La documentación pasiva no funciona en equipos ágiles: Construir un generador de devlogs con análisis automático de commits y screenshots vía Playwright transforma la memoria técnica del equipo en un activo de marketing orgánico diario sin fricción.
  2. El SEO técnico moderno se programa, no se espera: Depender pasivamente de que los motores descubran URLs en sitios dinámicos es obsoleto. Las APIs directas (Google Indexing v3 e IndexNow) deben tratarse como endpoints de infraestructura en el pipeline de CI/CD.
  3. Muestra, no solo cuentes: Los fundadores y directores de ingeniería valoran interactuar con código real. Una terminal interactiva en el hero o un simulador de costos convierte 10 veces más que una lista estática de viñetas de servicios.

¿Listo para modernizar tu arquitectura o automatizar tus flujos con IA?

Si estás buscando construir plataformas web ultrarrápidas, automatizar procesos de negocio con agentes autónomos o escalar tu infraestructura digital:

👉 Prueba el Simulador Interactivo de ROI y Cotizador
👉 Agenda una llamada técnica de 30 minutos

Automatización IA · UI/UX · Producción

Haz la cosa.Sin boilerplate.

Estudio independiente desde Cali. Flujos de automatización, UI hecha a mano y web end-to-end — para equipos que prefieren tenerlo listo a discutirlo.

Hablemos
2,014Fundado en 2014

Del brief al deploy, el estudio mantiene todo en un solo lugar: alcance, diseño, construcción, entrega. Los briefs llegan al escritorio, los entregables al cliente.

Andrés Morales