Skip to content

CloudHub-Social/Charm-1.0

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7,006 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Charm

Charm is a personal Matrix client distribution maintained by the CloudHub Social Team for the CloudHub domain. It is based on Sable, an AGPLv3 Matrix client forked from Cinny.

The hosted web app lives at charm.cloudhub.social.

Attribution

Charm is maintained by CloudHub Social and is not an official Sable or Cinny release. When describing this distribution, use:

Maintained by the CloudHub Social Team. Based on Sable, an AGPLv3 Matrix client forked from Cinny.

Self-hosting

You can self-host Charm by building the web app and serving the dist/ directory from any static web server.

pnpm i
pnpm run build

The runtime configuration is loaded from config.json. You can use it to change default homeservers, featured rooms and spaces, the account switcher, push notification settings, and experimental feature toggles.

If you want to enable the GIF picker, follow docs/gif-picker-setup.md to deploy the proxy worker and configure a real Klipy API key.

Optional default client settings

While the default settings are recommended for most users, you can optionally add a top-level "settingsDefaults" object whose keys match client settings. Only fields you include are overridden. Existing local settings and Matrix account-data synced settings keep their current values.

{
  "settingsDefaults": {
    "hour24Clock": true,
    "pageZoom": 110,
    "messageLayout": 2,
    "rightSwipeAction": "members",
    "captionPosition": "below",
    "renderUserCards": "both",
    "jumboEmojiSize": "large"
  }
}

Invalid or unknown keys are ignored.

To deploy under a subdirectory, update the base path in build.config.ts and rebuild the app.

Local development

Tip

Use the Node version defined in .node-version. A version manager such as fnm keeps this reproducible.

fnm use --corepack-enabled
corepack install
pnpm i
pnpm run dev

To build the app:

pnpm run build

Deployment and infrastructure

Deployment workflows and Cloudflare infrastructure details live in infra/README.md.

Compatibility notes

Some internal names intentionally still use Sable namespaces:

  • sable_* localStorage keys preserve existing diagnostics and settings choices.
  • moe.sable.* Matrix account-data/event namespaces preserve synced settings compatibility.
  • .sable.css theme filenames and @sable-theme metadata remain compatible with the Sable theme ecosystem.
  • Dependencies published under @sableclient/* and SableClient GitHub URLs stay pinned until Charm-specific forks exist.

About

An almost stable Matrix client.

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

Languages

  • TypeScript 98.2%
  • JavaScript 0.5%
  • Rust 0.5%
  • Shell 0.2%
  • CSS 0.2%
  • HTML 0.1%
  • Other 0.3%