Rápido de serie
Las páginas se generan una vez y se sirven desde memoria hasta que algo cambia. La búsqueda funciona dentro de PostgreSQL. Sin procesos PHP, sin Node y sin otra caché que configurar.
Código abierto · CPAL‑1.0 · Escrito en Go
sap13ns es un CMS al estilo de WordPress escrito en Go. Un ejecutable y PostgreSQL detrás de nginx te dan un sitio rápido y seguro, con temas, plugins y dos idiomas desde el primer día.
Por qué sap13ns
Las páginas se generan una vez y se sirven desde memoria hasta que algo cambia. La búsqueda funciona dentro de PostgreSQL. Sin procesos PHP, sin Node y sin otra caché que configurar.
Una Content Security Policy estricta, contraseñas con Argon2id, acceso en dos pasos y plugins que no pueden tocar archivos, red ni base de datos si no lo permites.
Un binario, una base de datos PostgreSQL y nginx delante. Las migraciones se aplican al arrancar y actualizar es cambiar un archivo y reiniciar.
Características
Lo que en otros sitios montarías con una docena de plugins viene incluido, probado en conjunto y cubierto por las mismas reglas de seguridad.
PostgreSQL ordena por título, extracto y contenido. Sin servicios de búsqueda externos.
Las páginas públicas se sirven desde memoria y se invalidan con cada cambio.
Apple, Neumorphism, Glassmorphism, Bento Grid y Dashboard, todos en claro y oscuro.
Módulos aislados con aprobación permiso a permiso, ligada al hash del archivo.
Traducciones enlazadas por entrada, prefijos de idioma y alternativas hreflang.
RSS, Atom y JSON Feed para el sitio y para cada categoría, etiqueta y autor.
Escribe en modo visual o en Markdown, con vista previa, revisiones y entradas programadas.
Las subidas se validan, se limpian de metadatos y se redimensionan en variantes.
Respuestas anidadas, moderación, un campo trampa y marcas de tiempo firmadas en el formulario.
Administrador, editor, autor, colaborador y suscriptor, con permisos claros.
TOTP con códigos de recuperación, o una passkey. Con una passkey, además, entras sin contraseña.
Quién cambió qué y cuándo: ajustes, usuarios, plugins y contenido.
Trae entradas, páginas, categorías y medios desde una exportación de WordPress.
Claude, APIs compatibles con OpenAI, modelos locales o Gemini. Sugiere; nunca publica.
llms.txt y llms-full.txt dan a los modelos de lenguaje un mapa limpio de tu sitio.
Las entradas sin imagen reciben una tarjeta para compartir, generada a partir del título. Sin herramientas de diseño.
Mantén vivos los enlaces antiguos cuando cambias un slug o vienes de otro CMS.
Recuento agregado de visitas sin cookies, sin banners y sin datos personales.
Base de datos y archivos subidos en un único archivo verificado, cifrado si quieres.
Una cuenta para muchos sitios, cada uno con su dominio, sus temas y sus plugins.
Despliegue
Plantillas, hojas de estilo, iconos y traducciones van compilados en el ejecutable. Cópialo al servidor, apúntalo a PostgreSQL y deja que nginx hable con él por un socket Unix.
# 1. Instala el binario
$ sudo install -m 0755 sap13ns /usr/local/bin/
# 2. Crea la base de datos
$ sudo -u postgres createuser sap13ns
$ sudo -u postgres createdb -O sap13ns sap13ns
# 3. Genera una clave secreta para el archivo env
$ sap13ns keygen
9f2c…e41a
# 4. Migra y arranca
$ sudo -u sap13ns sap13ns migrate -env /etc/sap13ns/sap13ns.env
$ sudo systemctl enable --now sap13ns
msg="sap13ns listening" addr=unix:/run/sap13ns/sap13ns.sock
$
Temas
Todos los temas siguen la preferencia del sistema del visitante, recuerdan su elección manual y cumplen la misma CSP estricta. Elige uno, ajusta el color de acento y publica.
Seguridad
La mayoría de intrusiones en un CMS empiezan por un complemento o por un archivo subido. sap13ns desconfía de ambos y hace que la opción segura sea la única.
content-security-policy: default-src 'self'; script-src 'self'; style-src 'self'; frame-ancestors 'none'; …
x-frame-options: DENY
x-content-type-options: nosniff
cross-origin-opener-policy: same-origin
referrer-policy: strict-origin-when-cross-origin
Ni scripts, ni estilos, ni manejadores de eventos en línea, tampoco en el panel.
Hashes de contraseña lentos y exigentes en memoria, sin reglas absurdas de composición.
Tokens sincronizados y la Cross-Origin Protection de Go en cada formulario.
El acceso, la recuperación de contraseña y los comentarios tienen límites por dirección.
El Markdown y lo que generan los plugins pasa por listas blancas de bluemonday.
Tipo detectado por el contenido, extensión coherente y una CSP sandbox al servirlos.
WebAssembly con límites de memoria y de tiempo, y sin acceso por defecto a nada.
En multisitio, cada sitio vive en su propio esquema de PostgreSQL.
Multisitio
Lleva tu blog personal, la web de un proyecto y la de un cliente con el mismo acceso. Cada sitio conserva su dominio, su tema, sus plugins y sus datos.
Alojamiento
Los sitios personales son gratis una vez validados. Los comerciales pagan cada mes a través de Stripe. El mismo software, la misma seguridad y sin ataduras.
Gratis
Sitios personales, sin uso comercial
9 €/ mes
99 €/ año1 mes gratis
o 99 € al año1 mes gratis
IVA incluido
Uso comercial permitido
30 €/ mes
330 €/ año1 mes gratis
o 330 € al año1 mes gratis
+ IVA
Uso comercial permitido
Código abierto
sap13ns se publica con la licencia CPAL‑1.0. Úsalo para lo que quieras, también para trabajos comerciales, siempre que se mantenga visible el enlace «Powered by sap13ns» y que las versiones modificadas que se ofrezcan a través de una red publiquen su código.
Blog
Lanzamientos
Un gestor de contenidos al estilo de WordPress, escrito en Go, que se distribuye como un único binario y parte de la idea de que internet es un sitio hostil.
Producto
Cómo sap13ns gestiona muchos sitios desde una sola instalación, cada uno con su dominio, sus temas, sus plugins y su esquema de base de datos, con un único inicio de sesión.
Seguridad
Por qué los plugins de sap13ns empiezan sin acceso a nada, cómo se aprueban los permisos y por qué la aprobación queda ligada al archivo exacto que revisaste.
Instálalo en tu servidor en unos minutos o deja que lo alojemos por ti.