No description
  • TypeScript 99.1%
  • JavaScript 0.3%
  • Shell 0.2%
  • Nix 0.2%
  • CSS 0.1%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nyaaan 27f4e63c34
Some checks failed
web image / web (push) Failing after 5m46s
ci: use the org's CI_USER/CI_TOKEN secrets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 14:56:38 +11:00
.forgejo/workflows ci: use the org's CI_USER/CI_TOKEN secrets 2026-10-05 14:56:38 +11:00
.github chore(ci/cd): Docker image will now build on its native os (#1474) 2026-08-09 23:07:46 -04:00
.mise fix: correctly handle hidden channels being re-ordered (#1639) 2026-09-20 13:27:45 -05:00
.vscode fix: HTML formatting (#1427) 2026-07-31 11:50:20 -04:00
doc docs: update Lingui guide for @lingui/solid (#1652) 2026-09-23 09:34:49 -06:00
docker fix(instance): Docker build injection fail (#1442) 2026-08-04 00:53:29 +00:00
lifecycle feat: Add regional indicators and more emoji shorthands (#1203) 2026-09-22 19:51:12 -06:00
packages feat(desktop): add voice & video traffic priority toggle 2026-10-05 13:45:13 +11:00
patches fix(voice): prevent call drops on screen share (#1679) 2026-09-29 18:01:06 -06:00
.dockerignore feat: Adds a Docker Build for the Web Client (#697) 2026-02-18 21:37:43 -05:00
.gitignore chore: Update to vite6 and update a few broken dependencies (#1449) 2026-08-07 04:59:12 +00:00
.gitmodules fix: Remove the lingui submodule (#1476) 2026-08-10 12:03:20 -04:00
.prettierignore chore: Add assets to .prettierignore and force deinit on mise assets (#1548) 2026-08-21 09:23:01 -06:00
.prettierrc feat: allow removing members from groups (#1110) 2026-05-16 14:06:52 -06:00
.release-please-manifest.json chore(main): release stoat-for-web 0.16.1 (#1672) 2026-09-30 19:17:09 -06:00
CHANGELOG.md chore(main): release stoat-for-web 0.16.1 (#1672) 2026-09-30 19:17:09 -06:00
Dockerfile fix: Reset screenshare encoding after changing resolution (#1532) 2026-08-24 18:03:16 -06:00
eslint.config.mjs fix: Config fixes for TSConfig root dir & VSCode search ignores (#1195) 2026-05-23 19:29:52 -06:00
flake.lock refactor(nix): migrate to flakes, remove legacy default.nix (#1618) 2026-09-20 10:21:43 -06:00
flake.nix refactor(nix): migrate to flakes, remove legacy default.nix (#1618) 2026-09-20 10:21:43 -06: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(main): release stoat-for-web 0.16.1 (#1672) 2026-09-30 19:17:09 -06:00
pnpm-lock.yaml fix: image/video lightbox has context menu now (#1619) 2026-09-30 00:10:47 +00:00
pnpm-workspace.yaml fix: auto-scroll when reaching edge in channel list (#1630) 2026-09-20 13:27:44 -05:00
README.md feat: Instance context to enable routes and reactivity w/ consistent interface (#1315) 2026-08-02 20:24:02 -06:00
release-please-config.json ci: configure release-please (#526) 2025-11-19 21:33:59 +00:00
renovate.json chore: modify renovate.json 2026-06-01 13:28:23 +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:

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.

Using the official backend

By default, the client connects to a backend running on the same host (localhost).

If you want the client to connect to the official hosted backend instead, open the .env file at /packages/client/.env and comment out the local URL varaibles like this:

# connect to local Stoat instance
#VITE_API_URL=http://localhost:14702

When these variables are not set, the client automatically falls back to the official backend. (See https://github.com/stoatchat/for-web/blob/main/packages/client/components/common/lib/env.ts)

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.