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.
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.
# 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).
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.
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.
# 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 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.
# 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.
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.).
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.
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
- Repositorio oficial GitHub: https://github.com/toeverything/AFFiNE
- Sitio web y descargas: https://affine.pro
- Demo en vivo: https://app.affine.pro
- Documentación de autoalojamiento: https://docs.affine.pro/self-host-affine
- BlockSuite (motor de editor): https://github.com/toeverything/BlockSuite
- OctoBase (base de datos): https://github.com/toeverything/OctoBase
- y-octo (CRDT nativo): https://github.com/y-crdt/y-octo
- Plantillas comunitarias: https://affine.pro/templates
- Blog y notas de versión: https://affine.pro/blog
- Comunidad Discord: https://affine.pro/redirect/discord
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
