Stoat web client (built from stoatchat/for-web)
  • TypeScript 99%
  • JavaScript 0.4%
  • Shell 0.2%
  • CSS 0.2%
Find a file
Adam Azoulay 69ae2bb6a8
Some checks failed
Build documentation / deploy (push) Failing after 2s
Release Please / Release Please (push) Failing after 1s
Release Please / Publish release to stable branch (push) Has been skipped
feat(voice): enable video chat and screenshare buttons
Remove "Coming soon" tooltips and isDisabled from camera and screenshare
buttons. The backend (Revolt.toml) and LiveKit voice hook already support
these features - the buttons were simply hardcoded as disabled.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 18:40:16 -05:00
.github/workflows ci: always update i18n catalog but skip steps if committed changes (#609) 2026-02-08 17:41:32 +00:00
.mise ci: configure git town (#607) 2026-02-08 16:58:47 +00:00
.vscode chore: lint & format 2025-11-08 13:04:32 +00:00
doc chore: switch to mise for tooling (& fix CI workflows) (#589) 2026-01-21 13:52:19 -05:00
lifecycle fix: regenerate emoji mapping using correct filter 2025-11-02 19:08:46 +00:00
packages feat(voice): enable video chat and screenshare buttons 2026-02-11 18:40:16 -05:00
.gitignore Merge branch 'main' into feat/account-deletion-confirm 2024-12-17 16:33:02 +00:00
.npmrc feat: add login 2022-09-21 23:26:29 +01:00
.prettierignore chore: switch to mise for tooling (& fix CI workflows) (#589) 2026-01-21 13:52:19 -05:00
.prettierrc chore: remove pandabox plugin as it is broken, update eslint/prettier (#610) 2026-02-09 17:24:37 +00:00
.release-please-manifest.json chore(main): release stoat-for-web 0.1.0 (#576) 2026-01-21 18:57:43 +00:00
CHANGELOG.md chore(main): release stoat-for-web 0.1.0 (#576) 2026-01-21 18:57:43 +00:00
default.nix chore: switch to mise for tooling (& fix CI workflows) (#589) 2026-01-21 13:52:19 -05:00
Dockerfile feat: add Dockerfile for self-hosted deployment 2026-02-09 20:32:35 -05:00
eslint.config.mjs chore: lint & format 2025-11-08 13:04:32 +00:00
git-town.toml ci: configure git town (#607) 2026-02-08 16:58:47 +00:00
GUIDELINES.md refactor: use stoat.js/stoat-api 2025-10-16 18:41:50 +01:00
LICENSE feat: initial sweep to rebrand to Stoat 2025-09-29 16:10:09 -05:00
NOTES feat: scroll to bottom on "escape" keybind 2023-12-13 17:42:52 +00:00
package.json chore: remove pandabox plugin as it is broken, update eslint/prettier (#610) 2026-02-09 17:24:37 +00:00
pnpm-lock.yaml chore: remove pandabox plugin as it is broken, update eslint/prettier (#610) 2026-02-09 17:24:37 +00:00
pnpm-workspace.yaml refactor: use stoat.js/stoat-api 2025-10-16 18:41:50 +01:00
README.md chore: rename remaining links from old revolt domain to stoat (#593) 2026-01-26 20:11:23 +00:00
release-please-config.json ci: configure release-please (#526) 2025-11-19 21:33:59 +00:00
vercel.json chore: prepare for production deployment 2023-04-03 16:27:03 +01:00

Stoat Frontend

Stars Forks Pull Requests Issues Contributors License

The official web client powering https://stoat.chat/app, built with Solid.js 💖.
Track the project roadmap on OpenProject.

Development Guide

Before contributing, make yourself familiar with our contribution guidelines, the code style guidelines, and the technical documentation for this project.

Before getting started, you'll want to install:

  • Git
  • mise-en-place

Then proceed to setup:

# clone the repository
git clone --recursive https://github.com/stoatchat/for-web client
cd client

# update submodules if you pull new changes
# git submodule init && git submodule update

# install all packages
mise install:frozen

# build deps:
mise build:deps

# or build a specific dep (e.g. stoat.js updates):
# pnpm --filter stoat.js run build

# customise the .env
cp packages/client/.env.example packages/client/.env

# run dev server
mise dev

# run all CI checks locally
mise check

Finally, navigate to http://local.revolt.chat:5173.

Pulling in Stoat's brand assets

If you want to pull in Stoat brand assets after pulling, run the following:

# update the assets
git -c submodule."packages/client/assets".update=checkout submodule update --init packages/client/assets

You can switch back to the fallback assets by running deinit and continuing as normal:

# deinit submodule which clears directory
git submodule deinit packages/client/assets

Deployment Guide

Build the app

# install packages
mise install:frozen

# build dependencies
mise build:deps

# build for web
mise build

# ... when building for Stoat production
mise build:prod

You can now deploy the directory packages/client/dist.

Routing Information

The app currently needs the following routes:

  • /login
  • /pwa
  • /dev
  • /discover
  • /settings
  • /invite
  • /bot
  • /friends
  • /server
  • /channel

This corresponds to Content.tsx#L33.