Worklog is a local-first desktop project manager for small development teams. It is designed for fast, keyboard-driven planning with a Kanban workflow, transparent local data, and no cloud dependency for core usage.
v1.3.0 is a stability-focused release that brings robust Linux rendering fixes and a refined update workflow. We've hardcoded environment overrides to prevent crashes on modern Wayland systems and streamlined how you receive new versions.
🐧 Native Linux Rendering Fixes
Hardcoded WEBKIT_DISABLE_DMABUF_RENDERER=1 and GDK_BACKEND=x11 internally to solve the EGL_BAD_PARAMETER crashes and "grey screen" issues on modern rolling-release distributions like Arch Linux.
🛠️ Simplified Update Workflow Transitioned to a "Discovery & Manual Update" model. The app will still notify you of new versions, but will direct you to the releases page to ensure a clean, stable installation every time.
📦 New Linux Installer A native shell installer that extracts the AppImage and merges high-resolution icons directly into your desktop environment.
⚡ Database Lazy Loading Implemented infinite scroll and deferred rendering for the Kanban board. The application now uses paginated SQL queries and only renders tickets as you scroll, dramatically improving performance and memory usage for workspaces with hundreds of tickets.
Full changelog: https://github.com/regisx001/Worklog/compare/app-v1.2.0...app-v1.3.0
Worklog is built around a simple hierarchy:
Workspace -> Board -> Ticket
That structure keeps the app focused on one job: help a small team organize work without turning the product into a heavyweight project suite. The app is meant to feel instant, predictable, and easy to operate from the keyboard.
The concept is intentionally local-first:
Worklog is not trying to be a cloud PM platform. The long-term idea is a desktop tool that stays small, fast, and honest about where data lives, while still covering the everyday planning flow a team actually needs.
The product direction centers on:
The app already supports:
The roadmap is intentionally gradual. The goal is to make Worklog more useful without breaking the core principles above.
Planned areas of growth include:
Worklog uses a layered local architecture:
UI -> hooks -> repository layer -> SQLite
That keeps the app predictable and makes the persistence layer the source of truth for local data. Route and layout boundaries own workspace and board scope, while hooks handle the async work and repository calls.
Worklog stores app data inside the selected workspace path:
.worklog/worklog.dbNo cloud backend is required for normal operation.
Worklog can be installed through the APT repository using a dedicated keyring file and the signed-by option, which is the recommended modern APT setup.[1][2]
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo mkdir -p /usr/share/keyrings
curl -fsSL https://regisx001.github.io/worklog-apt/pubkey.asc \
| sudo gpg --dearmor -o /usr/share/keyrings/worklog-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/worklog-archive-keyring.gpg] https://regisx001.github.io/worklog-apt any main" \
| sudo tee /etc/apt/sources.list.d/worklog.list
sudo apt update
sudo apt install worklog
If the repository is already configured, future updates can be installed with the normal system update flow using sudo apt update && sudo apt upgrade.[2][3]
Worklog is also available from the Arch User Repository, where AUR packages are typically installed through helpers such as yay.[4][5]
yay -S worklog-bin
If yay is not installed yet, install it first and then use the command above to install worklog-bin from the AUR.[6][5]
If you download the .AppImage release and experience an immediate crash with the error Could not create default EGL display: EGL_BAD_PARAMETER, this is a known issue caused by the bundled Ubuntu Wayland library conflicting with modern Wayland compositors (like on Arch Linux).
You can bypass this by forcing the AppImage to use your system's native Wayland library instead of the bundled one:
LD_PRELOAD=/usr/lib/libwayland-client.so ./worklog_x.x.x_amd64.AppImage
Alternatively, we strongly recommend using the .deb, .rpm, or AUR package for better system integration on Linux.
Install dependencies:
bun install --frozen-lockfile
Run the frontend during development:
bun run dev
Run the desktop app during development:
bun run tauri dev
Type and Svelte checks:
bun run check
Frontend build:
bun run build
Desktop build:
bun run tauri:build
Ctrl/Cmd + K: open command paletteCtrl/Cmd + N: create ticketCtrl/Cmd + B: open create board dialogCtrl/Cmd + S: manual sync actionCtrl/Cmd + +: zoom inCtrl/Cmd + -: zoom outCtrl/Cmd + 0: reset zoom to 100 %M on a focused ticket: move it to the next statusEscape: close the ticket detail panelLinux dependencies used in CI:
sudo apt-get update
sudo apt-get install -y \
build-essential \
pkg-config \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libappindicator3-dev \
librsvg2-dev \
patchelf
The CI workflow lives in ci.yml. It runs on pushes and pull requests when core source or build files change.
The publish workflow lives in release.yml. Releases are tag-driven and trigger when a tag matching app-v* is pushed.
git tag -a app-v0.1.0 -m "Release app-v0.1.0"
git push origin app-v0.1.0
MIT