## v0.0.1 (2026-04-10) Initial release of Web App Launcher — a self-hosted dashboard for organizing, monitoring, and launching web applications. ### Features - **Dashboard system** — boards, sections, and widgets with drag-and-drop reordering ([b0d77d3](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/b0d77d3), [a6b09aa](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/a6b09aa)) - **App registry & healthcheck** — register apps with icons, tags, categories; automatic status monitoring with sparkline history ([4d941f5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/4d941f5), [c5f5f84](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c5f5f84)) - **Authentication** — local auth + OAuth/Authentik integration ([2c001df](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/2c001df), [bf4e508](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/bf4e508)) - **Per-board access control** — role-based board visibility ([5bb4fbc](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/5bb4fbc)) - **Service integrations** — media services, Planka, and six additional integration types ([114dee5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/114dee5), [d73fb9c](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/d73fb9c), [55e220b](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/55e220b)) - **Widget system** — multi-entity picker, column span resizing, visual app selector grid ([5af670f](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/5af670f), [f559c93](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/f559c93), [17c8407](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/17c8407)) - **WYSIWYG inline editing** — edit dashboards in-place ([a6b09aa](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/a6b09aa)) - **SQLite database backup** — replace JSON import/export with full DB backup ([b0439e3](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/b0439e3)) - **Admin panel** — user management with deletion confirmation ([c5166ba](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c5166ba), [65783e3](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/65783e3)) - **Localization** — English and Russian ([477c0e4](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/477c0e4)) - **PWA support** — installable app with auto-discovery and multi-tab sync ([dd6958b](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/dd6958b)) - **UI polish** — ambient backgrounds, user theme overrides, bits-ui dropdown, collapsible sidebar ([0bd30c5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/0bd30c5), [c6a7de8](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c6a7de8), [b5166d9](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/b5166d9)) ### Bug Fixes - SSRF protection on URL preview endpoint ([d90507a](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/d90507a)) - Enforce API token scope on requests ([215c8fd](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/215c8fd)) - HLS.js for fullscreen camera stream ([819283f](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/819283f)) - Search dialog and store fixes ([c62ca79](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c62ca79), [bcde710](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/bcde710)) - SVG favicon and PWA manifest ([4326d95](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/4326d95)) - Polish empty states and status page layout ([76ce85c](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/76ce85c)) ### Performance - Batch-load app status history to eliminate N+1 requests ([aedc91e](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/aedc91e), [92eeead](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/92eeead)) - Optimize cold start with lazy-loading icons and parallel DB queries ([1e3a04f](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/1e3a04f)) --- ### Development / Internal - CI/CD pipeline: lint & test workflow, release workflow with Docker push and Gitea releases - Prisma schema and migrations for all entities - Linter and a11y warning cleanup ([44e1849](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/44e1849)) - Security review fixes ([5a6002b](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/5a6002b)) ---
All Commits | Hash | Message | Author | |------|---------|--------| | [76ce85c](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/76ce85c) | fix: polish empty states and status page layout | alexei.dolgolyov | | [aedc91e](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/aedc91e) | perf: batch-load app status history server-side to eliminate N+1 requests | alexei.dolgolyov | | [b5166d9](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/b5166d9) | refactor: header user menu with bits-ui dropdown, collapsible sidebar boards | alexei.dolgolyov | | [44e1849](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/44e1849) | fix: resolve all linter errors and a11y warnings | alexei.dolgolyov | | [f96cbbc](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/f96cbbc) | chore(i18n): add locale keys for widget resize, delete user, multi-picker | alexei.dolgolyov | | [5af670f](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/5af670f) | feat: multi-entity picker for status widget app selection | alexei.dolgolyov | | [f559c93](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/f559c93) | feat: widget column span resizing with visual size picker | alexei.dolgolyov | | [65783e3](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/65783e3) | feat: user deletion confirmation modal | alexei.dolgolyov | | [1e3a04f](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/1e3a04f) | perf: optimize cold start by lazy-loading icons and parallelizing DB queries | alexei.dolgolyov | | [17c8407](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/17c8407) | feat(widget-config): visual app selector grid with search and icons | alexei.dolgolyov | | [c5f5f84](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c5f5f84) | feat(app-form): icon picker, tag/category autocomplete, typography | alexei.dolgolyov | | [a6b09aa](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/a6b09aa) | feat(inline-edit): add WYSIWYG inline dashboard editing mode | alexei.dolgolyov | | [b0439e3](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/b0439e3) | feat(backup): replace JSON import/export with SQLite database backup system | alexei.dolgolyov | | [d479726](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/d479726) | feat: add app edit page with pre-populated form | alexei.dolgolyov | | [44bbf7b](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/44bbf7b) | fix(service-integrations): resolve type errors and test failures | alexei.dolgolyov | | [55e220b](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/55e220b) | feat(service-integrations): phases 9-10 — media integrations + Planka | alexei.dolgolyov | | [d73fb9c](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/d73fb9c) | feat(service-integrations): phases 3-8 — six service integrations | alexei.dolgolyov | | [50e8519](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/50e8519) | feat(service-integrations): phase 2 — integration widget & app form UI | alexei.dolgolyov | | [114dee5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/114dee5) | feat(service-integrations): phase 1 — integration architecture foundation | alexei.dolgolyov | | [c62ca79](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c62ca79) | fix: delay search dialog close so link navigation fires first | alexei.dolgolyov | | [bcde710](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/bcde710) | fix: search store now parses API envelope response correctly | alexei.dolgolyov | | [92eeead](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/92eeead) | perf: batch-load app history to eliminate N+1 fetches on board load | alexei.dolgolyov | | [4326d95](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/4326d95) | fix: use SVG icon for favicon and PWA manifest | alexei.dolgolyov | | [d90507a](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/d90507a) | fix: add SSRF protection to URL preview endpoint | alexei.dolgolyov | | [819283f](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/819283f) | fix: use HLS.js for fullscreen camera stream | alexei.dolgolyov | | [215c8fd](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/215c8fd) | fix: enforce API token scope on requests | alexei.dolgolyov | | [014de02](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/014de02) | fix: address final review blockers | alexei.dolgolyov | | [1c0a7cb](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/1c0a7cb) | feat: Phases 4-7 — Full Feature Expansion (26 features) | alexei.dolgolyov | | [8d78478](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/8d78478) | feat: add IconGrid, EntityPicker controls and enhance search panel | alexei.dolgolyov | | [395ed82](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/395ed82) | fix: address all final review findings for Phase 3 | alexei.dolgolyov | | [7d8a8fb](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/7d8a8fb) | feat(phase3): phase 7 - integration & polish | alexei.dolgolyov | | [dd6958b](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/dd6958b) | feat(phase3): PWA, auto-discovery, bookmarklet, multi-tab sync | alexei.dolgolyov | | [c6a7de8](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c6a7de8) | feat(phase3): import/export, sparklines, user theme overrides | alexei.dolgolyov | | [cba160e](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/cba160e) | fix: address all code review findings | alexei.dolgolyov | | [5a6002b](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/5a6002b) | fix: address security findings from final review | alexei.dolgolyov | | [87ed928](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/87ed928) | feat(phase2): phase 6 - integration & polish | alexei.dolgolyov | | [5bb4fbc](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/5bb4fbc) | feat(phase2): per-board access control UI | alexei.dolgolyov | | [477c0e4](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/477c0e4) | feat(phase2): localization EN/RU + additional widget types | alexei.dolgolyov | | [bf4e508](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/bf4e508) | feat(phase2): OAuth/Authentik integration + drag-and-drop reordering | alexei.dolgolyov | | [bb3b1a5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/bb3b1a5) | fix: resolve runtime errors and missing routes | alexei.dolgolyov | | [e6b50fb](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/e6b50fb) | feat(mvp): phase 8 - integration, testing & deployment | alexei.dolgolyov | | [0bd30c5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/0bd30c5) | feat(mvp): phase 7 - UI polish & ambient backgrounds | alexei.dolgolyov | | [c5166ba](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/c5166ba) | feat(mvp): phase 6 - admin panel | alexei.dolgolyov | | [b0d77d3](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/b0d77d3) | feat(mvp): phase 5 - board, section & widget system | alexei.dolgolyov | | [4d941f5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/4d941f5) | feat(mvp): phase 4 - app registry & healthcheck | alexei.dolgolyov | | [2c001df](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/2c001df) | feat(mvp): phase 3 - authentication system | alexei.dolgolyov | | [f1b1aa5](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/f1b1aa5) | feat(mvp): phase 2 - database schema & services layer | alexei.dolgolyov | | [cf6bde2](https://git.dolgolyov-family.by/alexei.dolgolyov/web-app-launcher/commit/cf6bde2) | feat(mvp): phase 1 - project scaffolding & tooling | alexei.dolgolyov |