Table of Contents
- What is not Cross-Platform
- What is Cross-Platform
- Prototype Strategy
- Future
- Wishes to all web frameworks
- List of realtime web frameworks
- Screenshot
- Talks
- Roadmap
- Standards
- Browsers developed for therapy reasons
- Browsers that have Javascript
- Browsers without using Websockets
- Browsers that do not support Javascript
- Browsers that are programmable
- Support more databases
- Graphics
- Programming language alternatives
- Benchmarks
- Screenshot of Multiverse WeKan at FreeDOS Dillo
- Screenshot of Multiverse WeKan at Netsurf
- Prototypes
What is not Cross-Platform
- Requires CPU to support AVX
- Bun Javascript Engine https://bun.sh
- MongoDB 5.x and newer https://github.com/turnkeylinux/tracker/issues/1724#issuecomment-2351544191
- Does not work at s390x
- Bun Javascript Engine https://github.com/oven-sh/bun/issues/2632
- Deno Javascript Engine https://github.com/denoland/deno/issues/20212#issuecomment-1756663943
- Lazarus IDE https://www.lazarus-ide.org
- FreePascal programming language https://www.freepascal.org
- TigerBeetle database https://github.com/tigerbeetle/tigerbeetle/issues/2241
What is Cross-Platform
- Works at s390x
- Programming languages
- Node.js https://nodejs.org https://github.com/wekan/ferretdb/tree/main/node-deno-bun (not Deno or Bun)
- C89 https://github.com/xet7/darkesthour
- PHP https://github.com/wekan/php
- Go https://github.com/wekan/wekango
- Tcl/Tk
- Web Frameworks
- V veb https://github.com/vlang/v/issues/18737
- Gambas https://github.com/wekan/hx/tree/main/prototypes/ui/gambas
- Python Py4Web https://py4web.com
- Ruby on Rails https://github.com/werot
- WeKan Studio https://github.com/wekan/wekanstudio
- Programming languages
- Works at AmigaOS 3.x/4.x/MorphOS/AROS, Win/Mac/Linux
- Web frameworks
- FreePascal https://github.com/wekan/wami
- Web frameworks
- GUI
Prototype Strategy
- Try building many prototypes, see what works
- https://en.wiktionary.org/wiki/throw_things_at_the_wall_and_see_what_sticks
Future
- Will this happen? With what tech? See https://github.com/wekan/wekan/blob/main/FUTURE.md
- You can comment at https://github.com/wekan/wekan/issues/4578
- You can help by sending PR to any prototype repo mentioned below
Wishes to all web frameworks
- Documentation about how to upgrade, all required steps. Or alternatively, a script that does changes required to upgrade.
- Using parts of frameworks as separate packages, like:
- Authentication, like OAuth2, Gmail, etc
- Option to not use websockets, because at some corporate networks do not allow them.
- Option to not have Javascript at frontend, having SSR only. Working with and without Javascript at frontend, like ufront did.
- https://github.com/ufront/ufront
- https://jasono.co/2020/10/03/im-going-to-write-a-web-app-framework-again-maybe-well-see/
- Please do not discontinue HTML (no Javascript) version https://news.ycombinator.com/item?id=37558372
- Storing session to database, for round robin
- Not having build step:
- Keep all files at directories they currently are, with understandable directory structure naming, like:
- Feature name
- Feature part name 1
- Feature part name 2
- Feature name
- Only use file from it's location on page where it is needed
- Cache dependencies. Make possible coding offline.
- Do not uglify
- https://world.hey.com/dhh/you-can-t-get-faster-than-no-build-7a44131c
- Rails World Opening Keynote by DHH
- I merged all branches to one main branch, because merging between branches did take a lot of time.
- Do not use linters like eslint and prettier. What I did, is I removed all linters, like eslint, prettier etc, because they did disagree about syntax. Point is to make to code minimal change, that fixes something, or adds some feature. Not that most commits would be about fixing syntax.
- Keep all files at directories they currently are, with understandable directory structure naming, like:
- How to not become slow and unresponsive after a week https://github.com/wekan/wekan/issues/5140
- Run code like CGI, release all memory
- Looking for most cross-platform web frameworks, supporting many different CPU, OS and database.
- Both On-Premise AND MultiCloud possible
- License: MIT and other https://copyfree.org
List of realtime web frameworks
- Meteor
- Helene
- Forum Post https://forums.meteor.com/t/helene-a-lightweight-real-time-web-framework-for-node-js-and-bun/60626
- Repo https://github.com/leonardoventurini/helene
- Discussions https://github.com/leonardoventurini/helene/discussions
- NPM package https://www.npmjs.com/package/helene
- Discord https://discord.com/invite/PbY36PU75C
- Any others?
Screenshot
Supporting many more webbrowsers:

