No description
Find a file
2026-05-21 14:08:21 +03:00
.github add automatic app version and park git init tag from vojo/dev 2026-04-20 22:58:38 +03:00
.husky chore(lint): close all typecheck and eslint tech debt to enable husky pre-commit hook with --max-warnings 0 2026-05-16 17:22:53 +03:00
.vscode feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
android feat(push): real sender+room avatars via MXC bridge with adaptive shortcut icons, plus review fixes (GROUP_ALERT_ALL, eventId dedup, isEncrypted privacy default, structured roomname parse, mark-as-read optimistic docs) 2026-05-17 17:39:19 +03:00
apps chore(eslint): give widget apps their own Preact-aware root config so host airbnb and react rules stop flagging valid Preact code in pre-commit 2026-05-21 14:08:21 +03:00
contrib rebrending contination: add icons 2026-04-13 22:22:01 +03:00
docs feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
electron feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
public feat(push): inline RemoteInput reply on per-room notifications for cleartext rooms with optimistic local echo and encryption-state re-dump 2026-05-17 02:29:20 +03:00
scripts feat(push): inline RemoteInput reply on per-room notifications for cleartext rooms with optimistic local echo and encryption-state re-dump 2026-05-17 02:29:20 +03:00
src fix(workspace-switcher): switch space rows to SurfaceVariant so inactive bg blends with the sheet silhouette instead of reading as dark cards 2026-05-21 01:05:34 +03:00
.dockerignore Improve Dockerfile (#256) 2022-01-30 20:58:38 +05:30
.eslintignore chore: upgrade TypeScript to 5.4 with bundler module resolution and reformat repo against tightened ESLint 2026-04-27 13:07:49 +03:00
.eslintrc.cjs chore(lint): close all typecheck and eslint tech debt to enable husky pre-commit hook with --max-warnings 0 2026-05-16 17:22:53 +03:00
.gitignore feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
.node-version Pin all the action deps to SHA (#2725) 2026-03-04 12:31:36 +11:00
.npmrc Add authenticated media support (#1930) 2024-09-07 19:15:55 +05:30
.prettierignore chore: upgrade TypeScript to 5.4 with bundler module resolution and reformat repo against tightened ESLint 2026-04-27 13:07:49 +03:00
.prettierrc.json Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
build.config.ts feat: URL navigation in auth (#1603) 2024-01-21 18:20:56 +05:30
capacitor.config.ts feat(bots-discord): land hCaptcha challenge handling for QR-login with sentinel-prefixed bridge protocol and Dawn-themed widget UI 2026-05-06 14:19:45 +03:00
CLAUDE.md update vive code tools with plans dir 2026-04-18 20:02:13 +03:00
CODE_OF_CONDUCT.md rebrending contination: add icons 2026-04-13 22:22:01 +03:00
config.json feat(bots-whatsapp): land Preact widget for mautrix-whatsapp QR + pairing-code login, Meta-ToS warning card, and cross-iframe external-link relay 2026-05-05 15:25:16 +03:00
CONTRIBUTING.md rebrending contination: add icons 2026-04-13 22:22:01 +03:00
docker-nginx.conf remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
Dockerfile Update node to v24.13.1 LTS (#2622) 2026-02-22 18:15:23 +11:00
electron-builder.json feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
index.html feat(theme): ship Settings picker with system/light/dark and Vojo light palette reshading sidebar, chat, bubbles, horseshoe void and PWA chrome 2026-05-15 01:06:49 +03:00
LICENSE Change license to AGPLv3 (#1115) 2023-02-24 17:28:04 +05:30
netlify.toml remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
package-lock.json feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
package.json feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
README.md rebrending contination: add icons 2026-04-13 22:22:01 +03:00
tsconfig.json feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00
vite.config.js feat(electron): add desktop wrapper packaging Vojo as Windows zip with privileged vojo:// scheme, HashRouter override and native chrome 2026-05-18 01:50:16 +03:00

Vojo

A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch.

Based on Cinny (MIT license).

Getting started

The web app is available at vojo.chat.

Self-hosting

To host Vojo on your own, build from source and serve the files from dist/ using your preferred webserver.

  • The default homeserver is defined in config.json.

  • You need to set up redirects to serve the assets. Example configurations: nginx, caddy.

  • To deploy on a subdirectory, rebuild the app after updating the base path in build.config.ts.

Local development

Tip

We recommend using a version manager as versions change very quickly. NVM on Windows or nvm on Linux/macOS are good choices.

Execute the following commands to start a development server:

npm ci # Installs all dependencies
npm start # Serve a development version

To build the app:

npm run build # Compiles the app into the dist/ directory

Running with Docker

This repository includes a Dockerfile, which builds the application from source and serves it with Nginx on port 80. To use this locally, you can build the container like so:

docker build -t vojo:latest .

You can then run the container you've built with a command similar to this:

docker run -p 8080:80 vojo:latest

This will forward your localhost port 8080 to the container's port 80. You can visit the app in your browser by navigating to http://localhost:8080.