De idea a producción, limpio.

Full-stack con Next.js y TypeScript. Foco en claridad, rendimiento y sistemas que aguantan con el tiempo.

Diseño calmado. Sistemas sólidos.

De cero a producción.

Next.jsTypeScriptSupabaseOpenAIn8n
Roberto, desarrollador full-stack
Detalle personal

Sólido, sin ruido

Trabajo

Una selección cuidada — suficiente para ver cómo pienso y entrego.

Vista general de la plataforma Uriach You

Uriach You — Plataforma B2B para farmacias

Plataforma B2B para farmacias: formación, novedades y analítica.

Biblioteca de componentes y sistema UI Yuma

Yuma — UI Kit y Design System de ISDIN

Sistema y librería de componentes con foco en consistencia y accesibilidad.

Interfaz de Vinci para financiación con tokens

Vinci — Financiación musical Web3 con ERC-20

Financiación Web3 para artistas con tokens ERC-20 y beneficios.

Dashboard del portal B2B Selfcare

Selfcare — Portal de gestión Telco

Portal B2B autoservicio para líneas, suscripciones y consumo.

Stack

Una caja de herramientas modular — elegida por velocidad, claridad y mantenibilidad a largo plazo.

Fragmento de código Next.js

Next.js (App Router)

  • Fronteras server/client con patrones predecibles
  • ISR y revalidación on-demand cuando el contenido importa
  • Rendimiento y accesibilidad por defecto
Next.jsApp RouterRSCISR
Dashboard de despliegues y previews en Vercel

Vercel

  • Despliegues serverless con previews por defecto
  • Seguro por diseño: entornos aislados, releases limpias y rollbacks fáciles
VercelServerlessPreviewSecurity
Ejemplo de componentes shadcn/ui

shadcn/ui

  • Primitivas de UI componibles con control real
  • Builds rápidos y lenguaje visual consistente
shadcn/uiRadixTailwindUI System
Pipeline de contenido del CMS

Sanity CMS

  • Modelado de contenido estructurado
  • Flujo editorial + revalidación por webhooks
SanityWebhooksContent
Flujo de integración con OpenAI

OpenAI (flujos asistidos por IA)

  • IA como asistente dentro de flujos de producto
  • Chunking, resúmenes y salidas estructuradas
  • UX honesta: asistiva, no manipulativa
OpenAIStructured outputUX
Diagrama entidad-relación de Postgres

Supabase + Postgres

  • Esquemas relacionales, constraints y ownership claro
  • Patrones de auth/storage que permiten entregar rápido
  • Fronteras de seguridad pragmáticas
PostgresSupabaseRLS
Interfaz de Typesense para búsqueda

Typesense

  • Búsqueda rápida, tolerante a errores, con resultados instantáneos
  • Indexación simple y ajuste de relevancia predecible
TypesenseSearchIndexingRelevance
Flujo de automatización en n8n

n8n (Automatización)

  • Automatizaciones y glue code sin scripts frágiles
  • Flujos event-driven
n8nWebhooksOps

Sistemas

Pienso en restricciones y trade-offs: mantenibilidad, fiabilidad y coste.

Arquitectura

  • Prefiero módulos componibles frente a monolitos de features.
  • Hago explícitos el routing y las fronteras de contenido.
  • Optimizo para el cambio: dependencias claras, mínimo acoplamiento.

Datos

  • Relacional primero: esquemas Postgres que dicen la verdad.
  • Índices, constraints, ownership y trazabilidad.
  • Guarda lo consultable; serializa lo inevitable.

Fiabilidad

  • Jobs idempotentes, reintentos y pipelines observables.
  • Separación entre coordinación y cómputo.
  • Fallar claro; recuperar rápido.

DX y Seguridad

  • Interfaces tipadas, entornos predecibles y logs limpios.
  • Integridad de sesión server-side y permisos conservadores.
  • Threat modeling pragmático, sin paranoia.

Notas

Notas sobre construir sistemas, entregar trabajo y mantener la complejidad a raya.

ISR con webhooks de Sanity en Next.js

Un patrón práctico para revalidar páginas sin romper el flujo editorial.

Esquemas Postgres que siguen siendo legibles

Constraints y ownership como parte del producto — no como un añadido final.

Pipelines de automatización: coordinación vs cómputo

Escala separando orquestación barata de workers de cómputo pesado.

Sobre mí

Oficio por encima del drama.

Soy desarrollador full-stack y valoro la claridad por encima del ruido. Construyo sistemas que resisten el cambio: fronteras limpias, modelos de datos honestos e interfaces que no pelean con el usuario. Entrego y luego itero con disciplina.

  • Menos fricción, más flujo.
  • El diseño es cómo se usa.
  • Construir para iterar.

Contacto

Si quieres hablar de producto, arquitectura o ejecución con rigor, escríbeme.

roberto@rrios.dev