Talks
- Maintainer of WeKan since December 2016, xet7 (Lauri Ojansivu), about WeKan Multiverse at EU NGI Dapsi https://www.youtube.com/watch?v=BPPjiZHVeyM
- https://dapsi.ngi.eu/20-new-solutions-to-bring-the-power-of-data-back-to-peoples-hands/
- https://dapsi.ngi.eu/hall-of-fame/multiverse/
- WeKan Open Source kanban: add multiple Import/Export/Sync options and UI Designer, making it possible to create any app.
Roadmap
From https://github.com/wekan/wekan/issues/4578#issuecomment-1407769397
Standards
- Web Sustainability Guidelines (WSG) 1.0 at a Glance
- https://w3c.github.io/sustyweb/glance.html
- Minimize size, support all devices https://w3c.github.io/sustyweb/#benefits-90
- Other standards? https://news.ycombinator.com/item?id=36675451
Browsers developed for therapy reasons
Are you fed up? Need some therapy? Write a webbrowser!
- Gosub
- Ladybird
Browsers that have Javascript
- Use Javascript to add drag-drop etc Javascript features, and hide UI elements like buttons etc that are for non-Javascript
Browsers without using Websockets
- Maybe with long poll. Or no live update, require webpage reload.
- For internal corporate networks where websockets are not allowed
Browsers that do not support Javascript
or have Javascript disabled for security reasons.
- Netsurf https://www.netsurf-browser.org/downloads/ , Development Builds https://ci.netsurf-browser.org/builds/
- RISC OS https://www.riscosopen.org/content/downloads , https://www.riscosdev.com/direct/
- ReactOS https://reactos.org , https://github.com/howinfo/howinfo/wiki/ReactOS
- Redox OS https://www.redox-os.org
- Haiku, Linux, Windows, Amiga, Atari etc
- Amiga: AWeb, iBrowse
- Dillo Webbrowser at FreeDOS https://github.com/wekan/wekan/issues/4578#issuecomment-1248525591
- Netscape, IE, etc all browsers at all OS/CPU
- FreeDOS: Dillo, Arachne
- Text based browsers: Lynx, Links, w3m (sudo apt-get install w3m w3m-img)
- Ancient browsers:
Browsers that are programmable
Support more databases
- SQLite
- PostgreSQL
- Migrations between databases
- Using many databases at the same time
- Offline or Local-First
Graphics
- Raphael JS, supports also many legacy browsers, with VML and SVG graphics https://dmitrybaranovskiy.github.io/raphael/
- Related forked repos for various graphics at https://github.com/raphaeljsorg
- Or alternatively, just use HTML4, images, imagemaps etc to be compatible to non-Javascript browsers
Programming language alternatives
-
Optionally, use some transpiler:
- https://en.wikipedia.org/wiki/Source-to-source_compiler
- Haxe https://haxe.org , with HaxeUI GUI/WebUI and TUI
- Wax https://github.com/xet7/wax
- Nim https://nim-lang.org
- V https://vlang.io
- Maybe transpiling UI to/from HaxeUI XML, HTML4, HTML5, Gopher, Gemini, Lazarus, Gambas, Godot, MUI/ZUI Amiga/AROS
-
Cross-platform:
- C89 code for 30+ OS/CPU like at https://github.com/xet7/darkesthour
- Pascal code with TRSE https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/
-
Embedded webserver, for example:
-
Try to avoid strange NPM packages
Benchmarks
- For selecting programming language:
- https://github.com/wekan/hx/tree/main/prototypes/code/webserver
- https://forums.meteor.com/t/performance-tests-between-meteor-3-meteor-2-help-on-format/60458
- https://www.techempower.com/benchmarks/
- https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks
Screenshot of Multiverse WeKan at FreeDOS Dillo
Screenshot of Multiverse WeKan at Netsurf
Group and count by first character of board names
From https://github.com/wekan/wekan/issues/4578#issuecomment-1250143726
When there is a lot of boards, it is very useful to group by first character of board (and after that click charater to see list of boards for that character, to be added later). I could not figure out how to do it with MongoDB aggregate query. Here is how I did it with SQLite, for type board. SQLite returns results immediately. Note that emojis, UTF-8 shows also on Netsurf browser. TODO is to figure out, could I get these visible also in FreeDOS Dillo browser.
SELECT _id, substr(title,1,1), COUNT(*), type from boards
WHERE type=:type GROUP BY substr(title,1,1) ORDER BY substr(title,1,1) ASC;
Actually, somewhere I saved answer from ChatGPT or Bing AI search, what this SQL query using MongoDB Javascript syntax. So maybe I should ask again.
https://github.com/wekan/php/blob/main/page/allboardschar.php
Prototypes
Redbean
- Currently xet7 actively working with this prototype: https://github.com/wekan/wekanstudio
- https://redbean.dev
- Minimal kanban board drag drop example
- Repo https://github.com/wekan/hx/tree/main/prototypes/code/webserver/works/fullmoon
- Redbean amd64 binary works at Win/Mac/Linux/BSD/BIOS without any modifications, because it is based on Cosmopolitan https://github.com/jart/cosmopolitan
- Uses HTMX https://htmx.org at UI
- Saves to SQLite database
- Petclinic fork, using Blink to run at s390x https://github.com/wekan/wekan/wiki/s390x#petclinic-s390x
PHP
- Repo https://github.com/wekan/php
- Features:
- Some webpages compatible with all browsers
- SQLite list all boards with first character, show board with some data
- MongoDB test for newer MongoDB
- upload file(s) with drag-drop, for upcoming feature https://github.com/wekan/wekan/issues/2936
- RTL https://github.com/wekan/wekan/issues/3376#issuecomment-1243922087
- Not yet: Login, Move card
Gambas
- Repo https://github.com/wekan/hx/tree/main/prototypes/ui/gambas
- Features: Login, dropdown menu structure, SQLite database
- Not yet: Show board
- Problems: Gambas login page etc requires Javascript, does not work in Netsurf
Meteor SSR
- https://github.com/wekan/we
- Features:
- Only serverside rendering. Javascript removed removed from frontend.
- Only test webpage. No actual features.
Node.js 20, Bun and Deno
- Repo https://github.com/wekan/ferretdb/tree/main/node-deno-bun
- Features:
- main.js makes database queries to many databases
- Database drivers:
- MongoDB driver for Legacy MongoDB 3.2.x, using MongoDB from
sudo snap install wekan
- MongoDB driver for newest MongoDB included, using MongoDB 6.x from rebuild-wekan.sh from https://github.com/wekan/wekan
- FerretDB proxy to PostgreSQL, from docker-compose.yml
- FerretDB proxy to SQLite, from docker-compose.yml
- MongoDB driver for Legacy MongoDB 3.2.x, using MongoDB from
- Bun size is about 93 MB
- Deno size is usually about 350 MB https://github.com/wekan/wekan-node20/releases , but from source built Linux arm64 is 1.1 GB because of some bug somewhere.
- Deno also includes Node.js as Deno's Node.js compatibility layer.
- Node.js supports many CPU/OS
- Node.js is used in production and has traceability. https://changelog.com/jsparty/294
- https://github.com/wekan/wekan/wiki/s390x
- https://nodejs.org/dist/latest-v20.x/
- https://github.com/wekan/node-v14-esm/releases/tag/v14.21.4
Haxe
- https://haxe.org
- Hello world example
- Repo https://github.com/wekan/hx/blob/main/prototypes/code/hello
- Transpiled with Haxe to many programming languages
- Tinkweb
- Repo https://github.com/wekan/hx/tree/main/prototypes/ui/tinkweb
- Has router and webpage
- Transpiles to PHP and Node.js
FreePascal
- Repo https://github.com/wekan/wami
- Some static pages. At upload page, uploading file now works.
- Previous:
- Repo https://github.com/wekan/hx/tree/main/prototypes/code/webserver/works/freepascal-router
- Router and some webpage
- Works at many retro and modern OS, but not at s390x that FreePascal does not support yet https://wiki.freepascal.org/ZSeries
FreeDOS and Bash
- Repo https://github.com/wekan/wedos
- Features:
- DOS: .bat script, that shows menu, and uses SQLite DOS version to make queries to WeKan SQLite database
- Bash: .sh script, that shows menu, and uses SQLite CLI to make queris to WeKan SQLite database
Minio
- Repo: https://github.com/wekan/minio-metadata
- Features:
- Uses Bash script and CLI binaries to migerate text data and attachments from MongoDB to SQLite and Minio
- There is Node.js, Go etc drivers for using Minio
CloudFlare Workers
- Developing
- D1 SQLite
- https://developers.cloudflare.com/d1/platform/community-projects/#d1-adapter-for-kysely-orm
- https://blog.cloudflare.com/d1-open-beta-is-here/
- https://blog.cloudflare.com/introducing-d1/
- https://www.cloudflare.com/developer-platform/d1/
- https://blog.cloudflare.com/hyperdrive-making-regional-databases-feel-distributed/
- Northwind Traders example
- Kysely Query builder for D1 SQLite database
- https://codedamn.com/news/product/dont-use-prisma
- https://news.ycombinator.com/item?id=37804072
- https://kysely.dev
- https://github.com/kysely-org/kysely
- https://www.npmjs.com/package/kysely
- Awesome Kysely https://github.com/kysely-org/awesome-kysely
- Older database examples: https://github.com/cloudflare/db-connect
- Hono
- WebGPU
- CloudFlare TV https://cloudflare.tv
- CloudFlare https://cloudflare.com
- TODO example with KV https://github.com/wekan/cloudflare-workers-todos
Swap microframework, vs HTMX
Ruby on Rails
- https://github.com/wekan/weror . Password register and login works, there is workspaces and dragging cards, but no user management etc features yet.
Wekan
General
- Deep Dive Into WeKan
- Meteor WeKan Roadmap - board at Wekan demo
- Multiverse WeKan Roadmap
- Docs/Manual
- Change Language
- Forgot Password
- About
- Test Edge
- WeKan Design Principles
- FAQ
- IRC FAQ - answers to questions asked at IRC
- Team
- Press
- Blog
- Wekan vs Trello vs Restyaboard
- Results of Survey 2020-01
Fake: Not WeKan kanban
Security
- Allow private boards only: Disable Public Boards
- Security Disclosure and details of Security in Wekan
- Security issues
- Password Hashing
Scaling
- Cron: Hourly restart WeKan, because of memory leaks
- Maybe: Add more RAM to Node.js to prevent crash
- Clustering AWS etc
- Scaling
- Kubernetes
- Redis Oplog
- Meteor Scaling at Meteor Cloud
- Scaling at Meteor forums
Migrating
- From Previous Export, paste big WeKan JSON
- Progress: Import/Export/Sync
- From CSV/TSV
- From Trello
- From Jira
- From Asana
- From Zenkit
- From old Wekan manually
- Converting Meteor Stylus to CSS
Support priorities for new features and bugfixes
Backup
Repair
- Repair MongoDB
- Using Meteor MongoDB to repair files
- If board does not open and keeps loading
- Repair Docker
Themes
Markdown Syntax
- Wekan Markdown
- Emoji
- Mermaid Diagram DOES NOT WORK ANYMORE
- Numbered text
Login Auth
- Automatic login
- Disable Password Login
- Forgot Password
- Admin: Impersonate user
- Adding Users
- Active users Presence
- Accounts Lockout: Brute force login protection
- LDAP
- LDAP AD Simple Auth
- Keycloak
- Google login
- Azure
- OAuth2, Auth0, GitLab, RocketChat
- Oracle OIM on premise using OAuth2
- ADFS 4.0 using OAuth2 and OpenID
- Azure AD B2C using OAuth2
- Nextcloud
- CAS Please test
- SAML Please test
- Zitadel
Metrics, Logs, Stats
Integrations
Time
Features
- Multiline
- Linked Cards
- Drag Drop on Mobile and Desktop
- Rclone: Store attachments to cloud storage like S3, MinIO, etc
- Python based features
- Burndown and Velocity Chart
- Wait Spinners
- Translations
- Default Language for All Users
- Roadmap
- Features
- Planning Poker
- Scaling
- Custom Logo
- Subtasks <== Has fix
- Templates
- Cover
- Archive and Delete
- Custom Fields
- Fix Export board menu not visible on some boards
- RAM usage
- Demo
- Swimlane Documentation
- Customize Translations
Required Settings
Download
- Download Wekan for various Platforms: Supported by xet7, Operating Systems, NAS, Cloud
- Helm Chart for Kubernetes
Webservers
- Caddy
- Nginx
- Apache
- OpenLiteSpeed
- Local self signed TLS
- Let's Encrypt and Google Auth
- TLS with Node.js
- Traefik and self-signed SSL certs
REST API Docs
REST API issue
REST API client code
- Example: New card with Python3 and REST API
- Python client to REST API
- Go client to REST API
- Java
- Wekan Sandstorm cards to CSV using Python
- Excel and VBA
Webhooks
- Global Webhook
- Limiting Webhook data
- Receiving Webhooks
- Outgoing Webhook to Discord/Slack/RocketChat/Riot
- Outgoing Webhook to NodeRed
- Outgoing Webhook to PowerShell
- Security: Webhook and CA
- Outgoing Webhooks Data
- Outgoing Webhooks and Let's Encrypt
- Outgoing Webhooks Original Pull Request, multiple Webhooks, more parameters and response order
Case Studies
Development
- Kadira integration
- Debugging
- Developer Docs for Standalone Wekan
- Developer Docs for Sandstorm Wekan
- Adding new Snap setting to code
- Directory Structure
- Building Wekan for Sandstorm
- Docs - Sandstorm etc
- Beginner
- Maintainer FAQ
Issues
Wekan - OpenSource Kanban