Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
molvqingtai committed Sep 28, 2024
2 parents 0d14020 + eca6802 commit 25f0abf
Show file tree
Hide file tree
Showing 7 changed files with 12 additions and 31 deletions.
23 changes: 7 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,33 @@
<img src="https://github.com/molvqingtai/WebChat/blob/master/src/public/logo.png" width="200px"/>
</p>


# WebChat

> Chat with anyone on any website




This is an anonymous chat browser extension that is decentralized and serverless, utilizing WebRTC for end-to-end encrypted communication. It prioritizes privacy, with all data stored locally.

The goal is to address the issue of delayed replies on websites by adding instant messaging capabilities to any site, allowing for chatting anytime, anywhere.
The aim is to add chat room functionality to any website, enabling real-time messaging anytime, anywhere.

### Video


### Example

![Example](https://github.com/molvqingtai/WebChat/blob/master/src/public/Example.png)


https://github.com/user-attachments/assets/34890975-5926-4e38-9a5f-34a28e17ff36



### Standing on the Shoulders of Giants

In addition to the great idea of decentralized chat, it also leverages some fantastic technologies.

* **[remesh](https://github.com/remesh-js/remesh)**: A frontend framework that implements DDD principles in code, achieving true separation of UI and logic. This provides a robust structure that can be easily migrated to other frontend frameworks like Vue.

* **[shadcn/ui](https://ui.shadcn.com/)**: A beautiful UI library and a pioneer of no-install options, with unmatched ease of customizing styles.

* **[wxt](https://wxt.dev/)**: This is the best framework I’ve used for building browser extensions, bar none.
- **[remesh](https://github.com/remesh-js/remesh)**: A framework in JavaScript that implements DDD principles, achieving true separation of UI and logic, allowing for easy reimplementation of the UI part, such as rewriting it in Vue, due to its independence from the UI.

* **[trystero](https://github.com/dmotz/trystero)**: The core dependency for implementing decentralized communication, enabling connections to decentralized networks like IPFS, torrent, Nostr, etc.
- **[shadcn/ui](https://ui.shadcn.com/)**: A beautiful UI library and a pioneer of the no-install concept, offering unmatched convenience in customizing styles.

- **[wxt](https://wxt.dev/)**: This is the best framework I’ve used for building browser extensions, bar none.

- **[trystero](https://github.com/dmotz/trystero)**: The core dependency for implementing decentralized communication, enabling connections to decentralized networks like IPFS, torrent, Nostr, etc.

### License

Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@
"jiti": "^2.0.0",
"lint-staged": "^15.2.10",
"npm-run-all": "^4.1.5",
"package-up": "^5.0.0",
"postcss": "^8.4.47",
"postcss-rem-to-responsive-pixel": "^6.0.2",
"prettier": "^3.3.3",
Expand Down
11 changes: 0 additions & 11 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/app/content/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export default defineContentScript({
anchor: 'body',
append: 'last',
mode: 'open',
isolateEvents: ['keyup', 'keydown', 'keypress'],
onMount: (container) => {
const app = createElement('<div id="app"></div>')
container.append(app)
Expand Down
2 changes: 1 addition & 1 deletion src/app/content/views/AppContainer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const AppContainer: FC<AppContainerProps> = ({ children, open }) => {
const { size, ref } = useResizable({
initSize: Math.max(375, window.innerWidth / 6),
maxSize: Math.min(750, window.innerWidth / 3),
minSize: Math.max(375, window.innerWidth / 5),
minSize: Math.max(375, window.innerWidth / 6),
direction: 'left'
})

Expand Down
5 changes: 3 additions & 2 deletions src/app/content/views/Setup/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,12 @@ const Setup: FC = () => {
},
{ delay: 2000, immediate: true, limit: printTextList.length }
)

timer.on('stop', () => {
printTextList.length === 0 && send(messageListDomain.command.ClearListCommand())
})
timer.start()
return () => {
timer.stop()
printTextList.length === 0 && send(messageListDomain.command.ClearListCommand())
}
}, [])

Expand Down
Binary file removed src/public/Example.png
Binary file not shown.

0 comments on commit 25f0abf

Please sign in to comment.