/United-Chat

This app allows you to transform your Youtube and Twitch chats into a single thing (god help us all) without the need to do other complex things! It's a thing thinger!

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0


Logo

United Chat ๐ŸŽฎ๐Ÿ’ฌ

WakaTime Build Status

Welcome to United Chatโ€”your go-to solution for merging Twitch and YouTube chats into a seamless experience!

Weโ€™re on a journey to make your multi-stream chatting as smooth as possible, with just a touch of complexity to keep things interesting.


How It Works โš™๏ธ

United Chat is a desktop application built with:

  • Tauri V2 for creating the app interface
  • React for building interactive user components
  • TypeScript for a type-safe development experience

This app consolidates chat messages from Twitch and YouTube into a single, unified window. While we're still ironing out the kinks, progress is steady, and we're pushing towards a fully functional app. ๐Ÿš€

Please note that while this is made to facilitate multi-stream chatting, it's not a chatbot and doesn't support sending messages.

It also might not count as a viewer on the platforms, so keep that in mind when using it.

Please don't use this app to spam or harass streamers or other viewers. We're all here to have a good time! ๐ŸŽ‰

Use this app responsibly and keep in mind that this is a work in progress. We're always open to feedback and suggestions!

Current Status

  • Twitch Integration: Fully implemented, including connection, channel joining, and message reception. ๐Ÿ•น๏ธ
  • YouTube Integration: Implemented, but still in the testing phase. ๐ŸŽฅ

Performance

Performance is still in the testing phase, so don't expect perfection just yet. We welcome your feedback to help us improve! DevTools are available for debugging, and you might see some warningsโ€”just React doing its thing.

For those interested in the nitty-gritty, here's a peek at our tech stack:

Tech Stack Overview ๐Ÿค“

Frontend:

  • Next.js: A framework for server-side rendering React applications.
  • TailwindCSS: A utility-first CSS framework for styling.
  • WebSockets: For real-time chat updates, connecting to Twitch IRC API.

Backend:

  • Rust: Chosen for its performance benefits.
  • Tauri: Used to build the desktop application with web technologies.
  • WebSockets Server/Client: Handles communication between frontend and backend.

Testing:

  • Currently, no formal tests. We're embracing a hands-on approach for now.

Deployment:

  • GitHub Actions: For continuous integration and deployment.
  • GitHub Releases: For app distribution.

Feel free to dive into the source code and see how it's built. Suggestions and feedback are always welcomeโ€”just keep it constructive!


TODO List ๐Ÿ“

  • Design the UI ๐ŸŽจ
  • Implement Rust Backend ๐Ÿ”ง
    • Twitch API ๐Ÿ•น๏ธ
    • YouTube API ๐ŸŽฅ
  • Enhance Message Handling ๐Ÿ’ฌ
    • Twitch
    • YouTube
  • Develop User Linking ๐Ÿ”—
    • Twitch (Account Linking)
    • Twitch (No Linking)
    • YouTube
  • Build Chat UI ๐Ÿ–ฅ๏ธ
  • Conduct Performance Tests ๐ŸŽ๏ธ

Running the App ๐Ÿƒโ€โ™‚๏ธ

You have two options:

1. Using Pre-Built Binaries
  1. Download the latest release from the release page.
  2. Use the .exe or .msi installer for Windows.
  3. Install and run the app.
  4. You can link your Twitch account or use a Twitch streamer URL to start chatting.
  5. To access the YouTube Chat, you'll have to access the Settings page (CRTL + D), click on "Add Live" and enter a YouTube stream URL. It's recommended to have only one maximum live stream at a time. You can add more streams, including scheduled ones by doing the same process.
  6. Select or create your own theme on the main page.
  7. Still on the main page, click on "Start" to start the chat.
  8. Copy the URL from the browser and paste it into your stream app, or use the app's built-in browser and use that.
  9. Enjoy your chat!
2. Building from Source

To build from source, you'll need:

  • ๐Ÿฆ€ Rust
  • ๐ŸŸข Node.js
  • ๐Ÿ“ฆ npm
  • ๐Ÿ”ก TypeScript

Steps to build:

# Clone the repository
git clone https://github.com/tockawaffle/United-Chat.git

# Navigate to the project directory
cd United-Chat

# Install dependencies
npm install

# Build the project (recommended)
npm run tauri:build

# Or run in development mode
npm run tauri:dev

Happy coding, and may your chats be forever united! ๐ŸŽ‰


Connect with Us ๐ŸŒ


License ๐Ÿ“œ

This project is licensed under the AGPL-3.0 License.