No description
This repository has been archived on 2022-08-19. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Bruno Windels cb10d40c3a Revert "use intrinsic aspect-ratio supported by chrome and firefox (although not safari)"
This reverts commit 0e5ad9805a.

It does not seem to work anymore in FF & chrome (the tile grows after the image is loaded)
and this won't work in IE11 anyways
2020-08-12 16:47:57 +02:00
doc doc changes 2020-06-24 22:43:46 +02:00
prototypes wip timeline html/css prototype 2020-06-24 22:43:59 +02:00
scripts add theme assets to offline definition 2020-08-12 16:40:28 +02:00
src Revert "use intrinsic aspect-ratio supported by chrome and firefox (although not safari)" 2020-08-12 16:47:57 +02:00
.editorconfig wip 2019-02-17 23:58:01 +01:00
.eslintrc.js its syncing, sort off 2019-02-10 21:25:46 +01:00
.gitignore ignore folders to store exports 2019-12-23 14:29:05 +01:00
icon.png add offline availability with service worker and appcache 2019-09-15 14:32:12 +02:00
index.html add element theme (only some color changes + Inter font for now) 2020-08-12 16:41:03 +02:00
LICENSE add full license text 2020-08-05 18:40:45 +02:00
package-lock.json Use postcss plugins to fix flexbox bugs in IE11 and lack of css vars 2020-08-07 18:15:53 +01:00
package.json Use postcss plugins to fix flexbox bugs in IE11 and lack of css vars 2020-08-07 18:15:53 +01:00
README.md WIP 2020-08-05 18:17:35 +01:00
TODO.md WIP 2020-08-05 18:17:35 +01:00
yarn.lock moar WIP 2020-04-19 19:02:10 +02:00

Hydrogen

A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support.

Goals

Hydrogen's goals are:

  • Work well on desktop as well as mobile browsers
  • UI components can be easily used in isolation
  • It is a standalone webapp, but can also be easily embedded into an existing website/webapp to add chat capabilities.
  • Loading (unused) parts of the application after initial page load should be supported

Status

Hydrogen can currently log you in, or pick an existing session, sync already joined rooms, fill gaps in the timeline, and send text messages. Everything is stored locally.

Why

For every interaction or network response (syncing, filling a gap), Hydrogen starts a transaction in indexedb, and only commits it once everything went well. This helps to keep your storage always in a consistent state. As little data is kept in memory as well, and while scrolling in the above GIF, everything is loaded straight from the storage.

If you find this interesting, feel free to reach me at @bwindels:matrix.org.

How to use

Try it locally by running npm install dev (only the first time) and npm start in the terminal, and point your browser to http://localhost:3000.