Lightweight matrix client with legacy and mobile browser support
Go to file
R Midhun Suresh 14c984a89b
Merge pull request #1206 from element-hq/langleyd/update_license_to_AGPL_and_commercial
Change license to AGPL and Element Commercial
2025-01-28 11:59:32 +05:30
.github Revert "Add new token to the action" 2024-06-18 20:32:43 +05:30
doc Changes for sdk-release 0.3.1 2024-10-21 17:23:57 +05:30
docker Build a docker image using unprivileged nginx 2023-01-20 13:31:14 +00:00
playwright Update source headers part 1 2025-01-17 17:05:05 +00:00
prototypes add prototype to show we can prevent the txn from being aborted on error 2021-09-21 20:58:16 +02:00
scripts Update source headers part 1 2025-01-17 17:05:05 +00:00
src Update source headers part 2 2025-01-17 17:06:09 +00:00
.dockerignore chore: optimise Dockerfile 2021-03-14 12:52:35 +01:00
.editorconfig wip 2019-02-17 23:58:01 +01:00
.eslintrc.js Add global to eslint 2024-08-16 15:46:00 +05:30
.gitignore Convert Cypress --> Playwright 2022-10-18 23:44:58 +05:30
.gitlab-ci.yml chore: add GitLab CI definition 2021-03-14 13:20:39 +01:00
.ts-eslintrc.js updates ts-eslint and fixes errors in src/observable 2022-08-07 21:13:00 -07:00
CONTRIBUTING.md Update contribution guidelines. 2025-01-22 15:27:53 +00:00
Dockerfile Use target platform (rather than build platform) for multi-platform container images 2023-01-23 14:28:07 +07:00
Dockerfile-dev Install npm deps in separate docker layer 2023-01-11 18:55:28 +00:00
FAQ.md update dirs in docs 2023-01-19 09:24:44 +01:00
LICENSE-AGPL-3.0 Update license i readme and package.json and license files 2025-01-17 17:02:12 +00:00
LICENSE-COMMERCIAL Update license i readme and package.json and license files 2025-01-17 17:02:12 +00:00
README.md Update license i readme and package.json and license files 2025-01-17 17:02:12 +00:00
TODO.md WIP 2020-08-05 18:17:35 +01:00
codestyle.md dont use lookbehind in regular expressions, safari & older firefoxes choke on them 2021-12-08 18:00:37 +01:00
package.json don't update package.json formatting in this PR 2025-01-22 15:37:46 +00:00
playwright.config.ts Limit workers to 1 for now 2022-10-25 21:18:56 +05:30
tsconfig-declaration.json somewhat works, but not everything we need 2021-12-22 16:31:18 +01:00
tsconfig.json Revert back option 2022-07-29 17:33:33 +05:30
view-gallery.html rearrange assets and main.js to make them run with vite 2021-11-08 11:10:23 +01:00
vite.common-config.js Make service worker work with sdk 2024-08-16 15:33:39 +05:30
vite.config.js Make service worker work with sdk 2024-08-16 15:33:39 +05:30
vite.sdk-assets-config.js Make service worker work with sdk 2024-08-16 15:33:39 +05:30
vite.sdk-lib-config.js Make service worker work with sdk 2024-08-16 15:33:39 +05:30
yarn.lock Use newer olm 2023-11-07 16:51:24 +00:00

README.md

Hydrogen

A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. This is work in progress and not yet ready for primetime. Bug reports are welcome, but please don't file any feature requests or other missing things to be on par with Element Web.

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

For embedded usage, see the SDK instructions.

If you find this interesting, come and discuss on #hydrogen:matrix.org.

How to use

Hydrogen is deployed to hydrogen.element.io. You can also deploy Hydrogen on your own web server:

  1. Download the latest release package.
  2. Extract the package to the public directory of your web server.
  3. If this is your first deploy:
    1. copy config.sample.json to config.json and if needed, make any modifications (unless you've set up your own sygnal instance, you don't need to change anything in the push section).

    2. Disable caching entirely on the server for:

      • index.html
      • sw.js
      • config.json
      • All theme manifests referenced in the themeManifests of config.json, these files are typically called theme-{name}.json.

      These resources will still be cached client-side by the service worker. Because of this; you'll still need to refresh the app twice before config.json changes are applied.

Set up a dev environment

You can run Hydrogen locally by the following commands in the terminal:

  • yarn install (only the first time)
  • yarn start in the terminal

Now point your browser to http://localhost:3000. If you prefer, you can also use docker.

PS: You need nodejs, running yarn on top of any other js platform is not supported.

FAQ

Some frequently asked questions are answered here.

Copyright (c) 2015-2016 OpenMarket Ltd

Copyright (c) 2019-2023 The Matrix.org Foundation C.I.C.

Copyright (c) 2025 New Vector Ltd

This software is multi licensed by New Vector Ltd (Element). It can be used either:

(1) for free under the terms of the GNU Affero General Public License (as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version); OR

(2) under the terms of a paid-for Element Commercial License agreement between you and Element (the terms of which may vary depending on what you and Element have agreed to). Unless required by applicable law or agreed to in writing, software distributed under the Licenses is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licenses for the specific language governing permissions and limitations under the Licenses.