GameCult chat web client, a fork of Cinny (AGPL-3.0). Steward: Void. https://chat.gamecult.org
  • TypeScript 94.3%
  • JavaScript 3.4%
  • GLSL 1.9%
  • CSS 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Void e8b7bdf7bb
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m59s
Poses nest into the bubble corner on desktop and phone
The sprite floats in the bubble's top corner (left, or right for the Minds that alternate),
pulled out into the padding on three sides so the bubble edge crops it; text wraps its
silhouette and the bubble grows to hold it. The crop comes from nestView (pure, tested) over
Aqua's measured safe boxes; art without one uses its alpha bounds. Removes the outside-the-bubble
desktop portrait, the phone overhang band, the -82px margin, the bottom mask and the pose header pill rules.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 17:10:08 +00:00
.github CI: cancel superseded runs with workflow concurrency groups 2026-11-09 22:50:10 +00:00
.husky chore: add semantic release (#2759) 2026-03-19 16:26:25 +11:00
.vscode Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
contrib brand: Ratatoskr README front door, package name, theme colour, contrib confs 2026-11-06 07:09:25 +00:00
docs docs: file zone marks are verdict and landed reactions plus optional reply 2026-11-08 08:05:29 +00:00
harness scene: terrainNormal reads the world-z slope from .y, not .z 2026-11-07 20:43:34 +00:00
preview-demo/poses Merge pull request 'preview-demo: README for the pose thumbnails (provenance)' (#29) from void/poses-readme into dev 2026-11-09 10:59:20 +00:00
public nemesis: tab icon and notification icon are the night-sky tile (unread and highlight add a dot), not the white UI mark 2026-11-10 13:46:51 +00:00
scripts Merge remote-tracking branch 'origin/nibu/scene-terrain-scatter' into nibu/scene-terrain-scatter-dev 2026-11-08 07:51:56 +00:00
src Poses nest into the bubble corner on desktop and phone 2026-11-10 17:10:08 +00:00
.dockerignore Improve Dockerfile (#256) 2022-01-30 20:58:38 +05:30
.eslintignore Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
.eslintrc.cjs Fix unread reset and notification settings (#1824) 2024-07-23 15:14:32 +10:00
.gitignore poses: read labels only from the catalogue; add a client-status pose line 2026-11-04 14:06:18 +00: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 poses: read labels only from the catalogue; add a client-status pose line 2026-11-04 14:06:18 +00:00
.prettierrc.json Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
build.config.ts GameCult theme, steward-grouped project rooms, preview base override 2026-10-31 05:00:32 +01:00
CODE_OF_CONDUCT.md Create Code of Conduct (#1908) 2024-08-21 15:43:40 +05:30
config.json Merge remote-tracking branch 'origin/dev' into dev 2026-11-07 18:12:03 +00:00
CONTRIBUTING.md Merge remote-tracking branch 'origin/dev' into dev 2026-11-07 18:12:03 +00:00
docker-nginx.conf remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
Dockerfile chore(deps): bump nginx from 1.31.4-alpine to 1.31.5-alpine (#3098) 2026-09-10 15:33:46 +10:00
HACKING.md brand: Ratatoskr README front door, package name, theme colour, contrib confs 2026-11-06 07:09:25 +00:00
index.html Merge remote-tracking branch 'origin/nibu/scene-terrain-scatter' into nibu/scene-terrain-scatter-dev 2026-11-08 07:51:56 +00: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 auth: test the emitted footer rule; wrap its comment; correct the terrain luminance figure 2026-11-10 03:48:36 +00:00
package.json auth: test the emitted footer rule; wrap its comment; correct the terrain luminance figure 2026-11-10 03:48:36 +00:00
README.md README: drop the OBS media receiver disambiguation 2026-11-06 12:39:02 +00:00
tsconfig.json Add authenticated media support (#1930) 2024-09-07 19:15:55 +05:30
vite.config.js pose-aware chat bubble behind a Pose Portraits setting 2026-11-01 19:22:21 +00:00

Ratatoskr

GameCult's Matrix chat client, a fork of Cinny. It opens on GameCult's estate (spaces, project rooms grouped by steward, Minds, and your own place in it) instead of an invite list. Mobile first.

Live now: the Cinny engine (matrix-js-sdk, Rust crypto, sync) under a Ratatoskr UI: branding, GameCult theme, estate navigation, pose portraits (opt-in setting), a background scene and soundscape (opt-in, off by default). Planned: see docs/gamecult/ratatoskr-target.md for the target and cut sequence. Internal names that are protocol or stored state (cinny_* localStorage keys, the in.cinny.room.power_level_tags event type, CINNY_BASE) are unchanged on purpose.

Entry points: src/app/ (client UI), src/app/features/scene/ (background scene), src/app/features/soundscape/ (audio socket), harness/ (estate drive scripts), scripts/gen-brand.mjs (regenerates the logo and icons).

Upstream

Ratatoskr is based on Cinny by Ajay Bura and contributors, licensed AGPL-3.0. Cinny's own README, desktop app and releases live at https://github.com/cinnyapp/cinny. We do not ship its releases or images.

Developing

See HACKING.md. Contribution notes are in CONTRIBUTING.md.

Self-hosting

Build with npm ci && npm run build and serve dist/ with your webserver.

  • The default homeservers and explore pages are defined in config.json.
  • Serving the assets needs redirects to index.html. Examples: netlify, nginx, caddy. Without them you can enable hash routing (hashRouter); URLs then carry /#/.
  • To deploy on a subdirectory, rebuild with the base path set, either in build.config.ts or through CINNY_BASE (for example CINNY_BASE=/app/ npm run build).

License

Ratatoskr is a fork of the Cinny project
Copyright © 2024–present Ajay Bura
https://cinny.in

Cinny is licensed under the GNU Affero General Public License, Version 3 of the License (AGPL-3.0-only). You may obtain a copy of the License at https://www.gnu.org/licenses/agpl-3.0.html