[mirror, read-only] Stoat for Web – browser app for Stoat stoat.chat/app
stoat stoatchat stoat-chat stoat-client
TypeScript 99%
JavaScript <1%
Shell <1%
Nix <1%
CSS <1%
<1%
Dockerfile <1%
HTML <1%

README.md

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.