Elffuss Elffuss CodeProyecto del día
Proyecto del día · 25 de octubre de 2026

Mi slugify convertía «Año nuevo en Málaga» en «ao-nuevo-en-mlaga»

Una utilidad de cinco líneas para generar URLs, un regex que se comía las letras con tilde y un modelo local que ayudó a arreglarlo sin que el código saliera del navegador.

El IDE con IA local en el navegadorlocal · en el navegador

El encargo era pequeño: una función slugify para las URLs de un blog estático. Título dentro, slug fuera. La primera versión, escrita en diez segundos, era la de siempre: pasar a minúsculas, cambiar todo lo que no fuera a-z o 0-9 por un guion y recortar guiones de los extremos.

La probé con un título de verdad, «Año nuevo en Málaga», y salió ao-nuevo-en-mlaga. El regex no sabía qué hacer con la ñ ni con la á y las borraba sin avisar. Con el inglés habría funcionado siempre, y por eso nunca lo habría visto.

Qué hizo la IA y qué no

Abrí el IDE de Elffuss Code, pegué la función en el editor y le pedí al modelo local que me explicara qué fallaba. Lo hizo bien: normalizar a la forma NFD, separar cada letra de su acento y quitar después las marcas combinadas. Lo escribió en dos líneas.

Para comprobarlo no me fié de su palabra. Le pedí una tabla de casos y la ejecuté en el propio navegador:

El fallo que quedaba

Dos títulos distintos, «Cumplo un año» y «Cumplo un ano», acababan en la misma URL, y el segundo pisaba al primero al generar el sitio. La normalización arreglaba el síntoma, pero metía una colisión nueva. El modelo no la había mencionado, y tampoco se lo había preguntado.

Se lo planteé después, ya con el caso delante. Propuso lo que haría cualquiera: llevar un registro de los slugs ya usados y añadir -2, -3 cuando se repitan. Lo escribimos y añadí un test con los dos títulos. Pasó a la primera. Lo que sí tuve que decidir yo fue si la ñ debía convertirse en n o en ni. Elegí la n, que es lo que esperan los lectores y lo que hace la mayoría de las herramientas.

Por qué me importó que fuera local

Esos títulos eran de un blog que aún no estaba publicado. Uno hablaba de un cliente concreto. Pegar borradores y código a medio hacer en un servicio remoto no es un drama, pero tampoco es algo que quiera hacer por costumbre, y menos con un trabajo de pago.

Aquí el modelo corría sobre la GPU del propio navegador. Código, títulos y preguntas se quedaron en la pestaña. No hizo falta cuenta ni cuota, y la pestaña siguió funcionando con el wifi apagado. Resulta un detalle práctico cuando trabajas en un tren.

Lo que me llevé

Un regex que «funciona» lo hace con los ejemplos que tú imaginas. El modelo me ahorró buscar la sintaxis de \p{M}, pero la prueba que destapó la colisión salió de poner juntos dos títulos reales. Con una IA local la pregunta de más sale gratis: puedes insistir diez veces sin pensar en el coste ni en quién lee lo que preguntas.

Abre Elffuss Code, pega tu función y pruébala con datos reales: corre en el navegador, sobre tu GPU, y ni tu código ni tus preguntas se suben a ningún sitio.

Abrir Code →
nada de esto se sube a ningún sitio