upCHAT is a vanillajs code centric, browser as a platform, instant messaging client/server web application.
- Multiple chat rooms
- Media and link urls (image, audio, video, youtube)
- Visual and audio alerts (eg when focused away from tab)
- Mobile and desktop friendly
- Supports multiple tabs
- End-to-End Zero-knowledge encryption (optional)
- Vanillajs code centric
- Simple thin framework
- Webpack compiled
- Messaging server
$ git clone https://github.com/technomada/chat-app.git
$ cd chat-app
$ npm i
$ cp config-EXAMPLE.js dist/config.js ... you'll edit this file to match your server settings.
$ npx h2js build
$ python -m http.server --directory ./dist (or your fav local http server)
Browse to: http://localhost:8000
This application uses a "spaces server" to sync messages.
$ git clone https://github.com/technomada/spaces-server.git
$ cd spaces-server
$ npm i
$ npm start
(be sure to set the dist/config.js file to match your backend server address)
Session A: Open the chat in a browser, click the bottom of the page, type a message and press enter to send.
Session B: On a separate device or different browser on the same device open the chat and do the same.
Click the gear icon in the bottom right, change the room id, click the gear again to close the settings section. Note: participants must be set to the same room id in order to exchange messages.
The chat system supports the display of media.
paste images urls
eg https://duckduckgo.com/assets/about/hiker.svg
paste audio urls
paste video file urls
eg http://giphygifs.s3.amazonaws.com/media/n988gduPMFC8w/giphy.mp4
paste youtube page urls.
eg https://www.youtube.com/watch?v=jNQXAC9IVRw
eg try https://duckduckgo.com search engine.
Copy the contents of dist/* to a live server.
Add a message sound (when away from the page) create a message.mp3 audio file in the dist folder.
ECDH/AES-GCM
- UI/Jank improvements iOS
- Security / End to End Zero-Knowledge Encryption
- Data cycle cleaning
- Review/test (iphone, edge, firefox, mobile/desktop, etc)
- Favicon
- Serviceworker/offline sync/push notification