Revisión de SiYuan: una alternativa Obsidian basada en bloques para desarrolladores
Rompí mi bóveda Obsidian un miércoles por la tarde y la forma en que se rompió es la razón por la que fui a buscar otra cosa.
Estuve refactorizando dos años de notas. Una carpeta llamada bug-logs/ había crecido a 312 archivos y quería dividirla por proyecto: bug-logs/laravel/, bug-logs/react/, bug-logs/infra/. Limpieza estándar. El tipo de cosas que hace cualquier desarrollador cuando una carpeta plana se convierte en un pantano.
Moví 47 archivos en un lote, vi a Obsidian cambiarles el nombre y fui a preparar café. Cuando regresé, abrí un runbook que había escrito seis meses antes: un documento de recuperación paso a paso para un incidente de producción que nunca quise repetir. El tercer paso está vinculado a un registro de errores llamado redis-eviction-storm-debug.md. El enlace representado como texto sin formato. El clic no hizo nada.
Revisé el archivo. Existió. Estaba en la nueva carpeta bug-logs/infra/. El bloque al que había hecho referencia (la sección específica que explica la configuración de desalojo que desencadenó la cascada) estaba allí, intacto. Pero el vínculo estaba inactivo porque la ruta había cambiado y la referencia de bloque estaba anclada a una combinación de ruta más encabezado que ya no coincidía.
Ese fue el momento en que me di cuenta de que mi segundo cerebro tenía un problema estructural. No es exactamente culpa de Obsidian. Archivos Markdown más rutas del sistema de archivos más enlaces de bloques anclados al encabezado: ese es el contrato. Cuando mueves cosas, aceptas que algunas referencias se romperán. Para un diario personal, está bien. Para la documentación en la que confío a las 2 a. m. durante un incidente, no está bien.
Entonces comencé a mirar más allá de Obsidian. Lo que probé a continuación fue SiYuan, una herramienta de gestión de conocimiento local y de código abierto que ejecuta la versión 3.6.5 a partir del 21 de abril de 2026. Bloquea las referencias de manera diferente: cada bloque tiene una identificación permanente que sobrevive a movimientos, cambios de nombre, refactorizaciones y cualquier cosa que no sea la eliminación. Eso sonaba exactamente lo que necesitaba mi runbook roto.
Este es el artículo honesto. Lo que funcionó. Lo que me hizo alcanzar el botón Atrás. Si merece un lugar permanente en la pila de un desarrollador en 2026, o si la comparación SiYuan vs Obsidian siempre se inclina hacia Obsidian para la mayoría de las personas. Spoiler: la respuesta depende del tipo de notas que lleves realmente.
Por qué pasé por alto Obsidian en primer lugar
Obsidian me sirvió durante cuatro años. No estoy aquí para enterrarlo. Las más de 230 publicaciones en este sitio hacen referencia constante a Obsidian porque, para el caso de uso para el que fue diseñado (un segundo cerebro rápido, de texto plano y extensible mediante complementos), casi nada lo supera.
Pero mis notas evolucionaron. Dejaron de ser "pensamiento en voz alta" y se convirtieron en artefactos estructurados:
- Registros de errores con pasos reproducibles, análisis de causa raíz y verificación de correcciones
- Registros de decisiones de arquitectura (ADR) con contexto, decisión y consecuencias explícitos
- Runbooks para incidentes de producción con pasos de recuperación secuenciados.
- Notas de participación del cliente con registros de errores, decisiones y runbooks vinculados
- Documentación de proyectos de larga duración con múltiples contribuyentes (yo + subagentes escribiendo archivos de memoria)
Una vez que sus notas se parecen más a un sistema de documentación que a un diario, tres limitaciones de Obsidian comienzan a aparecer:
1. Las referencias a bloques se rompen durante la refactorización. La sintaxis de referencia a bloques de Obsidian ([[file#^block-id]]) se ancla a una ID de bloque específica dentro de un archivo específico. Cuando mueve el archivo, Obsidian intenta actualizar la ruta automáticamente. La mayoría de las veces funciona. A veces no es así, especialmente con movimientos por lotes, sintaxis introducida por complementos o sincronización de editor externo. Y cuando falla silenciosamente, no lo notas hasta que haces clic en un enlace seis meses después.
2. Las consultas estilo base de datos requieren complementos. Dataview es brillante. También es un complemento comunitario mantenido por un desarrollador que incluye las principales versiones de Obsidian aproximadamente dos veces al año. Si su runbook depende de que una consulta de Dataview se represente correctamente, su runbook depende de que Dataview esté en buen estado. Se trata de una frágil cadena de dependencia para documentos críticos para la producción.
3. La edición multiusuario no es el modelo. Obsidian Sync existe y es sólido para uso personal. Pero Obsidian fue diseñado como una herramienta para un solo usuario. En el momento en que desea que un equipo o subagentes escriban en la misma bóveda al mismo tiempo, está luchando contra el modelo.
El incidente del enlace roto fue sólo la superficie. Debajo había una comprensión más profunda: mis notas habían superado el modelo de descuento de archivo como documento. Necesitaba un sistema donde la unidad atómica fuera el bloque, no el archivo. Donde las referencias sobrevivieron a los cambios estructurales. Donde las consultas eran nativas, no agregadas.
Ese es el nicho por el que SiYuan vs Obsidian realmente lucha.
Qué hace realmente Block IDs: un ejemplo real
El argumento: cada bloque en SiYuan obtiene una identificación permanente de 22 caracteres en el momento en que lo crea. La identificación permanece en el bloque para siempre: en movimientos, cambios de nombre, divisiones y fusiones de documentos. Las referencias apuntan a la identificación, no al camino. Mueve el bloque; la referencia todavía funciona.
Suena bien en teoría. Así es como se ve realmente en la práctica.
Creé un documento llamado redis-eviction-storm.md y escribí tres bloques:
- Symptom: Redis CPU spikes to 100% for 90 seconds, then recovers.
- Root cause: maxmemory-policy set to allkeys-lru with eviction batch
size of 10. Under high write load, eviction cycle blocks the event loop.
- Fix: Switch to allkeys-lfu, raise hz to 50, set maxmemory-eviction-tenacity to 5.
SiYuan almacenó cada viñeta como un bloque separado. Cuando hice clic en la segunda viñeta, el editor me mostró su ID de bloque, algo así como 20260418142733-x7k9j2m. Es una marca de tiempo de 14 dígitos (20260418142733 = 18 de abril de 2026, 14:27:33) más 7 caracteres aleatorios. Cada bloque en tu espacio de trabajo obtiene uno.
Copié la referencia del bloque y la pegué en un documento diferente: un runbook llamado incident-recovery-redis.md. La referencia representada como una inserción en la que se puede hacer clic y que muestra el texto de la causa raíz en línea. Luego hice algo destructivo que rompió Obsidian: moví el documento fuente a una carpeta profundamente anidada, le cambié el nombre a infra/databases/redis/eviction-storm-2026.md y lo dividí en dos documentos separados.
La referencia en mi runbook todavía funcionaba. No "funcionó después de volver a indexar". No "funcionó después de que el complemento reconciliara las rutas". Funcionó instantáneamente, porque la referencia estaba vinculada al ID del bloque, no a la ruta del archivo. El almacenamiento subyacente es un archivo .sy JSON que contiene un árbol de nodos AST y el ID del bloque es el ID del nodo AST. Mueve el documento, el archivo se mueve; los ID de nodo JSON no cambian. SQLite vuelve a indexar la ruta del archivo, la capa de resolución de referencia busca el bloque por ID, lo encuentra en el nuevo archivo y lo representa.
Esta es la única característica que para mí justifica la existencia de SiYuan. Si alguna vez ha perdido una referencia de bloque a una refactorización, sabe exactamente lo mucho que eso importa.
La compensación se encuentra en la capa de formato de archivo, y volveremos a ella, porque .sy JSON no es Markdown, y eso tiene consecuencias.
La característica principal: consultas nativas SQL dentro de las notas
Los usuarios de Obsidian acceden a Dataview. Los usuarios de Notion crean bases de datos relacionales manualmente. SiYuan viene con una base de datos SQLite que indexa cada bloque en su espacio de trabajo y usted escribe SQL directamente dentro de las notas.
No es un complemento. No es una herramienta de barra lateral. La consulta se encuentra en línea como un bloque de inserción, se ejecuta cuando se procesa el documento y se actualiza cada vez que cambian los datos subyacentes.
Aquí hay una consulta real que mantengo en la parte superior de mi documento bug-tracker.md. Extrae todos los bloques etiquetados como #bug-open en todo mi espacio de trabajo, ordenados por fecha de creación:
SELECT
'[' || b.content || '](siyuan://blocks/' || b.id || ')' AS bug,
b.hpath AS document,
datetime(substr(b.created, 1, 4) || '-' ||
substr(b.created, 5, 2) || '-' ||
substr(b.created, 7, 2)) AS opened
FROM blocks AS b
WHERE b.tag LIKE '%#bug-open%'
ORDER BY b.created DESC
LIMIT 50
Esto hace tres cosas bien que Dataview nunca hizo por mí:
Es SQL real. No es un DSL que envuelve SQL con sus propias peculiaridades. Si ha escrito un SELECT en su carrera, puede escribir consultas SiYuan el primer día. Se incorpora al trabajo. Las subconsultas funcionan. Los CTE funcionan. El esquema está documentado y es estable: blocks es la tabla principal, con columnas como id, content, type, path, hpath, root_id, tag, created, updated, markdown y algunos más.
El esquema está expuesto. La documentación API de SiYuan enumera explícitamente el esquema de tabla blocks. También hay un punto final HTTP /api/query/sql que toma un cuerpo JSON como {"stmt": "SELECT * FROM blocks WHERE content LIKE '%redis%' LIMIT 7"} y devuelve filas. Eso significa que los scripts externos, los agentes o incluso el propio Claude Code pueden consultar su base de conocimientos directamente sin analizar los archivos de rebajas.
Los bloques de inserción son de primera clase. Cada bloque de inserción en SiYuan comienza con select * from blocks; esa es la convención porque el procesador de inserción necesita el esquema del bloque para saber cómo representar los resultados. La consulta se actualiza al cargar documentos, al cambiar datos y al actualizar manualmente.
Ahora tengo consultas integradas en todo mi espacio de trabajo:
- Un panel en la parte superior del documento de mi proyecto que enumera cada bloque TODO en el subárbol del proyecto.
- Una consulta de "notas obsoletas" que muestra cualquier documento que no haya actualizado en más de 90 días.
- Una consulta de error por gravedad que agrupa errores abiertos por etiquetas
#sev1,#sev2,#sev3 - Una consulta "hoy" en mi nota diaria que extrae cada bloque que creé o modifiqué ese día
Dataview puede hacer la mayor parte de esto. La diferencia es que la capa de consulta de SiYuan es parte del producto principal, no un complemento comunitario mantenido por un desarrollador heroico. El esquema es estable. El motor de consultas es SQLite, que es el software de base de datos más aburrido y confiable que existe. Confío en él para documentos críticos para la producción de una manera en la que nunca confié en Dataview.
Docker Tutorial de autohospedaje: la configuración de 2026
SiYuan se ejecuta como una aplicación de escritorio en macOS, Windows y Linux. También se ejecuta como un contenedor Docker, y así es como alojo mi espacio de trabajo principal: en un VPS pequeño, accesible desde cualquier dispositivo y totalmente bajo mi control.
La imagen oficial de Docker es b3log/siyuan en Docker Hub. El puerto predeterminado es 6806. El comando mínimo para ejecutar un espacio de trabajo:
docker run -d \
--name siyuan \
-p 6806:6806 \
-v /opt/siyuan/workspace:/siyuan/workspace \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Dhaka \
b3log/siyuan \
--workspace=/siyuan/workspace/ \
--accessAuthCode=replace-with-a-strong-password
Tres cosas en ese comando son importantes y no son obvias en los documentos:
El indicador --workspace debe coincidir con la ruta de montaje del lado del contenedor. SiYuan almacena todo dentro de la carpeta del espacio de trabajo: sus cuadernos, el índice SQLite, archivos adjuntos, datos de complementos y metadatos de sincronización. Si la bandera y el montaje del volumen no están de acuerdo, el contenedor se inicia pero no escribe nada útil en el disco y, al reiniciar, se pierde el estado.
--accessAuthCode es su contraseña. Es lo único que se interpone entre el puerto 6806 y cualquiera que pueda comunicarse con su VPS. Utilice una cadena larga y aleatoria. Trátelo como una clave SSH. Si lo olvida, debe detener el contenedor, editar la configuración dentro de la carpeta del espacio de trabajo y reiniciar.
PUID/PGID coincide con su usuario host. Sin estos, el contenedor escribe archivos como raíz, y cuando realiza SSH para realizar una copia de seguridad del espacio de trabajo, no puede leer sus propios datos sin sudo. Ejecute id -u y id -g en su host y pase esos valores.
Docker Versión de redacción, que es la que realmente ejecuto:
version: "3.9"
services:
siyuan:
image: b3log/siyuan
container_name: siyuan
restart: unless-stopped
ports:
- "127.0.0.1:6806:6806"
volumes:
- /opt/siyuan/workspace:/siyuan/workspace
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Dhaka
command:
- --workspace=/siyuan/workspace/
- --accessAuthCode=${SIYUAN_AUTH_CODE}
Tenga en cuenta el vínculo en 127.0.0.1:6806: nunca expongo el puerto 6806 directamente a la Internet pública. NGINX está al frente con TLS, autenticación básica como segunda capa y una lista estricta de permitidos para IP que pueden llegar al nivel ascendente. Esa es la misma postura que adoptaría con cualquier herramienta de productividad autohospedada, y es el tipo de cosas que mi lista de verificación de revisión de seguridad para aplicaciones autohospedadas marcaría si la omitiera.
Bloque de servidor NGINX, abreviado:
server {
listen 443 ssl http2;
server_name notes.example.com;
ssl_certificate /etc/letsencrypt/live/notes.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/notes.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:6806;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}
Los encabezados Upgrade estilo WebSocket son importantes: SiYuan utiliza una conexión persistente entre el cliente del navegador y el backend. Sin ellos, recibirás brindis aleatorios de "conexión perdida" cada uno o dos minutos.
Una vez que el contenedor esté activo, presione https://notes.example.com, ingrese su código de acceso y estará dentro. El cliente del navegador es la experiencia SiYuan completa: la misma interfaz de usuario que la aplicación de escritorio, la misma compatibilidad con complementos, el mismo motor de consulta. Lo único que falta son las integraciones a nivel del sistema operativo, como la bandeja del sistema.
Esa es una configuración de 10 minutos si ya tienes un VPS. Compárese con Obsidian, donde la sincronización multidispositivo autohospedada implica servicios de terceros, depósitos S3 o la suscripción paga de sincronización Obsidian. El hecho de que SiYuan sea autohospedable de forma nativa es una ventaja estructural, no algo agradable de tener.
Vista gráfica: ¿herramienta útil o atractiva para la vista?
La vista gráfica de Obsidian se convirtió en un meme por una razón. Es hermoso. También es, para la mayoría de la gente, un salvapantallas. Miras fijamente la constelación de tus notas, te sientes brevemente impresionado por tu aparente profundidad de pensamiento y luego cierras la pestaña.
SiYuan incluye su propia vista gráfica y quiero decirles que es diferente. En general no lo es.
Misma visualización de nodos y bordes. La misma simulación física que te permite arrastrar grupos. Misma codificación de colores por etiqueta o tipo de documento. La interactividad está bien. Puede hacer clic en un nodo y saltar al documento. Puede filtrar por etiqueta, profundidad, tipo de documento o rango de tiempo.
Lo que SiYuan agrega son nodos de gráfico a nivel de bloque. El gráfico de Obsidian trata los archivos como nodos. SiYuan puede representar bloques individuales como nodos, lo que significa que el gráfico refleja la estructura de referencia real: un bloque en el documento A al que hace referencia un bloque en el documento B aparece como un borde entre bloques, no entre archivos.
¿Es eso realmente útil? Dos veces en tres meses, sí. Una vez, cuando estaba buscando bloques huérfanos (bloques que había escrito pero a los que nunca había hecho referencia desde ningún lugar) y otra vez, cuando estaba rastreando cómo una decisión arquitectónica específica se había propagado a través de múltiples ADR. En ambas ocasiones, el gráfico a nivel de bloque me mostró algo que un gráfico a nivel de archivo habría ocultado.
El otro 90% del tiempo, la vista del gráfico permanece cerrada. No creo que se trate de un fallo específico de SiYuan. Creo que las vistas de gráficos están sobrevaloradas como herramienta de conocimiento en general. Son útiles para inspecciones estructurales ocasionales, no para el trabajo diario.
Si elige entre SiYuan y Obsidian solo por la calidad de la vista gráfica, no lo haga. Son equivalentes. La opción a nivel de bloque en SiYuan es una ventaja marginal para un pequeño conjunto de casos de uso.
Verificación de la realidad del formato de archivo: .sy JSON, no Markdown
Aquí es donde SiYuan solicita el mayor compromiso y donde la mayoría de las revisiones pasan por alto el costo.
Obsidian almacena notas como archivos .md. Liso Markdown. Puedes abrirlos en Vim, en VS Code, en el Bloc de notas, en cualquier editor que haya existido en los últimos 30 años. Si Obsidian desaparece mañana, sus notas seguirán siendo legibles para siempre.
SiYuan no almacena Markdown. Almacena archivos .sy, que son documentos JSON que contienen el árbol de sintaxis abstracta (AST) de cada nota. Los nombres de archivos son marcas de tiempo de 14 dígitos más 7 caracteres aleatorios, algo así como 20260418142733-x7k9j2m.sy. La estructura del directorio refleja la jerarquía de su cuaderno. El contenido se encuentra dentro de JSON, indexado en tiempo de ejecución por SQLite.
Esta es la contrapartida que estás pagando por los ID de bloque estables. El ID del bloque es el ID del nodo AST. El AST debe conservarse en un formato estructurado para mantener los ID estables entre las ediciones. Markdown, por diseño, no lleva una identidad a nivel de bloque; no existe una forma compatible con las especificaciones de anclar una identificación a un párrafo en CommonMark. Si desea las garantías de ID de bloque, no puede tener Markdown como formato de almacenamiento. Elige uno.
Lo que esto realmente significa para la portabilidad:
Puede exportar a Markdown. SiYuan tiene exportación Markdown incorporada: un solo documento, carpeta o espacio de trabajo completo. La exportación es buena. Las referencias a bloques se convierten en referencias estándar de estilo enlace wiki, los bloques de código sobreviven y las tablas se convierten limpiamente. No quedarás encerrado.
No puede editar el almacenamiento directamente. Si desea modificar en masa sus notas con un script sed de la misma manera que lo haría con una bóveda Obsidian, analizará los nodos AST JSON, no Markdown con coincidencias de expresiones regulares. Eso es factible (el esquema AST está documentado), pero es un orden de magnitud más de trabajo que una sola línea contra archivos .md.
La integración de herramientas externas es más difícil. Herramientas como Pandoc, marksman, markdownlint o cualquiera de las docenas de utilidades CLI que operan en archivos Markdown no funcionan directamente en .sy JSON. Puede exportar, ejecutar la herramienta, volver a importar, pero eso es un flujo de trabajo, no un reflejo.
Los conflictos de sincronización se ven diferentes. Si estás sincronizando un espacio de trabajo a través de Syncthing o rsync entre dos máquinas, los conflictos en los archivos .sy JSON son más difíciles de resolver manualmente que los conflictos en Markdown simple. La sincronización oficial de SiYuan (una función de membresía paga) maneja esto con sincronización incremental cifrada de extremo a extremo, pero si estás implementando tu propia sincronización, lo sentirás.
Para mí, la compensación vale la pena. Mis notas ahora son infraestructura, no literatura. Los quiero consultables, con referencias estables y estructuralmente explícitos. El almacenamiento JSON-AST es el precio de esas propiedades, y la exportación Markdown me da una salida de incendios si alguna vez cambio de opinión. Pero si sus notas son principalmente prosa (diarios, ficción, reflexiones diarias) y el atractivo de .md es la capacidad de edición en cualquier herramienta, SiYuan es la elección equivocada y debe quedarse con Obsidian. Eso no es un defecto. Es un impuesto de diseño para un objetivo diferente.
SiYuan vs Obsidian vs Notion - Comparación honesta
Cada artículo "X vs Y" eventualmente se convierte en una matriz de características. Aquí está el mío, con el problema de que las filas que más importan son aquellas en las que las tres herramientas realmente no están de acuerdo.
| Dimensión | SiYuan 3.6.5 | Obsidian | Notion |
|---|---|---|---|
| Unidad atómica | Bloquear (con identificación permanente) | Archivo (.md) |
Bloquear (con ID) |
| Almacenamiento | Local .sy JSON, SQLite index |
Archivos .md locales |
Nube (SaaS) |
| Estabilidad de referencia | Alto: sobrevive a movimientos y cambios de nombre | Medio: actualizaciones de la ruta de mejor esfuerzo | Alto: ID de propiedad |
| Base de datos nativa/query | SQL notas interiores (integradas) | Complemento de vista de datos (comunidad) | Bases de datos relacionales (integradas) |
| Autohospedaje | Docker, control total | Solo local (sincronización adicional) | Ninguno: solo SaaS |
| Código abierto | AGPLv3 | Propietario (nivel gratuito) | Fuente cerrada |
| Portabilidad del formato de archivo | Exportación Markdown disponible | Nativo Markdown | Markdown/HTML exportación |
| Ecosistema de complementos | S |
centro comercial, en su mayoría chinos | Grande, primero el inglés | Ninguno — plataforma cerrada | | Colaboración en tiempo real | Limitado | Limitado | Excelente | | Primero sin conexión | Completo | Completo | Parcial (solo caché) | | Curva de aprendizaje | Empinado al principio | Moderado | Poco profundo | | Aplicaciones móviles | iOS, Android, HarmonyOS | iOS, Android | iOS, Android | | Costo | Gratis (sincronización paga opcional) | Gratis (sincronización paga opcional) | Gratis → niveles pagados |
Mi opinión, fila por fila, sobre las filas que realmente importan:
Estabilidad de referencia. SiYuan gana directamente. Esta es la característica que me atrajo y la que no he dejado de apreciar. Si refactorizas las notas con regularidad, esto es más importante que cualquier otra cosa.
Consulta nativa. SiYuan vuelve a ganar, por margen. SQL > Dataview DSL > UI de filtro de Notion. El hecho de que el motor de consultas sea parte del producto principal, no un complemento, marca una diferencia real para los documentos críticos para la producción.
Portabilidad del formato de archivo. Obsidian gana, punto. Plain Markdown es el formato de notas más portátil jamás inventado. Renuncias a esto para obtener las ID de bloque.
Ecosistema de complementos. Obsidian gana por una milla. El mercado de SiYuan existe, el repositorio del bazar comunitario se actualiza automáticamente cada hora y hay un desarrollo activo, pero el ecosistema es más pequeño y se inclina hacia los complementos en idioma chino. La selección de complementos en inglés es escasa y la documentación en inglés para el desarrollo de complementos se reconoce abiertamente como un área que necesita trabajo. Si vives y mueres gracias a los complementos comunitarios, esto es importante.
Colaboración en tiempo real. Notion gana. Nada en el espacio local se acerca a la experiencia de "diez personas editando la misma página simultáneamente" de Notion. Si sus notas son un artefacto de equipo, Notion es la respuesta y SiYuan vs Obsidian es el marco completamente incorrecto.
Autohospedaje y propiedad. SiYuan gana. Obsidian es local primero, pero la sincronización oficial es un SaaS pago. Notion es pura nube. SiYuan con Docker le brinda los beneficios locales más la conveniencia de múltiples dispositivos sin depender de que los servidores de otras personas permanezcan en línea.
La comparación del título SiYuan vs Obsidian se resuelve en: SiYuan si sus notas son documentación estructurada; Obsidian si sus notas son prosa más complementos. La comparación de Notion vs SiYuan es aún más simple: Notion si necesita colaboración en equipo en tiempo real; SiYuan si necesita privacidad, propiedad y un motor de consultas que usted controle.
Dónde pierde SiYuan
He sido generoso hasta ahora. Aquí están las asperezas que encontré, en orden de prioridad.
El ecosistema de complementos es pequeño y difícil de navegar en inglés. La comunidad de desarrolladores de SiYuan es mayoritariamente de habla china, lo cual es excelente para la profundidad y coherencia del proyecto, pero no tanto para los usuarios que solo hablan inglés. La interfaz de usuario del mercado es bilingüe, pero las descripciones y la documentación de los complementos a menudo se inclinan hacia el chino. Hay un problema abierto GitHub (#12878) explícitamente sobre cómo mejorar el soporte en inglés. Si su idea de una herramienta de notas perfecta implica complementos comunitarios cuidadosamente seleccionados para cada microflujo de trabajo, SiYuan lo frustrará.
La interfaz de usuario parece anticuada para algunos usuarios. Esto es subjetivo y trato de ser justo. El lenguaje de diseño de SiYuan está más cerca de un IDE con muchas funciones de 2018 que de una aplicación minimalista de 2026. Hay muchos botones. El conjunto de iconos está ocupado. El tema predeterminado está bien pero no es bonito. Si viene de la estética CSS simple y limpia de Obsidian o del diseño aireado de Notion, la primera hora en SiYuan se sentirá abarrotada. Después de una semana, dejas de darte cuenta, pero la primera impresión importa.
El rendimiento cae en espacios de trabajo enormes. El modelo indexado SQLite es rápido, hasta que deja de serlo. Mi espacio de trabajo principal tiene alrededor de 1.800 documentos con quizás 40.000 bloques en total, y SiYuan lo maneja sin quejarse. Las personas que informaron haber ejecutado más de 10,000 espacios de trabajo de documentos describen un retraso notable en la búsqueda de texto completo y la representación de gráficos. Hay un hilo de ingeniería activo sobre la optimización de esto, pero si su bóveda Obsidian existente es realmente enorme, valide el rendimiento antes de comprometerse.
El costo de migración desde Notion es real. La exportación de Notion es HTML o Markdown con una estructura de carpetas que no se asigna claramente al concepto de cuaderno de SiYuan. Puede obtener la mayor parte del contenido, pero perderá cosas específicas de Notion: enlaces de bases de datos relacionales, propiedades de página, incrustaciones y cualquier tipo de bloque exclusivo de Notion. Planifica un fin de semana, no una tarde.
La experiencia móvil es funcional, no agradable. Las aplicaciones de Android e iOS funcionan. Se sincronizan. Se renderizan correctamente. Pero el editor en el móvil es claramente un ciudadano de segunda clase en comparación con el de escritorio. La manipulación de bloques en un teléfono es incómoda y los bloques complejos (incrustaciones de SQL, gráficos, matemáticas) a menudo se procesan pero no se editan bien. Si necesita capturar notas desde el móvil, esta es una limitación real.
Funciones de nivel de membresía para sincronización avanzada. La sincronización cifrada de extremo a extremo es una función de membresía paga de SiYuan. El nivel gratuito es completamente funcional: puede autohospedarse con Docker, sincronizar a través de Syncthing u otra herramienta y no perder nada material. Pero la experiencia de sincronización más refinada se encuentra detrás de un muro de pago. Eso es justo y los desarrolladores merecen que se les pague, pero vale la pena saberlo antes de asumir que la experiencia gratuita coincide con las capturas de pantalla de marketing.
Ninguno de estos es un factor decisivo para mí. Juntos, son la razón por la que SiYuan vs Obsidian no tiene un ganador universal.
¿Quién debería cambiar y quién no?
Olvídate de los consejos genéricos. Aquí hay perfiles concretos.
Cambia a SiYuan si eres:
- Un desarrollador que mantiene un sistema de documentación personal (registros de errores, runbooks, ADR, autopsias de incidentes) donde la estabilidad de referencia entre refactores importa más que la flexibilidad del editor.
- Cualquiera que haya perdido una referencia de bloque a un cambio de nombre de Obsidian y quiera que eso deje de suceder.
- Un autohospedador que quiere documentos estructurados al estilo Notion pero se niega a colocar datos propietarios en los servidores de otra persona.
- Alguien que cree una base de conocimientos que los agentes AI consultarán: el índice SQLite más HTTP API más los ID de bloque estables hacen que la integración del agente sea realmente manejable.
- Un gran usuario de pensamiento relacional que actualmente lucha contra Dataview y desearía que la capa de consulta fuera una base de datos real.
Quédate con Obsidian si eres:
- Un periodista o ensayista cuyas notas son principalmente en prosa.
- Profundamente invertido en el ecosistema de complementos Obsidian (Excalidraw, Obsidian Tasks, Smart Connections, Templater); ninguno de estos tiene equivalentes directos de SiYuan
- Alguien que necesita portabilidad
.mdentre herramientas (Pandoc, generadores de sitios estáticos, editores externos) - Un usuario solitario donde no vale la pena cambiar las herramientas por el problema del enlace roto.
Quédate con Notion si eres:
- Trabajar en documentos compartidos con un equipo que necesita edición multijugador en tiempo real.
- Un usuario no técnico que valora el lenguaje de diseño y el ecosistema de plantillas Notion.
- Creación de un wiki para una empresa donde la propiedad es "la empresa", no "yo personalmente"
Ejecuta ambos si eres:
- Un desarrollador con una sólida bóveda Obsidian pero con un creciente problema de documentos estructurados. Esto es lo que hago. Obsidian para captura y prosa rápidas; SiYuan para la capa de documentación estructurada; los dos interoperan a través de la exportación Markdown cuando necesito mover cosas entre ellos.
El error que se debe evitar es tratar esto como una cosa o la otra. El costo de ejecutar dos herramientas es real pero pequeño. El costo de forzar notas en prosa en SiYuan o documentos estructurados en Obsidian es mucho mayor.
Mi configuración actual: lo que conservé, lo que migré
Tres meses después de instalar SiYuan por primera vez, aquí está la división real del trabajo en mi sistema.
Me alojé en Obsidian: notas diarias, anotaciones en el diario, capturas fugaces, cualquier cosa que escribo para pensar en lugar de documentar. Alrededor de 1.200 archivos. El ecosistema de complementos (específicamente Templater, Dataview-for-prose y el complemento Local Images Plus de mi configuración RAG estilo Karpathy) es demasiado valioso para renunciar. Todavía construyo mi segundo cerebro en Obsidian, que cubrí en mi inmersión profunda en Obsidian y Claude Code para la capa de prosa y pensamiento.
Migrado a SiYuan: registros de errores (312 archivos), runbooks (84 archivos), ADR (47 archivos), documentos de participación del cliente (alrededor de 200 archivos) y documentación del proyecto para interacciones activas (variable). Aproximadamente 700 documentos y creciendo. Cualquier cosa en la que la estabilidad de referencia y la capacidad de consulta de SQL importen más que la portabilidad de Markdown.
La capa de integración: un pequeño script de Node.js que se ejecuta todas las noches, exporta el espacio de trabajo SiYuan a Markdown a través de API y coloca la exportación en una carpeta con índices Obsidian. Solo lectura, pero significa que mi búsqueda basada en Obsidian puede encontrar contenido del lado SiYuan. La dirección inversa (Obsidian → SiYuan) no la he creado porque no la necesito: el contenido de Obsidian no hace referencia al contenido de SiYuan; la dependencia va en una dirección.
La capa de agente: Claude Code consulta mi base de datos SiYuan SQLite directamente cuando estoy haciendo un trabajo de gráfico de conocimiento. Cubrí el patrón general de RAG estilo Karpathy sobre bóvedas de rebajas - SiYuan es un sustrato más rico para la misma idea porque el esquema está estructurado. En lugar de registrar la reducción, el agente ejecuta SQL: "Dame cada bloque de error etiquetado como sev1 de los últimos 30 días donde la causa raíz menciona Redis". Esa consulta tarda 40 ms y devuelve bloques exactos, no fragmentos. Para los flujos de trabajo del desarrollador como segundo cerebro donde el agente necesita un contexto estructurado, esta es una actualización significativa.
Para qué NO uso SiYuan: escribir esta publicación de blog. La publicación que estás leyendo se redactó en Obsidian, se editó en VS Code y se guardó como Markdown. El modelo de texto plano en todas partes sigue ganando en el caso del contenido que termina en la web pública. SiYuan es para documentos que permanecen privados y se benefician de la estructura.
Ese es el panorama completo. Dos herramientas, un flujo de trabajo, líneas claras sobre qué vive y dónde.
El veredicto
SiYuan no es el nuevo Obsidian. SiYuan no es el nuevo Notion. Cualquiera que lo plantee de esa manera se está perdiendo lo realmente interesante de la herramienta.
SiYuan es lo que sucede cuando se toma en serio la "identidad a nivel de bloque" como una primitiva y se construye un sistema de conocimiento a su alrededor. El ID del bloque sobrevive a los movimientos. El motor SQL indexa los bloques. La vista gráfica los representa. HTTP API los expone. Cada característica surge del mismo compromiso arquitectónico: los bloques son reales, los archivos son derivados, las rutas son mutables.
Ese compromiso es lo que hace que SiYuan sea bueno para la documentación estructurada. También es lo que hace que el formato de archivo sea opaco, el costo de la migración sea real y el ecosistema sea más estrecho que el de Obsidian. Las compensaciones de ingeniería son así: elija la propiedad que más desee y acepte los costos que la acompañan.
Para el desarrollador que ha descifrado demasiadas referencias de bloque durante una refactorización y quiere que el problema deje de existir, vale la pena el fin de semana de configuración de SiYuan. Para todos los demás, la respuesta tiene más matices y he tratado de trazar las líneas honestamente arriba.
¿Recuerda el runbook en el que perdí el enlace al principio? Lo reconstruí en SiYuan durante un fin de semana de febrero. Seis semanas después, refactoricé toda mi estructura bug-logs/ por segunda vez: la dividí por cliente, luego por servicio y luego archivé dos años de incidentes resueltos. Cientos de archivos movidos. Miles de manzanas reorganizadas.
Hice clic en el enlace del runbook esta mañana. Funcionó. Seis semanas de cambios estructurales, decenas de medidas y la referencia seguía señalando exactamente dónde debía.
Ese es el discurso completo en una oración: en SiYuan, el enlace aún funciona. Si vale la pena cambiar las herramientas por esa propiedad única depende de la frecuencia con la que la haya visto fallar en las herramientas que usa ahora.
Preguntas frecuentes
¿SiYuan es realmente de código abierto?
Sí. SiYuan tiene licencia AGPLv3 y la fuente está en GitHub en siyuan-note/siyuan. Puedes autohospedarte, bifurcar o contribuir sin restricciones. El nivel pago (membresía) cubre el servicio oficial de sincronización en la nube, claves de cifrado de extremo a extremo y funciones asistidas por AI, pero ninguna de ellas es necesaria para utilizar el producto principal.
¿Puedo migrar mi bóveda Obsidian a SiYuan?
Sí, pero con salvedades. SiYuan puede importar archivos y estructuras de carpetas Markdown, lo que cubre la mayor parte de una bóveda Obsidian. Lo que pierde: sintaxis específica del complemento (consultas de vista de datos, metadatos del complemento de tareas, plantillas de plantilla), sintaxis de referencia de bloque específica de Obsidian y cualquier CSS personalizado. Planifique importar estructuralmente y luego reconstruir manualmente cualquier flujo de trabajo basado en complementos en primitivas nativas de SiYuan.
¿Es el formato de archivo .sy un riesgo de dependencia del proveedor?
Es una consideración real, pero no un bloqueo estricto. SiYuan incluye exportación Markdown integrada a nivel de documento, carpeta y espacio de trabajo completo. La exportación es de alta fidelidad para contenido estándar. Perderá las características específicas de .sy (ID de bloque, consultas SQL integradas, atributos de bloque personalizados) al exportar, pero la prosa, el código y la estructura sobreviven. El perfil de riesgo está más cerca de Notion (exportación disponible, con pérdidas) que de un verdadero bloqueo de propiedad.
¿Cómo se compara SiYuan con Logseq?
Ambos son primero locales y están orientados a bloques. Logseq es el primero en esquematizar con un registro diario incorporado; SiYuan es el primero en documentos con funciones de esquematización disponibles. Logseq almacena notas como .md con una base de datos complementaria; SiYuan almacena .sy JSON. Para flujos de trabajo de registro diario y esquemas puros, gana Logseq. Para documentación estructurada y capacidad de consulta de SQL, gana SiYuan.
¿SiYuan funciona sin conexión?
Completamente. La aplicación de escritorio y la instancia Docker autohospedada funcionan completamente sin conexión: todas las funciones, incluidas las consultas SQL, la representación de gráficos y la resolución de referencia, se ejecutan en el índice local SQLite. La sincronización requiere una conexión de red (ya sea a la nube oficial de SiYuan o a su propio objetivo de sincronización), pero la edición y navegación del día a día no dependen de la conexión en línea.
Trabajemos juntos
¿Quiere crear sistemas AI, automatizar flujos de trabajo o ampliar su infraestructura tecnológica? Me encantaría ayudar.
- Fiverr (compilaciones e integraciones personalizadas): fiverr.com/s/EgxYmWD
- Cartera: mejba.me
- Ramlit Limited (soluciones empresariales): ramlit.com
- ColorPark (diseño y marca): colorpark.io
- xCyberSecurity (servicios de seguridad): xcybersecurity.io