No description
Find a file
2026-05-17 02:22:20 +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 Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
android fix(push): dedup re-rings within one call session via composite (roomId, callSessionId) key so a participant rejoin doesn't re-alert 2026-05-17 02:22:20 +03:00
apps fix(bots-widgets): default data-input to mouse and drop dead danger:hover rose override so hover works from frame zero on hybrid devices 2026-05-06 17:29:11 +03:00
contrib rebrending contination: add icons 2026-04-13 22:22:01 +03:00
docs feat(push): add WorkManager polling fallback that delivers notifications via /_matrix/client/v3/notifications when FCM is blocked 2026-05-17 01:27:55 +03:00
public feat(push): group room messages into a per-room MessagingStyle conversation with DM/group channels, mark-as-read action and receipt-driven dismiss 2026-05-17 02:06:21 +03:00
scripts feat(push): group room messages into a per-room MessagingStyle conversation with DM/group channels, mark-as-read action and receipt-driven dismiss 2026-05-17 02:06:21 +03:00
src feat(push): group room messages into a per-room MessagingStyle conversation with DM/group channels, mark-as-read action and receipt-driven dismiss 2026-05-17 02:06:21 +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 update gitignore with Vite config 2026-05-16 22:06:35 +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
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 chore(deps): bump matrix-js-sdk 40.2.0 → 41.4.0 with SessionMembershipData barrel and EC sticky-event capability extension 2026-05-09 13:00:45 +03:00
package.json 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
README.md rebrending contination: add icons 2026-04-13 22:22:01 +03:00
tsconfig.json chore: upgrade TypeScript to 5.4 with bundler module resolution and reformat repo against tightened ESLint 2026-04-27 13:07:49 +03:00
vite.config.js feat(legal): publish Privacy Policy and account-deletion pages with About-screen link and Play Store feature graphic 2026-05-13 22:53:58 +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.