# Vojo — Overview

## What is Vojo

A Matrix-based chat client targeting the Russian market. Fork of [Cinny](https://cinny.in) (MIT license), rebranded as Vojo. This repo is the **client only** — no server sources live here.

Value proposition: "Telegram works without VPN" — the server runs a mautrix-telegram bridge, users just open vojo.chat and chat.

## Infrastructure

- **Domain**: vojo.chat
- **Server**: Yandex Cloud VPS, Ubuntu 24.04
- **Homeserver**: Synapse (Matrix) + PostgreSQL + Caddy (reverse proxy)
- **Bridges**: mautrix-telegram v0.15.3 (Python, SOCKS5 proxy for Telegram)
- **Client**: this repo — deployed as static files via Caddy

Client source on server: `~/vojo/cinny/`. Caddy serves it at `https://vojo.chat` (via `/var/www/cinny` symlink to `~/vojo/cinny`).

## Branding

"Vojo" everywhere in UI, page titles, meta tags.

## Default homeserver

All configs must point to `vojo.chat` as the default and only homeserver. Hide homeserver selection from the user — end users should not need to know this is Matrix.

## Build & Deploy (web)

```bash
npm ci
npm run build
scp -r dist/* vojo-superuser@111.88.146.156:~/vojo/cinny/
```

VSCode task `Deploy to vojo.chat` (Ctrl+Shift+D) automates this. Android build/deploy is covered in [android.md](android.md).

## Developer profile

- Git identity: `v.lagerev`, email `opnaigpt@gmail.com` (referred to as Julian in legacy notes)
- Background: C++ backend engineer, limited frontend experience
- Communicates in Russian
- Uses Claude Code agents heavily for frontend work
- Reviews both English (grammar) and Russian (naturalness) translation quality
- Notices lint regressions, exhaustive-deps issues, use-before-define errors
- Prefers concise communication with file paths and line numbers

## External references

- [Matrix Client-Server API](https://spec.matrix.org/latest/client-server-api/)
- [Synapse Admin API](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/)
