CMS amb IA nativa

Web Base

Common core with signed updates and a public website per client: a single product to install and maintain many websites.

Context

Any website that wants to rank needs constant content: optimized articles, well‑described images, translations, revisions. It's slow, repetitive, and costly work. Classic CMSs solve publishing, but leave content production in human hands 100 %, and each client site ended up being a handcrafted installation: its own manager, its own pieces, its own maintenance.

Web Base tackles both problems at once. It is a CMS with native artificial intelligence — AI is not a plug‑in added on, it is at the heart of the product — built on a FastAPI backend with a vector database (pgvector: the database stores the meaning of texts, not just the words), a full‑featured admin panel, and a public Astro frontend per client. Everything is installed cleanly, from scratch, with a single command.

Objectives

  • Have AI write, illustrate, translate and position content with human review, not the other way around.
  • Publish autonomously with guarantees: textual and semantic anti‑duplication before anything is published.
  • Install a new client’s website clean and isolated in minutes: its own repo, its own image, its own database.
  • Manage the sites from AI agents with limited permissions, and offer conversational bots inside the same website.
  • Update the core for all clients with a button, using cryptographically signed packages and automatic rollback.
  • Cover the full SEO cycle: assisted metadata, sitemap, multilingual with hreflang, structured data.

My responsibility

Product design and full architecture. Development of the four pieces: the content API with AI and semantic search (FastAPI + PostgreSQL/pgvector), the admin panel (React), the public website template (Astro SSR) and the signed‑updates system. In addition to the real‑world operation: installation, update and maintenance of production installations.

Complexity

Pàgina de característiques del producte

The interesting problems were not the screens, they were the circuits:

  • Prevent AI from inventing or repeating: autonomous publications pass through a double anti‑plagiarism filter and a semantic comparison against what is already published (this is where the vector database does the work: it compares meanings, not words). Sector knowledge is ingested from external sources respecting their robots.txt, with versioned data schemas.
  • Knowledge with memory: the blog feeds a vector index that serves the public site chat, suggestions to the editor, and competitor analysis. Embedding abstraction is prepared to switch providers without rewriting.
  • Trust in updates: each core version is signed with Ed25519 (the same signature type used by Linux distributions) and the target verifies the signature before installing anything. A version that failed to start automatically rolled back in production: the rollback tested itself.
  • Shared servers: Docker’s internal DNS once resolved my database to that of a neighboring installation. Now each project lives in its own private network; only the gateway touches the public network.

Main decisions

Native AI throughout the content cycle

Article generation from an idea, from base content, or by analysing a competitor’s site. Images generated with alternative descriptions created by computer vision. Assisted SEO that scores the article before publishing. Editorial planning with batch generation, translation jobs, and a drag‑and‑drop calendar. The panel’s principle sums it up: AI helps you; you keep control.

First‑class agents and bots

The API exposes specific tokens for external agents with limited permissions and its OpenAPI catalogue: an agent can manage content without being a human with a session. And inside the public site, a conversational chat about the site’s content (RAG) with voice synthesis. The site is not only managed with AI: it is queried with AI.

Clean and isolated installations

One command creates the client’s repository from the template; GitHub builds its image; the installer lifts the complete installation into its own folder with its own database, its secrets generated on the spot, and automated tests that verify everything. No installation shares anything with the next.

One core, many websites

Each client’s public website is theirs (own repo and image); the core — API and panel — is shared and updated once for all, via a signed digest and confirmation from the client’s own panel.

Pàgina del projecte a la web del producte

Result

  • Core in production (17 API routers) with periodic signed releases and CI that tests the API on every change.
  • First real client website operating the full circuit: clean installation from a signed image, one‑click update, real data.
  • Autonomous publications working with semantic anti‑duplication; assisted SEO that achieved maximum score in internal tests.
  • Public wiki with 14 guides, public development diary and living documentation: the product explains itself.
  • Install a client: one command and a domain. Update the core: one button. Roll back: automatic.

Learnings

  • Well‑integrated AI does not replace humans: it changes their job from writing everything to reviewing and directing. Therefore real validations (semantic, schema, signature) are needed, not promises.
  • Trust between systems is not declared, it is signed: the signed manifest eliminated any doubt about what runs on each server.
  • No local test replaces a real client: cross‑DNS, socket permissions and the proxy cache only appeared in production.
  • Failing fast and loudly is a virtue in an installer: two silent failures were caught by adding checks before installing.
  • The vector database is what turns an AI‑enabled CMS into a native AI CMS: without semantic memory, everything else is just decoration.