Skip to content

About

🧙 Frontend client for SoulFire.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

142 stars

Watchers

1 watching

Forks

Latest commit

 

History

3,586 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

discord kofi

SoulFireClient

This is a frontend for the SoulFire server. It is now packaged as a desktop app with Electron while still using the official SoulFire gRPC API.

Note

For more info about SoulFire, take a look at the main SoulFire repository.

About the client

Built using latest web tech to consistently work on both web, desktop and mobile. The client is the GUI for the SoulFire server, but it uses the official SoulFire gRPC API. Anything that can be done using the SF client can also be done using gRPC HTTP API calls directly.

Installation

Tip

Want to check out how SoulFire looks before installing it? Take a look at the official demo page.

For installing SoulFire, please refer to the installation guide.

Get it on Flathub

Deployments

See which branches are at which URLs:

  • release -> app.soulfiremc.com
  • main -> preview.soulfiremc.com
  • demo -> demo.soulfiremc.com

Building

Install Bun at the version in package.json and the Node.js LTS used by CI before you build the client. Take a look at the scripts in package.json to see how to run a dev env locally. You can also refer to the GitHub actions workflows to see how production builds are made.

Update RPC bindings

The client generates its RPC bindings directly from the SoulFire repository with Buf. buf.gen.yaml pins the source to a full Git commit hash, independent of server and SDK releases. The server revision also pins the imported schemas through its buf.lock.

  1. Push the protocol changes to the SoulFire repository.
  2. Set inputs[0].ref in buf.gen.yaml to that commit's full hash.
  3. Run bun run protocol:generate.
  4. Update affected client code and run bun run typecheck, bun test, and bun run build:web.
  5. Commit the pin, generated bindings, and client changes together.

The generated files in src/generated/ are checked in. Normal builds do not fetch schemas or require a server checkout. CI regenerates the bindings and checks for differences. Generation requires Git and network access to GitHub and the Buf Schema Registry. The generator versions are pinned in package.json and bun.lock.

For local protocol development, run bun run protocol:generate -- ../SoulFire to generate from a local server checkout. Before committing the client changes, update the remote pin and regenerate without the local path.

New client features must handle older servers that omit optional fields or do not implement new RPC methods.

Sponsors

[SignPath] Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation

Contributing and support

Read CONTRIBUTING.md for local setup and review expectations. Use SUPPORT.md for questions and issue routing. Follow the community code of conduct and report vulnerabilities through the private security contacts.

About

🧙 Frontend client for SoulFire.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

142 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages