AFFiNE es una plataforma de código abierto diseñada como un entorno unificado para gestión de conocimiento, creación colaborativa, wikis interactivas y presentaciones dinámicas. Inspirada en herramientas como Notion y Miro, pero con arquitectura modular y soporte nativo para Rust y Electron, ofrece flexibilidad extrema para personalización y despliegue multiplataforma.
Herramientas Fundamentales
Para compilar y ejecutar AFFiNE localmente, se requieren tres pilares tecnológicos:
- Node.js v20.x LTS: preferiblemente gestionado mediante
fnmpara evitar conflictos de versiones. - Rust 1.75+: instalado mediante
rustup, necesario para los módulos@affine/nativey@affine/server-native. - Yarn v4.3+: activado con
corepacky configurado en modoclassicpara compatibilidad con workspaces complejos.
Clonación y Preparación del Proyecto
Clone el repositorio oficial usando HTTPS (recomendado para entornos restringidos):
git clone https://github.com/toeverything/AFFiNE.git
cd AFFiNE
En sistemas Windows, habilite los enlaces simbólicos antes de clonar:
git config --global core.symlinks true
Luego instale las dependencias con:
yarn install --immutable
Compilación de Componentes Críticos
Ejecute los siguientes comandos secuencialmente para construir los núcleos nativos:
yarn affine @affine/native build --release
yarn affine @affine/server-native build --release
Esto genera binarios optimizados bajo packages/native/target/release/ y packages/server-native/target/release/.
Ejecución en Modo Desarrollo
Inicie el servidor frontend y backend simultáneamente con:
yarn dev
La interfaz estará disponible en http://localhost:3000. El sistema recarga automáticamente al modificar componentes React o bloques de contenido.
Generación de Aplicaciones de Escritorio
Para empaquetar la versión de escritorio, use los siguientes flujos según su sistema operativo:
macOS / Linux
BUILD_TYPE=canary yarn affine @affine/electron build
BUILD_TYPE=canary yarn affine @affine/electron generate-assets
BUILD_TYPE=canary SKIP_WEB_BUILD=1 HOIST_NODE_MODULES=1 yarn affine @affine/electron make
Windows (PowerShell)
$env:BUILD_TYPE="canary"
$env:DISTRIBUTION="desktop"
$env:SKIP_WEB_BUILD="1"
$env:HOIST_NODE_MODULES="1"
yarn affine @affine/electron package
yarn affine @affine/electron make-squirrel
yarn affine @affine/electron make-nsis
Los instaladores resultantes se ubican en packages/frontend/apps/electron/out/canary/make/.
Validación Automatizada
Ejecute pruebas unitarias y E2E para verificar integridad funcional:
yarn test --coverage
yarn workspace @affine-test/affine-local e2e --headed
Las pruebas E2E utilizan Playwright y validen flujos como creación de páginas, importación de Markdown y sincronización offline.
Soporte Móvil y Accesibilidad
El frontend está construido con Next.js y Tailwind CSS, garantizando adaptabilidad responsiva. Al acceder desde dispositivos móviles a http://localhost:3000, se activa automáticamante un layout optimizado con gestos táctiles y menús colapsables.
Solución de Errores Comunes
- "EPERM: operation not permitted" en Windows: ejecute PowerShell como administrador y desactive temporalmente el antivirus.
- Fallo en
yarn install: limpie caché y fuerce reinstalación:yarn cache clean && rm -rf node_modules && yarn install. - Retrasos en compilación: active el modo incremental con
yarn affine @affine/native build --incremental.