Clone of the keanu weblite repo for the purpose of building the assets required for butter.
Find a file
N-Pex 2e12f719e8 Add random comment header to built-in avatar PNGs
To make them unique. For issue #659.
2025-09-16 12:45:50 +02:00
docs add audit and response document 2022-04-14 16:41:59 -04:00
public update user agreement regarding adult content 2025-07-26 10:54:29 +01:00
src Add random comment header to built-in avatar PNGs 2025-09-16 12:45:50 +02:00
User Research Update user-stories.md 2023-03-22 09:44:47 -04:00
.gitignore 1. notification via SW 2.manifest json for home screen app 3. icons for mobile/desktop shortcut app 2023-07-17 15:00:40 +03:00
.gitlab-ci.yml Use node 20.8.1 2024-05-29 09:54:51 +02:00
.npmrc Update Olm 2021-12-13 22:24:44 +01:00
app-icon_convene_512x512-black.svg Convene Air App Logo 2023-03-22 09:43:10 -04:00
babel.config.js Initial commit 2020-11-09 10:32:56 +01:00
create_sticker_config.js Update create_sticker_config.js 2025-05-19 10:23:51 +02:00
index.html Fix proofmode worker build error 2025-06-12 12:00:43 +02:00
LICENSE add readme and license 2020-11-04 09:06:25 -05:00
package-lock.json Build 71 2025-09-11 16:02:04 +02:00
package.json Build 73 2025-09-12 17:05:22 +02:00
package.json.bak Build 73 2025-09-12 17:05:22 +02:00
README.md Add "disableMediaSharing" config flag (default false) 2025-04-23 17:19:35 +02:00
tsconfig.json Work on attachments 2025-06-10 16:51:57 +02:00
update_version.sh Add version update script 2021-05-20 13:03:02 +02:00
vite.config.mjs Fix room export 2025-07-15 14:19:17 +02:00

Keanu Weblite aka "Convene"

  • Private, instant group chat in a browser "No account, no app, no hassle!"
  • Bring everyone together in one place: "The one place people can be because it doesnt require a specific app" " Connect just for now: "Groups are fleeting. They exist only as long as you need them, then disappear."
  • Demo instance is live at https://letsconvene.im

Features

  • Standalone web client with a responsive, mobile-web tuned user interface
  • Built upon the Matrix protcol, with full support for end-to-end encrypted messaging, and completely interoperable with any other Matrix client
  • Progressive Web App capabilities
  • Full multimedia upload and download: images, audio, video
  • Built-in push-to-record voice messaging
  • Quick room switcher
  • Ability to create new rooms with name, topic and avatar icon
  • Invite people to room using QR code or room invite link
  • Quick replies or full reply to any message
  • Message editing and deletion based on "Power Levels" (Moderator, Admin, etc)

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Lints and fixes files

npm run lint

Customize build configuration

See Configuration Reference.

Theming

You can do simple theming by setting values in the configuration file, see below.

Configuration file

The app loads runtime configutation from the server at "./config.json" and merges that with the default values in "assets/config.json". The following values can be set via the config file:

  • logo - An url or base64-encoded image data url that represents the app logotype.

  • accentColor - The accent color of the app UI. Use a HTML-style color value string, like "#ff0080".

  • show_status_messages - Whether to show only user joins/leaves and display name updates, or the full range of room status updates. Possible values are "never" (only the above), "moderators" (moderators will see all status updates) or "always" (everyone will see all status updates). Defaults to "always".

  • maxSizeAutoDownloads - Attachments smaller than this will be auto downloaded. Default is 10Mb.

  • roomTypes - Available room types. This affects what is shown on the /create route, as well as access to routes /createroom, /createchannel and /createfiledrop. It should be an array with possible values "group_chat", "channel" or "file_drop".

    Defaults to all values, ["group_chat", "channel", "file_drop"].

  • disableMediaSharing - Set this flag to true to disable voice messages and attachments.

Sticker short codes - To enable sticker short codes, follow these steps:

  • Run the "create sticker config" script using "npm run create-sticker-config "
  • Insert the resulting config blob into the "shortCodeStickers" value of the config file (assets/config.json)
  • Rearrange order of sticker packs by editing the config blob above.

Chat backgrounds

Chat backgrounds can be set using the chat_backgrounds config value. It can be set per room type, "direct", "invite" and "public". If no background is set for the current room type, the app will also check if a default "all" value has any backgrounds specified. Backgrounds are entered as an array. Which of the backgrounds in the array is used for a given room is calculated from the room ID, so that it is constant across the lifetime of the room.

chat_backgrounds: {
    "direct": ["https://example.com/dm1.png", "data:image/png;base64,yadiyada..."],
    "all": ["/default_background.png"]
}

Attributions

Sounds from Notification Sounds