CMS amb IA nativa

Web Base

Nucli comú amb actualitzacions firmades i una web pública per client: un sol producte per instal·lar i mantenir moltes webs.

Context

Qualsevol web que vulgui posicionar necessita contingut constant: articles optimitzats, imatges ben descrites, traduccions, revisions. És feina lenta, repetitiva i cara. Els CMS clàssics resolen la publicació, però deixen la producció de contingut en mans humanes al cent per cent, i cada web de client acabava sent una instal·lació artesanal: el seu gestor, els seus pedaços, el seu manteniment a part.

Web Base ataca els dos problemes alhora. És un CMS amb intel·ligència artificial nativa —la IA no és un plugin que se li afegeix, és al cor del producte— construït sobre un backend FastAPI amb base de dades vectorial (pgvector: la base de dades guarda també el significat dels textos, no només les paraules), un panell d'administració complet i un frontend públic Astro per client. Tot s'instal·la net, des de zero, amb una ordre.

Objectius

  • Que la IA redacti, il·lustri, tradueixi i posicioni contingut amb revisió humana, no al revés.
  • Publicar de forma autònoma amb garanties: anti-duplicat textual i semàntic abans de publicar res.
  • Instal·lar la web d'un client nou neta i aïllada en minuts: repo propi, imatge pròpia, base de dades pròpia.
  • Administrar les webs des d'agents d'IA amb permisos acotats, i oferir bots conversacionals dins de la mateixa web.
  • Actualitzar el nucli de tots els clients amb un botó, amb paquets firmats criptogràficament i marxa enrere automàtica.
  • Cobrir el cicle SEO complet: metadades assistides, sitemap, multiidioma amb hreflang, dades estructurades.

La meva responsabilitat

Disseny del producte i arquitectura completa. Desenvolupament de les quatre peces: l'API de continguts amb IA i cerca semàntica (FastAPI + PostgreSQL/pgvector), el panell d'administració (React), la plantilla de webs públiques (Astro SSR) i el sistema d'actualitzacions firmades. A més de l'operació real: instal·lació, actualització i manteniment de les instal·lacions en producció.

Complexitat

Pàgina de característiques del producte

Els problemes interessants no van ser les pantalles, van ser els circuits:

  • Que la IA no inventi ni repeteixi: les publicacions autònomes passen un doble filtre antiplagi i una comparació semàntica contra el que ja està publicat (aquí és on la base vectorial fa la feina: compara significats, no paraules). El coneixement sectorial s'ingereix de fonts externes respectant el seu robots.txt, amb esquemes de dades versionats.
  • Coneixement amb memòria: el bloc alimenta un índex vectorial que serveix per al xat públic de la web, els suggeriments al redactor i l'anàlisi de la competència. Abstracció d'embeddings preparada per canviar de proveïdor sense reescriure.
  • Confiança en les actualitzacions: cada versió del nucli es firma amb Ed25519 (el mateix tipus de signatura que fan servir les distribucions Linux) i el destí verifica la signatura abans d'instal·lar res. Una versió que no arrencava va revertir sola en producció: el rollback es va provar a si mateix.
  • Servidors compartits: el DNS intern de Docker va arribar a resoldre la meva base de dades cap a la d'una altra instal·lació veïna. Ara cada projecte viu a la seva xarxa privada; només el gateway toca la xarxa pública.

Decisions principals

IA nativa a tot el cicle de contingut

Generació d'articles des d'una idea, des de contingut base o analitzant la web de la competència. Imatges generades amb descripcions alternatives fetes per visió artificial. SEO assistit que puntua l'article abans de publicar. Planificació editorial amb generació per lots, traduccions per job i calendari amb arrossegar i deixar anar. El principi del panell ho resumeix: la IA t'ajuda; tu mantens el control.

Agents i bots de primera classe

L'API exposa tokens específics per a agents externs amb permisos acotats i el seu catàleg OpenAPI: un agent pot administrar continguts sense ser un humà amb sessió. I dins de la web pública, xat conversacional sobre el contingut del lloc (RAG) amb síntesi de veu. La web no només es gestiona amb IA: es consulta amb IA.

Instal·lacions netes i aïllades

Una ordre crea el repositori del client des de la plantilla; GitHub construeix la seva imatge; l'instal·lador aixeca la instal·lació completa en una carpeta pròpia amb la seva base de dades, els seus secrets generats a l'instant i proves automàtiques que tot respon. Cap instal·lació comparteix res amb la següent.

Un nucli, moltes webs

La web pública de cada client és seva (repo i imatge propis); el nucli —API i panell— és compartit i s'actualitza una vegada per a tots, per digest firmat i amb confirmació des del propi panell del client.

Pàgina del projecte a la web del producte

Resultat

  • Nucli en producció (17 routers d'API) amb releases periòdiques firmades i CI que prova l'API a cada canvi.
  • Primera web de client real operant el circuit complet: instal·lació neta des d'imatge firmada, actualització per botó, dades reals.
  • Publicacions autònomes funcionant amb anti-duplicat semàntic; SEO assistit que va assolir puntuació màxima a proves internes.
  • Wiki pública de 14 guies, diari de desenvolupament públic i documentació viva: el producte s'explica sol.
  • Instal·lar un client: una ordre i un domini. Actualitzar el nucli: un botó. Tirar enrere: automàtic.

Aprenentatges

  • La IA ben integrada no substitueix l'humà: canvia la seva feina d'escriure-ho tot a revisar i dirigir. Per això calen validacions reals (semàntiques, d'esquema, de firma), no promeses.
  • La confiança entre sistemes no es declara, es firma: el manifest firmat va eliminar d'arrel el dubte sobre què corre a cada servidor.
  • Cap test local substitueix un client real: el DNS creuat, els permisos de sòcols i la cau del proxy només van aparèixer en producció.
  • Fallar ràpid i sorollós és una virtut en un instal·lador: dues fallades silencioses es van caçar afegint verificacions abans d'instal·lar.
  • La base vectorial és el que converteix un CMS amb IA en un CMS IA-natiu: sense memòria semàntica, tota la resta són decoracions.