Wekan
Open source kanban board application built with Meteor
Alternative to: trello
v9.33
2026-05-31This 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/dragscrolllibrary relies on, so scrolling only worked in the Swimlanes/Lists views. Added a new native touch-scrolling helperclient/lib/dragscrollTouch.jsthat scrolls the nearest.dragscrollcontainer with a one-finger drag (iOS is skipped, since native momentum scrolling already works there), and added thedragscrollclass 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-handleelements 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.jswas re-initialized on every list re-render without first destroying the previous instance, so twostophandlers 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-abstractionadapters (newmodels/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.jsandmodels/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.