How to build and run the Sozi SVG presentation editor
A "zooming" presentation editor
At a glance
- What is it?
- Sozi is an Electron presentation editor for SVG documents, intended for people who want presentations that change scale rather than only advance through fixed slide images. Its source build is documented, but the setup depends on older tooling and optional platform files for video export.
- Who is it for?
- Sozi fits developers, designers, and educators who want to author presentations directly in SVG and accept a source-build path tied to older tools. It is a poor fit for someone expecting an installer-first workflow, packaged video export, or documented rollback procedures.
- Can I use it commercially?
- Yes, with conditions. MPL-2.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 11 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Why Sozi edits zoomable SVG presentations
Sozi addresses a specific format: presentations that can change scale as the presentation advances. Its package description calls it "A zooming presentation editor," while the README defines it as a presentation tool for SVG documents. This makes it relevant to people who already work with SVG as a structured vector format rather than treating a presentation as a collection of fixed slide images.
The likely audience includes technical presenters, designers, educators, and developers who prepare diagrams or technical material. The documentation does not describe a hosted service, multiplayer editing, audience response features, or collaboration. Those should not be inferred from the project name. The confirmed scope is local creation and editing of SVG presentations through a desktop application, with packaging and video-export facilities around that core.
SVG also gives Sozi a different editing starting point from applications built around a fixed canvas. Vector elements, text, and paths can remain part of the document instead of being flattened into screenshots. The README does not expose Sozi's internal transition schema, zoom controls, or animation properties, so claims about specific effects would go beyond the available documentation. What is clear is the format choice: Sozi builds presentation behavior around an SVG document rather than treating each slide as an isolated raster asset.
How Sozi's Electron and SVG build fits together
The documented execution path shows a conventional Electron desktop build. The `package.json` defines `npm start` as `electron build/electron`, meaning the application starts from files generated under `build/electron`. Gulp performs the development build, and `electron-builder` is included among the development dependencies for packaging distributable archives.
The repository is divided into application source under `src/`, application resources under `resources/`, build configuration, localization files, documentation, and supporting tools. The `package.json` also lists `pdf-lib`, which confirms a PDF-related dependency, and the README documents FFmpeg binaries for video export. These entries show that Sozi handles presentation generation and output as part of a broader desktop application rather than as a plain browser page.
The README does not document Sozi's internal SVG camera model, transition timing format, undo history, or presentation playback architecture. It would therefore be unsafe to invent names for those systems. The confirmed data path is simpler: a developer obtains the source, installs Node.js and build dependencies, generates the Electron application with Gulp, and starts the generated application through npm. Presentation files are opened by the desktop program, including the example command used for debugging.
Building Sozi on Ubuntu 22.04
The source instructions say that the following sequence works on Ubuntu 22.04. First, clone the repository from the address published in the README. The build is known to work with Node.js 14 from Nodesource, so installing the system Node.js package alone may not satisfy the documented build environment.
Use these commands to fetch the repository and install Node.js and Gulp. The final command installs `gulp-cli` globally, while `npm install` resolves the dependencies declared in the repository.
git clone git://github.com/sozi-projects/Sozi.git
sudo apt install nodejs
sudo npm install --global gulp-cli
cd Sozi
npm installAfter `npm install` completes, the reader should have a local dependency tree and a source tree containing `package.json`, `package-lock.json`, and the Gulp build file. The repository includes both `package-lock.json` and `yarn.lock`, but the README specifically directs developers to `npm install`, so Yarn is not part of the documented first-use path.
The README also identifies `zip` as a required compression tool. Install it before packaging work. This command installs the tool through apt:
sudo apt install zipA successful apt installation is the expected result. The documentation does not specify a minimum version for `zip`, nor does it provide a packaged Sozi installation command for Linux. This is a source build, not an install-from-binary workflow.
Running the desktop editor and opening an SVG presentation
After dependencies are installed, build and start Sozi from the repository root. The first command invokes Gulp through the package script. The second launches Electron from the generated `build/electron` directory.
gulp
npm startThe README warns that Sozi displays an error notification at startup that can be ignored. That warning is part of the documented development run and should not be confused with a failure during the build.
For a first practical check, open an existing SVG presentation through the command line. The README provides this command as a debugging example, so it demonstrates how Sozi accepts a presentation path:
sozi my-presentation.svgThis `sozi` command is shown for an installed executable rather than `npm start`. The documented development launch is `npm start`, while the README does not explain how to pass a presentation path through that npm script. The sample therefore confirms the expected input format, an `.svg` document, without proving that the freshly built development binary is already available as `sozi` on the shell path.
The README does not provide a minimal SVG example or a documented set of editor commands for creating a first presentation. It does document that `F12` opens developer tools while Sozi is running. For troubleshooting, the Console tab can expose JavaScript errors, while `SOZI_DEVTOOLS=1` opens developer tools immediately according to the README.
Packaging platforms and supplying video export files
Sozi can build distributable archives for all supported platforms, but this path has more prerequisites than the local development launch. The README first requires `zip`, then lists additional operating-system packages for different package formats.
The packaging command is:
gulp allAfter a successful build, the application archives are written to `build/dist`. The repository does not enumerate every archive filename or installer format, so those details cannot be promised from the available documentation.
Building a Windows executable may also require Wine. The Debian and Ubuntu commands add 32-bit architecture support, update package metadata, and install `wine` with `wine32`. Debian packaging requires `devscripts` and `debhelper`, Red Hat packaging requires `rpm`, and Arch Linux packaging requires `libarchive-tools`.
Video export is optional at build time but unavailable without FFmpeg executables. The README requires platform-specific binaries in fixed resource directories, including `resources/ffmpeg/linux-x64` and `resources/ffmpeg/win32-x64`. It also lists 32-bit Linux and Windows directories plus `resources/ffmpeg/darwin-x64`. The executables must be downloaded and unzipped by the developer; the repository does not automate that acquisition. Omitting the appropriate directory does not stop the ordinary desktop build, according to the README, but it leaves video export without its required tool.
This division creates a real upgrade cost. Build dependencies, Node.js compatibility, package-manager prerequisites, and binary FFmpeg placement all need attention when the project or target platform changes.
Limits of Sozi's current setup and maintenance context
The largest documented limitation is the mismatch between the tested environment and the age of the instructions. The README says the build works with Node.js 14 on Ubuntu 22.04. It does not say that newer Node.js releases are supported, and the available package manifest now lists Electron 33 with current linting and build dependencies. A developer should therefore verify the old Node.js assumption rather than assume compatibility from the current dependency names alone.
Sozi is also source-oriented. The repository supplies build instructions, package scripts, and packaging dependencies, but the README does not provide a direct binary download for Linux or a short installation route for new users. Video export requires separate manual acquisition of FFmpeg binaries, with one directory per operating system and architecture. That is manageable for a developer who already builds desktop applications, but it adds friction for a lecturer or designer who only wants to open the editor.
The repository is not archived, and the last push was on 2026-10-11. However, recent repository activity should not be confused with a guarantee that every dependency remains compatible. The listed releases are v24.11-beta from 2024-11-17, v23.07 from 2023-07-25, and v22.09-beta from 2022-09-23. The repository does not document a rollback procedure, a supported migration path between releases, or a formal support policy in the README.
Sozi is distributed under MPL-2.0. That license permits use and modification under its stated conditions, but this review does not provide legal advice. Organizations should review the actual `LICENSE` file when distributing modified code or packaged binaries.
Sozi versus a fixed-canvas slide editor
A fixed-canvas slide editor is the practical alternative to consider when presentations must preserve one exact layout at every step. That approach treats each slide as a separate frame and changes what is visible, but it does not require the presentation itself to be an SVG document. It is a better fit for predictable classroom handouts, fixed export dimensions, and workflows centered on page-by-page layout.
Sozi takes a different approach. The document being edited is SVG, and the product is specifically concerned with zooming presentation behavior. That can benefit technical material whose natural representation is vector artwork and whose explanation depends on moving between overview and detail. It also means developers take on an SVG-based document workflow and the build requirements described above.
Neither approach automatically solves collaboration, audience analytics, or reliable playback across every browser. The Sozi README does not document those features, so Sozi should not be selected on that basis. The decision should follow the source format and movement model: choose Sozi when editing SVG and controlling scale are central requirements; choose a fixed-canvas editor when uniform slide frames and simpler presentation boundaries matter more.
Editorial conclusion
Sozi fits developers, designers, and educators who want to author presentations directly in SVG and accept a source-build path tied to older tools. It is a poor fit for someone expecting an installer-first workflow, packaged video export, or documented rollback procedures. Before adoption, verify the Node.js 14 build on the target operating system, confirm that editing SVG fits the intended presentation workflow, and obtain the correct FFmpeg binaries if video export matters. The repository was last pushed on 2026-10-11, but its documented build route still names Node.js 14, making environment compatibility the first concrete adoption check.
Frequently asked questions
What is Sozi used for?
Sozi is a presentation editor for SVG documents and is described as a zooming presentation editor. It is intended for people creating presentations whose visual state can change scale.
How do I build Sozi from source?
Clone the repository, install Node.js and Gulp, run `npm install`, then use `gulp` followed by `npm start`. The README says this procedure is known to work on Ubuntu 22.04 with Node.js 14.
Does Sozi support video export?
The README says video export requires FFmpeg executables. They must be downloaded and unzipped into the matching directory under `resources/ffmpeg` for the target platform.
What license is Sozi distributed under?
The README and `package.json` identify Sozi as free software distributed under the Mozilla Public License 2.0, or MPL-2.0.
How do I open Sozi developer tools?
The README says to press `F12` while Sozi is running. It also documents `SOZI_DEVTOOLS=1` as a way to open developer tools immediately.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/sozi-projects-sozi)