Skip to content
Building from Source

Building from Source

The official build pipeline uses SCons as the orchestrator, run from the monorepo root.

Pipeline

build frontend (Vite)  →  hybrid backend build  →  Electron + electron-builder
frontend/dist/              dist/vectora/vectora(.exe)   frontend/dist-electron/

The “hybrid build” compiles only the backend package to C via Nuitka (--mode=package, producing a .pyd), then uses PyInstaller to package the launcher + that compiled module + the Python libs into a single executable. Compiling only the backend (instead of pure Nuitka onefile) avoids running out of memory compiling giant dependencies (google.genai.types, LanceDB) straight to C.

Commands

scons release          # full build + native installer for the current OS

Build prerequisites

  • Python 3.13 (pinned — the Nuitka version in use doesn’t support 3.14 yet)
  • uv
  • Node.js 24+ and pnpm
  • On Windows: Visual Studio Build Tools (MSVC) + Windows SDK, for Nuitka’s C toolchain

Quality

scons tests       # full suite (pytest + vitest)
scons coverage    # same suite, with coverage report
scons lint        # ruff + ty + bandit (Python) + tsc + oxlint (TypeScript)

Infrastructure Docker (not the app)

scons docker      # spins up Postgres + Redis + Qdrant for complete mode

See Docker and Storage.