Blog

Notas técnicas sobre arquitectura, producto y plataforma. No están escritas como posts lineales: están pensadas para leerse en el visor del editor, con outline, tablas, diagramas y bloques de decisión.

Note

Si sólo tienes dos minutos, usa la tabla de abajo. Si estás dentro del editor, abre el outline: cada artículo está estructurado para saltar directamente al diagrama, al marco de decisión o al checklist.

Mapa rápido

Si quieres entender... Lee esto Qué te llevas
Cómo reducir deuda técnica repetida De tres renderers a uno Un patrón para extraer una librería compartida sin romper consumidores
Cuándo usar microservicio ¿Microservicio o librería compartida? Un árbol de decisión para separar reuso, secretos, cómputo y operación
Cómo una persona puede sostener varios productos Construye plataforma, no producto Un mapa de primitivas reutilizables y límites contra el monolito
Cómo validar un SaaS antes de venderlo Dogfooding a dos niveles Un modelo de pruebas internas con riesgo bajo y exigencia alta
Cómo convertir un editor en una plataforma De Notipad Editor a Notipad Publish Cómo extraer render, estilos y servicios compartidos sin perder experiencia de producto
Cómo proteger el tráfico público antes del lanzamiento El edge como perímetro Un análisis de WAF, rate limits y origin bypass con mirada DevOps/SRE
Cómo endurecer una app pequeña antes de invitar usuarios Lanzar una app pequeña no significa saltarse producción Un checklist real de dominio canónico, BFF, APIs, secrets, seed y operación
Cómo enviar emails de varios productos sin duplicar servicios Email transaccional multi-tenant Un patrón para tenant, dominio, marca, Resend y links de acción consistentes
El momento en que un servicio compartido aprendió a distinguir productos El servicio de auth aprendió a qué producto estaba sirviendo Cómo añadir contexto de producto a un servicio compartido cambia todo lo que viene después
Cuándo los ficheros de configuración estáticos dejan de ser suficientes Del fichero de config al registro vivo Por qué un catálogo de productos reemplaza N ficheros de config en N servicios
Por qué el 2FA importa incluso cuando eres el único operador 2FA antes de cualquier mutación de admin Una decisión de seguridad corta sobre proteger escrituras de forma distinta a lecturas
Cómo la identidad visual cierra una cadena técnica El logo que cierra la cadena La última pieza que conecta admin, email y página de auth a través de un logo compartido
Cómo un Worker enruta varios subdominios canónicos de API Un Worker, tres subdominios de API Un Cloudflare Worker como capa de enrutamiento que deja los backends libres para moverse
Cuándo el directo deja de poder puntuar por intuición El directo ya no puede mentir sobre los puntos Como Ultimate Porra alineo scoring oficial, estado live y explicacion visible de puntos
Cuándo la superficie publica deja de poder depender del arranque o del build La superficie publica ya no puede ser un efecto secundario Como analytics, publish contract y dominio canonico convirtieron la web publica en operacion real
Qué pasa con el contenido publicado Qué se envía al servidor cuando publicas Un flujo de datos claro para explicar privacidad y arquitectura
Por qué mover código compartido cambia más que imports Mover una pieza compartida no es cambiar una ruta Cómo una extracción a packages obligó a alinear propiedad, setup y operación del workspace
Cuándo una demo empieza a exigir disciplina de producto Cuando un experimento empieza a comportarse como producto Cómo Reveal It y Loop It Synth forzaron a alinear UX, estado, pruebas y despliegue
Por qué una nota terminada todavia puede no estar publicada Escribir no es publicar Cómo permisos, identidad y credenciales convierten documentacion lista en publicacion real
Cuándo los "datos del torneo" dejan de ser solo datos Cuando los datos de referencia se vuelven logica de producto Cómo favoritos, horarios FIFA y eventos oficiales pasaron a bloquear votos y recalcular bonus
Por que un backoffice deja de caber en la app publica El admin no es una pestana mas Como Ultimate Porra separo admin, dominio y reglas para fijar una frontera de producto
Cuándo una tarjeta de voto deja de ser un formulario minimo Votar ya no es solo poner un marcador Como Ultimate Porra empezo a hacer visibles tiempo, puntos y bonus antes de poder escalar a mas competiciones
Cuándo el bonus deja de poder esconderse en el total El bonus ya no puede vivir escondido Como Ultimate Porra paso de autosave implicito a bonus visible, editable y puntuado por campo
Cuándo una porra necesita explicar el partido mientras ocurre La porra ya tiene que explicar el partido en directo Como Ultimate Porra anadio portada viva, puntos provisionales y estadisticas para seguir y jugar a la vez
Cuándo una partida deja de ser solo una invitacion Una partida ya no es solo un enlace de invitacion Como Ultimate Porra paso a tratar la partida como objeto completo: entrar, copiar, configurar y administrar
Cuándo una partida publica deja de ser desechable Una partida publica ya no puede ser desechable Como Ultimate Porra anadio joins bloqueados, borrado seguro, restore y scoring consistente para operar partidas reales

La línea argumental

flowchart LR deuda["Renderer duplicado"] --> core["Core de render compartido"] core --> decision["Librería o servicio"] decision --> platform["Primitivas de plataforma"] platform --> dogfood["Dogfood nivel 0 y 1"] dogfood --> publish["Editor hacia Publish"] publish --> edge["Edge como perímetro"] edge --> launch["Launch hardening"] launch --> email["Email multi-tenant"] email --> productaware["Auth reconoce el producto"] productaware --> registry["Fichero de config → registro vivo"] registry --> twofa["2FA en escrituras"] registry --> logo["El logo cierra la cadena"] logo --> gateway["Un Worker, tres subdominios"] gateway --> workspace["Pieza compartida -> packages"] email --> privacy["Promesa de datos y privacidad"]

Los artículos siguen el proyecto a medida que creció: desde la deuda del renderer hasta las primitivas de plataforma, pasando por un lanzamiento real, y dentro de la iteración que vino después — hacer que los servicios compartidos reconocieran el producto, reemplazar config estática por un registro vivo, y cerrar las brechas que solo aparecen cuando dos productos comparten la misma infraestructura.

Artículos

Arquitectura del renderer

Producto y plataforma

Seguridad y operaciones

Cómo están escritos estos documentos

Cada artículo usa Markdown portable con bloques que el visor del editor ya entiende:

  • Diagramas para explicar flujos y dependencias.
  • Tablas para comparar opciones y contratos.
  • Alertas > [!...] para separar decisiones, riesgos y reglas.
  • Columnas :::columns para leer comparaciones en paralelo.
  • Bloques plegables <details> para checklists y notas de implementación.

¿Quieres recibir avisos cuando publique nuevos artículos? Escríbeme: nikki@notipad.com.