⚠️ WARNING: This project is not production-ready. It is an unstable experimental proof-of-concept and may contain bugs and/or incomplete features. Use it at your own risk.
A chat app designed to work within your browser, with a focus on browser-based security and decentralization.
Feature-Rich Experience:
- Secure Messaging: End-to-end encryption for all messages.
- File Sharing: Seamlessly share files with peers using cutting-edge WebRTC technology.
- Voice and Video Calls: Connect more personally with high-quality calls.
- Mixed-Reality Spaces: Dive into shared virtual environments for a new way of interaction.
- Image Board: Share and discover images in a community-driven space.
- Webtop Environment: Desktop experience on the browser.
- Feedback: Your insights are invaluable. Share your thoughts on current features, suggest new ones, or report any bugs you encounter.
- Development: Interested in contributing code? Let's talk! While the app isn't fully open-source yet, parts of it are, and we're keen on opening more in the future.
- Spread the Word: Help us grow by sharing the app with others who value privacy and control over their digital communication.
- Github Stars: If you like the project, consider starring the repository. It helps others discover it and boosts our motivation.
- Sponsorship: Development is fueled by passion and coffee. Your sponsorship helps keep both flowing.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Try it out between you phone and laptop. The app is using browser storage, so if you open 2 tabs of the app, they will use and update the same data. This can lead to conflict issues and should be avoided. instead if you want to try on a single device, you can try between different browsers (like chrome and edge). Its also worth noting that incognito modes on all the browsers would also use a different store.
Suggestions for troubleshooting
- Its best to start off by clearing all site data from the browser settings.
- Do not have multiple tabs of the app on the same device.
- It doesnt hurt to refresh to page.
You need to have Node.js installed on your system to run the app. If you don't have Node.js installed, you can download it from here.
First, clone the repository to your local machine.
For users that dont want to install anything and just want to try the app locally, you can open the file found at <root>/Frontend/index.html
in a browser of your choice.
npm install
npm start
npm run docker:build # docker build -t chat -f docker/Chat.Dockerfile . --no-cache
npm run docker:run # docker run --name chat-container -p 8080:80 chat
This will start the development server and open the app in your default browser. If it doesn't open automatically, you can navigate to http://localhost:8080 to view the app.
See the package.json file for more scripts.
You can fork the repo and host it on Github Pages for free if the repository is made public. After forking the repo, you can go to Settings>Pages to set the following:
- Source: "Deploy from a branch"
- Branch: "staging"
- Select folder: "/docs"
Finally click "Save" to enable Github Pages.
The app can be installed on iOS, Android and Desktop. The project is not mature enough to be published on the app stores (exception?). This repository has the necessary files to build the app for these platforms. This should be done by someone with experience in building apps for these platforms.
To build for mobile, you need to have respective build tools installed on your computer (xcode/android studio) installed on your system. the build is created with capacitorjs found here. See the folders ios
and android
in the root folder for the build files.
To build for desktop, you need to install the dependencies with the npm i
command, then you may also need to install rust on your system as described here. The desktop build is based on Tauri found here. You can create a build by running npm run tauri build
. the build will be found in the tauri/target/release/bundle
folder (you may need to add executable permissions chmod +x <filename>
).
Pushing the boundaries of what's possible with current web technologies to create a chat app that prioritizes user empowerment and privacy. But this is just the beginning. With your support, we can explore new features, refine the user experience, and expand the app's capabilities.