AFFiNE: La alternativa open source a Notion y Miro con enfoque local-first

Publicado por


AFFiNE
Open Source · Knowledge Base · Self-Hosted

AFFiNE: La alternativa open source a Notion y Miro con enfoque local-first

Plataforma todo en uno que fusiona documentos, pizarra y bases de datos con sincronización en tiempo real y IA multimodal

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar AFFiNE: La alternativa open source a Notion y Miro con enfoque local-first en el canal GENBYTE:

¿Qué es AFFiNE: La alternativa open source a Notion y Miro con enfoque local-first?

AFFiNE es una base de conocimiento de nueva generación que combina planificación, organización y creación en una sola plataforma. Diseñada como alternativa a Notion y Miro, destaca por su arquitectura local-first: los datos residen en el disco del usuario, con sincronización en tiempo real opcional entre dispositivos. El proyecto está desarrollado en TypeScript y Rust, utiliza CRDT (Yjs) para la consistencia de datos y BlockSuite como motor de edición colaborativa. La edición Community es gratuita y se distribuye bajo licencia MIT, permitiendo autoalojamiento completo mediante Docker.

Fusión real de documento y pizarra: cualquier bloque (texto enriquecido, notas adhesivas, bases de datos, páginas vinculadas, formas, diapositivas) puede colocarse en un lienzo sin bordes.

Características principales

Lienzo unificado para bloques de cualquier tipo

Permite mezclar en un mismo espacio texto enriquecido, sticky notes, páginas web embebidas, bases de datos multi-vista, páginas enlazadas, formas geométricas y diapositivas, sin separar documento de pizarra.

IA multimodal integrada (AFFiNE AI)

Asistente capaz de generar informes profesionales, convertir esquemas en presentaciones, resumir artículos en mapas mentales, organizar planes de tareas y prototipar aplicaciones o páginas web desde una sola instrucción.

Local-first con colaboración en tiempo real

Los datos permanecen en el dispositivo del usuario; la sincronización y edición colaborativa funcionan tanto en web como en clientes multiplataforma gracias a CRDT (Yjs) y al motor OctoBase escrito en Rust.

Autoalojamiento y extensibilidad

Imagen Docker oficial para despliegue propio; arquitectura basada en BlockSuite que permitirá plugins y bloques de terceros. Documentación de autoalojamiento en docs.affine.pro/self-host-affine.

Plantillas listas para usar

Catálogo de plantillas comunitarias (tableros de visión, planificadores, notas Cornell, diarios de lectura, planificadores ADHD, itinerarios, etc.) accesibles desde affine.pro/templates.

Ecosistema técnico abierto

Construido sobre BlockSuite (editor colaborativo), y-octo (CRDT nativo en Rust), OctoBase (base de datos local-first), Electron (apps de escritorio), React, Vite y Jotai (gestión de estado).

Requisitos del sistema

  • Node.js >= 22.12.0 < 23.0.0 (según package.json del monorepo)
  • Docker y Docker Compose para despliegue en contenedores
  • Sistema operativo compatible con Electron (Linux, macOS, Windows) para clientes de escritorio
  • Navegador moderno para versión web

Instalación con Docker Compose

Despliegue rápido con Docker (recomendado para autoalojamiento)

La documentación oficial guía el despliegue mediante imagen Docker. El proyecto publica imágenes en GitHub Container Registry y ofrece botones de despliegue en Render y Sealos. No se incluye docker-compose.yml en la raíz del repositorio; consultar la guía oficial para variables de entorno, volúmenes y puertos específicos.

# Consultar documentación oficial para comando docker run o compose actualizado
# https://docs.affine.pro/self-host-affine
# Imagen: ghcr.io/toeverything/affine-self-hosted:latest

Desarrollo local (monorepo con Yarn 4)

Clonar el repositorio, instalar dependencias y lanzar el entorno de desarrollo. Requiere Node.js en el rango indicado y Rust toolchain (definido en rust-toolchain.toml).

git clone https://github.com/toeverything/AFFiNE.git
cd AFFiNE
yarn install
yarn dev

GitHub Codespaces

