Skip to content

Latest commit

 

History

History
73 lines (45 loc) · 2.64 KB

README.md

File metadata and controls

73 lines (45 loc) · 2.64 KB

SolidCord

A work in progress fast and open-source handcrafted web client for Discord that is made with performance in mind. Uses Tauri and SolidJS.

By "handcrafted", I actually mean "without using any package that gives us helpers for Discord's API, even typings".

Current State

It's very very very early in development. I might open issues in the future to track developement of features.

Also, concerning the design aspect: for now, the app is only made for dark mode systems and doesn't have any settings. It'll support light mode in the future, do not worry.

Features

Simultaneous connections

Whenever you add an account, a connection to the gateway with this account will be kept until the app is exited - or you remove the account from SolidCord.

That allows to have notifications and message caching for multiple accounts.

Native HTTP / WebSockets

Internally uses tauri-plugin-http#v2 and tauri-plugin-websocket#v2, the webview doesn't handle any HTTP requests.

Maybe in the future we might also be able to do zlib-stream compression and etf encoding in the Rust side, but that's not a priority since it's not implemented yet.

Development

Environment

# Clone the repository.
git clone https://github.com/Vexcited/SolidCord

# Navigate into the folder, if not done.
cd SolidCord

# Use pnpm to install dependencies.
pnpm install

Please, try to stick with pnpm so we don't conflict with any other package manager.

If you need to update cargo packages for the src-tauri folder,

cd src-tauri
cargo update

Available Scripts

Command Description
pnpm lint Lint the codebase to detect any styling issue.
pnpm tauri dev Run a development version of the app.
pnpm tauri build Build into a binary.

Recommended IDE Setup / Extensions

Everything mentioned here is optional, but you'll get a better DX by installing them.

Acknowledgements

  • dolfies for his cordapi that helps me to retrieve the client properties.