{"id":47605284,"url":"https://github.com/regisx001/worklog","last_synced_at":"2026-05-07T03:01:58.521Z","repository":{"id":345421720,"uuid":"1185828719","full_name":"regisx001/Worklog","owner":"regisx001","description":"Worklog is a local-first desktop project manager for small development teams. It is built for fast, keyboard-first planning with a Kanban workflow and zero cloud dependency for core usage. ","archived":false,"fork":false,"pushed_at":"2026-05-06T14:03:16.000Z","size":17965,"stargazers_count":58,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-06T16:10:22.511Z","etag":null,"topics":["desktop-application","git","rust","svelte","sveltekit","tauri","typescript"],"latest_commit_sha":null,"homepage":"https://regisx001.github.io/Worklog/","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/regisx001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-19T01:31:50.000Z","updated_at":"2026-05-06T16:07:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"9d293c8a-6a89-4d88-acdb-1bef71fb59b3","html_url":"https://github.com/regisx001/Worklog","commit_stats":null,"previous_names":["regisx001/worklog"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/regisx001/Worklog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2FWorklog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2FWorklog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2FWorklog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2FWorklog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/regisx001","download_url":"https://codeload.github.com/regisx001/Worklog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regisx001%2FWorklog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32720776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-application","git","rust","svelte","sveltekit","tauri","typescript"],"created_at":"2026-04-01T19:10:42.419Z","updated_at":"2026-05-07T03:01:58.513Z","avatar_url":"https://github.com/regisx001.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Worklog : Local-first Desktop Project Manager\n\n\u003cimg width=\"1922\" height=\"818\" alt=\"Worklog banner\" src=\"https://github.com/user-attachments/assets/aee54de1-58de-4bca-a3f4-246ec4dd4713\" /\u003e\n\n***\n\nWorklog is a local-first desktop project manager for small development teams.\nIt is designed for fast, keyboard-driven planning with a Kanban workflow, transparent local data, and no cloud dependency for core usage.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/d594e8a5-478c-481d-8c85-77a51831994c\" alt=\"Kanban board view\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/5f490ae9-9a70-4d48-a857-2a931747d9d3\" alt=\"Board detail\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/ef247d55-a48c-40dd-93d8-81e4d2f6accb\" alt=\"Ticket detail panel\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/b440515b-fc2e-47fc-a829-ee895010b133\" alt=\"Table view\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/c24f6428-204c-49e6-962e-f37fee2ed120\" alt=\"Timeline view\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/86a387f0-abce-4e89-bbac-0fb3e36212b5\" alt=\"Workspace settings\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/dff3f483-0a7d-4d7e-ac1f-41ce2eb95403\" alt=\"Command palette\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n***\n\n## 🎉 Latest Release — v1.2\n\n\u003e **[Download v1.2.0 for your platform →](https://github.com/regisx001/Worklog/releases/tag/app-v1.2.0)**\n\nv1.2 is a major power-user update that moves Worklog beyond basic task management and into deeper workflow integration. It introduces background Git synchronization, adaptive UI scaling, and direct board management — all without touching the local-first, offline-first foundation.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/d419804a-734a-4398-99e0-89fdbafe66af\" alt=\"Worklog Kanban board with Backlog, To Do, In Progress, and Done columns\" /\u003e\n      \u003cbr /\u003e\u003cstrong\u003eKanban Board — full workspace overview\u003c/strong\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/dbbf244f-0700-494c-a0ea-78895de22f00\" alt=\"Git Sync settings panel with remote URL, access token, branch, and auto-sync toggle\" /\u003e\n      \u003cbr /\u003e\u003cstrong\u003eGit Auto-Sync — configure and forget\u003c/strong\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/126f120e-8453-4cba-bc39-15ccc1921da4\" alt=\"Application Zoom settings showing 190% scale with Ctrl+/- hint\" /\u003e\n      \u003cbr /\u003e\u003cstrong\u003eGlobal Zoom — 50 % to 200 % with keyboard shortcuts\u003c/strong\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/fc58155e-e808-46b1-9fc5-8daf260b426d\" alt=\"Board context menu showing Open Board, Edit Board, Copy Board ID, and Delete Board\" /\u003e\n      \u003cbr /\u003e\u003cstrong\u003eBoard Context Menu — rename and edit without leaving the sidebar\u003c/strong\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### What shipped in v1.2\n\n**🔄 Git Auto-Sync**\nBackground scheduler keeps your local workspace in parity with a private GitHub repository. Configure the remote URL, personal access token, branch, and sync interval (1 minute to 6 hours) directly from Settings → Git Sync. Uses a pull-before-push strategy to keep history clean. Toggle auto-sync on or off at any time.\n\n**🔍 Global Application Zoom**\nScale the entire UI from 50 % to 200 % using the Zoom settings tab or live keyboard shortcuts (`Ctrl/Cmd` + `+`, `-`, `0`). The preference is persisted locally and restored on the next launch, so the app always opens at the scale you chose.\n\n**✏️ Edit Board from Sidebar**\nRight-click any board in the sidebar to open a context menu with options to open, edit, copy the board ID, or delete. The Edit Board action lets you update the board name and description inline without navigating away from your current view.\n\n**🛠️ Schema Migration Infrastructure**\nA professional SQLite migration system (now at schema version 11) ensures that every future feature addition safely migrates existing data with no manual steps and no data loss.\n\n**Full changelog:** https://github.com/regisx001/Worklog/compare/app-v1.1.0...app-v1.2.0\n\n***\n\n## What Worklog Is\n\nWorklog is built around a simple hierarchy:\n\nWorkspace -\u003e Board -\u003e Ticket\n\nThat 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.\n\nThe concept is intentionally local-first:\n\n- data stays on the machine that owns the workspace\n- the app works offline\n- the storage model remains transparent and portable\n- every meaningful action is explicit\n\n## Product Direction\n\nWorklog 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.\n\nThe product direction centers on:\n\n- board-based planning that stays easy to scan\n- quick navigation and command-driven workflows\n- lightweight collaboration through transparent local or project data\n- Git-friendly, portable project state instead of vendor lock-in\n- a clean path from personal planning to small-team coordination\n\n## Current Shape\n\nThe app already supports:\n\n- workspace, board, and ticket management\n- a Kanban board with Backlog, Todo, In Progress, and Done columns\n- ticket details with inline editing and comments\n- board and ticket context actions via right-click menus\n- command palette and keyboard shortcuts\n- workspace persistence with restore on startup\n- background Git auto-sync with configurable intervals and pull-before-push strategy\n- global application zoom (50 % – 200 %) with keyboard shortcuts and persistence\n- Edit Board action from the sidebar context menu\n- SQLite schema migration infrastructure for safe, lossless upgrades\n\n## Future Plans\n\nThe roadmap is intentionally gradual. The goal is to make Worklog more useful without breaking the core principles above.\n\nPlanned areas of growth include:\n\n- stronger board organization tools, such as filters, saved views, and better prioritization\n- richer ticket metadata, including more flexible fields for planning and handoff\n- better search and navigation across workspaces, boards, and tickets\n- more explicit project history and portable workspace snapshots\n- improved backup, export, and restore workflows\n- deeper Git-native workflows for teams that want work state to stay visible and auditable\n- more keyboard shortcuts and faster bulk actions for power users\n- continued UI polish, accessibility work, and responsiveness improvements\n\n## How It Works\n\nWorklog uses a layered local architecture:\n\nUI -\u003e hooks -\u003e repository layer -\u003e SQLite\n\nThat 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.\n\n## Stack\n\n- Desktop shell: Tauri v2\n- Frontend: SvelteKit + TypeScript\n- Runtime and package manager: Bun\n- Persistence: SQLite via the Tauri SQL plugin\n- Styling: semantic HTML, app shell styles, and compact desktop-oriented UI patterns\n\n## Project Structure\n\n- [src](src): SvelteKit frontend app\n- [src/lib/components/app](src/lib/components/app): App feature components\n- [src/lib/hooks](src/lib/hooks): Runes-based state and domain hooks\n- [src/lib/db](src/lib/db): Repository and local database layer\n- [src-tauri](src-tauri): Rust and Tauri desktop runtime\n- [docs](docs): Architecture and dataflow notes\n- [.github/workflows](.github/workflows): CI and release pipelines\n\n## Local Data\n\nWorklog stores app data inside the selected workspace path:\n\n- `.worklog/worklog.db`\n\nNo cloud backend is required for normal operation.\n\n## Installation\n\n### Debian / Ubuntu\n\nWorklog 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]\n\n```bash\nsudo apt update\nsudo apt install -y ca-certificates curl gnupg\nsudo mkdir -p /usr/share/keyrings\ncurl -fsSL https://regisx001.github.io/worklog-apt/pubkey.asc \\\n  | sudo gpg --dearmor -o /usr/share/keyrings/worklog-archive-keyring.gpg\n\necho \"deb [signed-by=/usr/share/keyrings/worklog-archive-keyring.gpg] https://regisx001.github.io/worklog-apt any main\" \\\n  | sudo tee /etc/apt/sources.list.d/worklog.list\n\nsudo apt update\nsudo apt install worklog\n```\n\nIf the repository is already configured, future updates can be installed with the normal system update flow using `sudo apt update \u0026\u0026 sudo apt upgrade`.[2][3]\n\n### Arch Linux / AUR\n\nWorklog is also available from the Arch User Repository, where AUR packages are typically installed through helpers such as `yay`.[4][5]\n\n```bash\nyay -S worklog-bin\n```\n\nIf `yay` is not installed yet, install it first and then use the command above to install `worklog-bin` from the AUR.[6][5]\n\n## Getting Started\n\nInstall dependencies:\n\n```bash\nbun install --frozen-lockfile\n```\n\nRun the frontend during development:\n\n```bash\nbun run dev\n```\n\nRun the desktop app during development:\n\n```bash\nbun run tauri dev\n```\n\n## Development Commands\n\nType and Svelte checks:\n\n```bash\nbun run check\n```\n\nFrontend build:\n\n```bash\nbun run build\n```\n\nDesktop build:\n\n```bash\nbun run tauri:build\n```\n\n## Keyboard Shortcuts\n\n- `Ctrl/Cmd` + `K`: open command palette\n- `Ctrl/Cmd` + `N`: create ticket\n- `Ctrl/Cmd` + `B`: open create board dialog\n- `Ctrl/Cmd` + `S`: manual sync action\n- `Ctrl/Cmd` + `+`: zoom in\n- `Ctrl/Cmd` + `-`: zoom out\n- `Ctrl/Cmd` + `0`: reset zoom to 100 %\n- `M` on a focused ticket: move it to the next status\n- `Escape`: close the ticket detail panel\n\n## Prerequisites\n\n- Bun\n- Rust stable toolchain\n- Tauri system dependencies for your OS\n\nLinux dependencies used in CI:\n\n```bash\nsudo apt-get update\nsudo apt-get install -y \\\n    build-essential \\\n    pkg-config \\\n    libgtk-3-dev \\\n    libwebkit2gtk-4.1-dev \\\n    libappindicator3-dev \\\n    librsvg2-dev \\\n    patchelf\n```\n\n## CI And Releases\n\nThe CI workflow lives in [ci.yml](.github/workflows/ci.yml). It runs on pushes and pull requests when core source or build files change.\n\nThe publish workflow lives in [release.yml](.github/workflows/release.yml). Releases are tag-driven and trigger when a tag matching `app-v*` is pushed.\n\n### Release Steps\n\n1. Update version in [package.json](package.json), [src-tauri/Cargo.toml](src-tauri/Cargo.toml), and [src-tauri/tauri.conf.json](src-tauri/tauri.conf.json).\n2. Commit and push the changes.\n3. Create and push a release tag:\n\n```bash\ngit tag -a app-v0.1.0 -m \"Release app-v0.1.0\"\ngit push origin app-v0.1.0\n```\n\n4. GitHub Actions builds and uploads artifacts for macOS, Linux, and Windows.\n5. The workflow also produces AUR-ready artifacts.\n\n## Recommended IDE Setup\n\n- VS Code\n- Svelte extension\n- Tauri extension\n- rust-analyzer extension\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregisx001%2Fworklog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fregisx001%2Fworklog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregisx001%2Fworklog/lists"}