Wekan logo

Wekan

Open source kanban board application built with Meteor

Alternative to: trello


About Versions (100)

v9.33

2026-05-31

This release adds the following fixes, In Progress:

Mobile / touch fixes (Fairphone 4 postmarketOS Firefox and Fairphone 4 Ubuntu Touch Morph browser; iPhone 12 Mini was already correct):

  • Fixed one-finger drag-to-scroll not working in the All Boards view and the Calendar view on Fairphone 4 Firefox and Ubuntu Touch Morph. These browsers do not emit the synthetic mouse events the @wekanteam/dragscroll library relies on, so scrolling only worked in the Swimlanes/Lists views. Added a new native touch-scrolling helper client/lib/dragscrollTouch.js that scrolls the nearest .dragscroll container with a one-finger drag (iOS is skipped, since native momentum scrolling already works there), and added the dragscroll class to the All Boards list and the Calendar view.
  • Fixed all text, buttons, the All Boards tables and the top bars (header and the second bar) rendering about 2x too large on Fairphone 4. getMobileMode() defaulted to mobile mode only for iPhone, so every other phone fell back to desktop mode, whose large desktop sizing looks oversized on a small phone screen. The default is now mobile mode for any phone-sized touch device (iPhone, Android/Mobile browsers, Ubuntu Touch, or a coarse-pointer touch screen with viewport width ≤ 800px); desktop browsers stay in desktop mode and the user’s own Mobile/Desktop toggle still takes priority.
  • Fixed not being able to reorder swimlanes and lists by dragging their drag handle on touch devices. The new touch-scroll helper was hijacking touches that started on a drag handle; .handle / .ui-sortable-handle elements are now excluded from touch-scrolling so dragging the handle reorders as expected.
  • Fixed a card duplicating into two cards when it was dragged by its title-row drag handle while its Card Details panel was open. The card sortable in client/components/lists/list.js was re-initialized on every list re-render without first destroying the previous instance, so two stop handlers fired per drag. It now destroys any existing sortable before re-initializing, the same guard already used for swimlanes.

Attachment storage:

  • Added configurable attachment storage backends in the admin panel: choose the default save storage and store attachments on the local filesystem, GridFS, or cloud object storage — S3-compatible (AWS S3, MinIO, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces), Azure Blob Storage, or Google Cloud Storage — via the @tweedegolf/storage-abstraction adapters (new models/lib/cloudStorage.js). Includes a “Test connection” action and English translations for the new settings.
  • Added a server-side bulk attachment move (new server/attachmentBulkMove.js and models/attachmentBulkMoveStatus.js) that moves all attachments from one storage backend to another as a background job whose progress survives the admin navigating away from or closing the page.

Thanks to xet7.

Thanks to above GitHub users for their contributions and translators for their translations.