Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vexcited/solidcord
A work in progress fast and open-source handcrafted client for Discord that is made with performance in mind. Uses Tauri and SolidJS.
https://github.com/vexcited/solidcord
solidjs tauri tauri-app typescript vite
Last synced: about 1 month ago
JSON representation
A work in progress fast and open-source handcrafted client for Discord that is made with performance in mind. Uses Tauri and SolidJS.
- Host: GitHub
- URL: https://github.com/vexcited/solidcord
- Owner: Vexcited
- License: mit
- Created: 2023-01-04T17:27:08.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-27T12:40:28.000Z (4 months ago)
- Last Synced: 2024-08-28T12:29:59.161Z (4 months ago)
- Topics: solidjs, tauri, tauri-app, typescript, vite
- Language: TypeScript
- Homepage:
- Size: 1.36 MB
- Stars: 19
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# SolidCord
A work in progress fast and open-source handcrafted web client for [Discord](https://discord.com/) that is made with performance in mind. Uses [Tauri](https://tauri.app/) and [SolidJS](https://solidjs.com/).
> 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`](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/http) and [`tauri-plugin-websocket#v2`](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/websocket), 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
```bash
# 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,
```bash
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.
#### [VS Code](https://code.visualstudio.com/)
- [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode)
- [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
- [UnoCSS](https://marketplace.visualstudio.com/items?itemName=antfu.unocss)
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)## Acknowledgements
- [dolfies](https://github.com/dolfies) for his `cordapi` that helps me to retrieve the client properties.