SolidCord
SolidCord copied to clipboard
A work in progress fast and open-source handcrafted web client for Discord that is made with performance in mind. Uses Tauri and SolidJS.
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".
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.
Of course, this behavior can be toggled in the account selector - TODO.
Native HTTP / WebSockets
Internally uses Tauri's HTTP API and
tauri-plugin-websocket#v1
Requests aren't done in the WebView (using the web Fetch API) but within Rust directly !
Concerning WebSockets, I'm trying to see if I can also do zlib-stream
compression and etf
encoding there.
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 Node.js 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 |
Runs ESLint on the codebase to detect any styling issue. |
pnpm dev |
Runs front-end (Vite) development server, without Tauri. |
pnpm build |
Builds the front-end, without Tauri. |
pnpm tauri dev |
Runs front-end (Vite) development server, with Tauri at the same time. |
Recommended IDE Setup / Extensions
Everything mentioned here is optional, but you'll get a better DX by installing them.