Despues de 12 anos usando WordPress para todo, desde blogs personales hasta sitios corporativos, tome una decision que muchos considerarian extrema: construir mi propio sistema de gestion de contenido desde cero.

El problema con las bases de datos relacionales

WordPress usa MySQL con un esquema que data de 2003. La tabla wp_posts almacena todo en un campo longtext. Las taxonomias viven en tres tablas separadas. Las meta queries se convierten en JOINs recursivos que escalan mal.

Dato clave

Una query de postmeta con 3 condiciones OR puede generar 6 JOINs anidados. En un sitio con 10,000 posts, eso es catastrofico.

La alternativa: documentos JSON

Con js-doc-store, cada post es un documento JSON completo. Las taxonomias son arrays de IDs. Las metadatos son propiedades nativas. No hay JOINs porque no hay tablas.

const posts = db.collection("posts").find({
  status: "published",
  taxonomyIds: { $contains: "javascript-id" }
}).sort("publishedAt", -1);

El resultado: cero SQL injection, cero migraciones, y queries que resuelven en milisegundos sin indices complejos.