Desde la página principal del repositorio, botón Code → Create codespace on master. Abre un entorno preconfigurado con el proyecto clonado, construido y listo para ejecutar.

# Sin comandos locales; usar interfaz web de GitHub

Acceder al proyecto

Demo en vivo (cloud oficial)

Acceso inmediato sin instalación: https://app.affine.pro

Autoalojado (Docker)

Tras desplegar el contenedor, la interfaz web queda expuesta en el puerto configurado (por defecto 3010 según documentación habitual; verificar en guía oficial).

Clientes de escritorio

Descargas para Linux, macOS y Windows desde https://affine.pro/download

Casos de uso

  • Gestión de conocimiento personal y de equipo (wiki, notas, documentación)
  • Planificación visual con pizarra infinita: mapas mentales, diagramas, tableros Kanban
  • Bases de datos multi-vista (tabla, kanban, galería, lista) integradas en documentos
  • Creación de presentaciones y diapositivas a partir de esquemas
  • Colaboración en tiempo real con propiedad de datos local-first
  • Prototipado rápido de ideas con asistencia de IA generativa
  • Sustitución self-hosted de Notion y Miro con control total de datos

Configuración avanzada

Configuración de variables de entorno (autoalojamiento)

La guía oficial detalla variables para base de datos (PostgreSQL), almacenamiento de objetos (S3 compatible), claves de cifrado, URL pública, correo electrónico, OAuth y telemetría. No se listan aquí por ausencia de archivo .env.example en la investigación; consultar docs.affine.pro/self-host-affine.

# Ejemplo genérico (verificar en documentación oficial)
# DATABASE_URL=postgresql://user:pass@db:5432/affine
# STORAGE_TYPE=s3
# S3_ENDPOINT=https://s3.example.com
# S3_BUCKET=affine
# S3_ACCESS_KEY=xxx
# S3_SECRET_KEY=xxx
# ENCRYPTION_KEY=clave_32_bytes_base64
# PUBLIC_URL=https://affine.midominio.com

Actualización de imagen Docker

Las imágenes se publican en ghcr.io/toeverything/affine-self-hosted con etiquetas latest y versionadas. Actualizar requiere pull de la nueva imagen y recrear el contenedor manteniendo volúmenes de datos.

docker pull ghcr.io/toeverything/affine-self-hosted:latest
docker compose down
docker compose up -d

Compilación desde código fuente

Instrucciones completas en docs/BUILDING.md (referenciado en README). Incluye instalación de Rust toolchain, dependencias nativas y pasos de build para web, escritorio y móvil.

# Ver docs/BUILDING.md en el repositorio
# Requiere: Node.js 22.x, Rust (toolchain definido), pnpm/yarn 4

Gestión y mantenimiento

Copias de seguridad

Respaldar volúmenes de base de datos (PostgreSQL) y almacenamiento de objetos (S3/local). La arquitectura local-first implica que los datos críticos residen en la capa de persistencia configurada.

# Ejemplo backup PostgreSQL
docker exec -t affine-db pg_dump -U affine affine > backup_$(date +%F).sql

Logs y observabilidad

El backend expone logs estructurados; integrable con OpenTelemetry (dependencia @opentelemetry/core en resoluciones). Configurar agregación de logs según infraestructura (Docker logging drivers, Loki, ELK, etc.).

# Ver logs del contenedor
docker logs -f affine-app

Migraciones de esquema

Gestionadas internamente por Prisma (@prisma/client, @prisma/engines en dependencias). Al actualizar versión, las migraciones se aplican automáticamente al iniciar el contenedor si la base de datos está accesible.

# No se requiere comando manual; ocurre en arranque

Stack técnico

  • TypeScript
  • Rust
  • React
  • Electron
  • Vite
  • Yjs (CRDT)
  • BlockSuite (motor de editor)
  • OctoBase (base de datos local-first en Rust)
  • y-octo (binding nativo Yjs-Rust)
  • Jotai (estado)
  • napi-rs (Node-API Rust)
  • Prisma (ORM)
  • PostgreSQL (persistencia recomendada)
  • S3 API (almacenamiento de objetos)
  • Docker
  • GitHub Actions (CI/CD)

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *