Wena is an in-progress native WeKan implementation using C89, SDL2, Nuklear and SQLite. It is not yet a complete WeKan replacement. ROADMAP.md records tested slices, remaining work and the next resume checkpoint.
Install a C compiler, Python 3, SDL2 development files and SQLite development files, then initialize the pinned MIT-licensed Nuklear source:
git submodule update --init
./build.sh build desktop
./dist/desktop/wena-desktop --database /absolute/path/wena.sqlite \
--actor local-user --board my-board --create --title "My board" --language enUse an existing parent directory. --create initializes a new local workspace
without overwriting files. Omit --create and --title to reopen it with the same
database, actor and board arguments.
The desktop supports creating cards, lists and swimlanes; editing their titles; renaming the board; reordering lists and swimlanes; moving, archiving and restoring cards; editing card descriptions and checklists with confirmed deletion and whole-checklist transfers between active cards on the same board; filtering card titles; and remembering collapsed lists and swimlanes per local actor and board. Changes use guarded SQLite transactions and survive reopening. The language selector changes canonical WeKan labels immediately and remembers the selection. Local access trusts the operating-system user; the actor argument is not a login mechanism.
The embedded Roboto font covers selected Latin, Greek and Cyrillic characters. Complete WeKan feature parity, native drag/drop, full Unicode font/RTL coverage, remote synchronization and GUI cross-platform packaging remain open. Direct Meteor/FerretDB format migration is not implemented. See native desktop details for supported behavior and limits.
UI artwork and native theme tokens use MIT-licensed SVG sources. The desktop converts these at build time to compact C89 geometry and draws them at the required scale through Nuklear. It does not bundle multiple raster sizes or an SVG/XML runtime library. The initial native theme and board pictogram use this path; complete theme/responsive parity remains in the roadmap.
./build.sh tests all
./build.sh tests --list
./build.sh tests svg
./build.sh tests checklist-move
./build.sh tests nuklear-checklist-move
./build.sh tests card-editor-sqlite
./build.sh tests nuklear-editor
./build.sh tests sanitizers
./build.sh --list
./build.sh build host
./build.sh run./build.sh run (build.bat run on Windows, or menu option 2) Run) opens the
native Nuklear desktop that build desktop (menu 1) Build, then d) Local
SDL2/SQLite desktop app) wrote, dist/desktop/wena-desktop, on a local board
where cards, lists and swimlanes can be dragged. The board is created on the
first run, as actor local-user and board my-board, in
~/Library/Application Support/Wena/wena.sqlite on macOS,
$XDG_DATA_HOME/wena/wena.sqlite (default ~/.local/share/wena/wena.sqlite)
elsewhere, or the absolute path in WENA_DATABASE. Arguments after run are
passed to wena-desktop instead. It says how to build the app when it is
missing. Started without arguments, for example by double-clicking it,
wena-desktop opens the same board itself.
Each run writes a debug folder, .tools/log/wena/YYYY-MM-DD_HH-MM-SS, in the
.tools folder Wena is checked out in (or WENA_LOG_DIR): desktop.log
records the arguments, the board opened, the source line of any startup
failure with SDL's error, the window closing, the exit status and a fatal
signal such as a crash; run.log, written by build.sh run, keeps everything
the app printed and how it ended.
The test runner executes independent native suites in parallel, serializes
shared artifact builds, and reports failures and missing prerequisites
separately. Node.js enables the optional JavaScript runtime suite. Set
WEKAN_ROOT to the canonical WeKan checkout pinned by the parity tests when
running upstream source checks.
The existing cataloged cross-platform host/target builds remain bootstrap
executables; they do not yet package the desktop application. build desktop
is a separate local SDL2/SQLite build. No release workflow is needed for local
development.
./build.sh build desktop-package creates a verified local Linux amd64 archive
with the desktop, licenses, checksums and actual host dependency requirements.
SDL2 and SQLite remain system libraries. wena-desktop --dependency-info reports
the libraries loaded on the destination machine without opening a workspace.
Use a maintained SQLite build with the documented WAL-reset fix; see the
dependency review.
Wena code is MIT licensed. Dependency provenance and platform boundaries are documented under client, imports and server.