{"id":13929106,"url":"https://github.com/matrix-org/matrix-viewer","last_synced_at":"2025-10-23T22:33:58.499Z","repository":{"id":37178989,"uuid":"457276661","full_name":"matrix-org/matrix-viewer","owner":"matrix-org","description":"View the history of public and world readable Matrix rooms","archived":false,"fork":false,"pushed_at":"2023-11-27T16:16:36.000Z","size":1651,"stargazers_count":79,"open_issues_count":61,"forks_count":11,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-03-24T13:36:11.542Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://archive.matrix.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matrix-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-02-09T08:44:34.000Z","updated_at":"2025-03-17T21:17:01.000Z","dependencies_parsed_at":"2023-11-27T17:42:54.612Z","dependency_job_id":null,"html_url":"https://github.com/matrix-org/matrix-viewer","commit_stats":null,"previous_names":["matrix-org/matrix-public-archive"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmatrix-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmatrix-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmatrix-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmatrix-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matrix-org","download_url":"https://codeload.github.com/matrix-org/matrix-viewer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243501,"owners_count":21071054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-07T18:02:07.388Z","updated_at":"2025-10-23T22:33:48.467Z","avatar_url":"https://github.com/matrix-org.png","language":"JavaScript","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"# Matrix Viewer\n\n\u003ca href=\"https://matrix.to/#/#matrix-viewer:matrix.org\"\u003e\u003cimg src=\"https://img.shields.io/matrix/matrix-viewer:matrix.org.svg?label=%23matrix-viewer%3Amatrix.org\u0026logo=matrix\u0026server_fqdn=matrix.org\" alt=\"Join the community and get support at #matrix-viewer:matrix.org\" /\u003e\u003c/a\u003e\n\n\u003e **Note**\n\u003e The Matrix Public Archive has been renamed to Matrix Viewer to better reflect what it\n\u003e actually does and doesn't do. It's a viewer for world-readable Matrix rooms and\n\u003e doesn't actually archive anything.\n\nIn the vein of [feature parity with\nGitter](https://github.com/vector-im/roadmap/issues/26), the goal is to make an\naccessible public site for `world_readable` Matrix rooms like Gitter's archives\nwhich search engines can index and keep all of the content accessible/available.\n\n\u003c!-- prettier-ignore --\u003e\nRoom directory homepage | Room view\n--- | ---\n\u003cimg alt=\"A reference for how the Matrix Viewer homepage looks. Search bar where you can find thousands of rooms using Matrix and homeserver selector. Grid of room cards showing the results.\" src=\"https://user-images.githubusercontent.com/558581/236579462-fee0f9c0-29d2-4c3d-a695-c9eaf0f744ef.png\" width=\"440\"\u003e | ![A reference for how the Matrix Viewer looks. Showing off a day of messages in `#gitter:matrix.org` on 2021-08-06. There is a date picker calendar in the right sidebar and a traditional chat app layout on the left.](https://user-images.githubusercontent.com/558581/234765275-28c70c49-c27f-473a-88ba-f4392ddae871.png)\n\n## Demo videos\n\nThe demo's refer to this project as the \"Matrix Public Archive\" which has now been renamed to \"Matrix Viewer\".\n\n- [![](https://user-images.githubusercontent.com/558581/206083768-d18456de-caa3-463f-a891-96eed8054686.png) May 2023](https://www.youtube.com/watch?v=4KlNILNItGQ\u0026t=1046s): Introducing [archive.matrix.org](https://archive.matrix.org/), the shiny new public instance of the Matrix Public Archive that everyone can share and link to.\n- [![](https://user-images.githubusercontent.com/558581/206083768-d18456de-caa3-463f-a891-96eed8054686.png) Aug 2022](https://www.youtube.com/watch?v=6KHQSeJTXm0\u0026t=583s) ([blog post](https://matrix.org/blog/2022/08/05/this-week-in-matrix-2022-08-05#matrix-public-archive-website)): A quick intro of what the project looks like, the goals, what it accomplishes, and how it's a new portal into the Matrix ecosystem.\n- [![](https://user-images.githubusercontent.com/558581/206083768-d18456de-caa3-463f-a891-96eed8054686.png) Oct 2022](https://www.youtube.com/watch?v=UT6KSEqDUf8\u0026t=548s): Showing off the room directory landing page used to browse everything available in the archive.\n\n## Technical overview\n\nWe server-side render (SSR) the [Hydrogen](https://github.com/vector-im/hydrogen-web)\nMatrix client on a Node.js server (since both use JavaScript) and serve pages on the fly\n(with some Cloudflare caching on top) when someone requests\n`/r/matrixhq:matrix.org/${year}/${month}/${day}`. To fetch the events for a\ngiven day/time, we use [MSC3030](https://github.com/matrix-org/matrix-doc/pull/3030)'s\n`/timestamp_to_event` endpoint to jump to a given day in the timeline and fetch the\nmessages from a Matrix homeserver.\n\nRe-using Hydrogen gets us pretty and native(to Element) looking styles and keeps\nthe maintenance burden of supporting more event types in Hydrogen.\n\n## FAQ\n\nSee the [FAQ page](docs/faq.md).\n\n## Setup\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) v18\n  - We need v18 because it includes `fetch` by default. And [`node-fetch` doesn't\n    support `abortSignal.reason`](https://github.com/node-fetch/node-fetch/issues/1462)\n    yet.\n  - We need v16 because it includes\n    [`require('crypto').webcrypto.subtle`](https://nodejs.org/docs/latest-v16.x/api/webcrypto.html#cryptosubtle)\n    for [Matrix encryption (olm) which can't be disabled in\n    Hydrogen](https://github.com/vector-im/hydrogen-web/issues/579) yet. And\n    [`abortSignal.reason` was introduced in\n    v16.14.0](https://nodejs.org/dist/latest-v18.x/docs/api/globals.html#abortsignalreason) (although we use `node-fetch` for now).\n- A Matrix homeserver that supports [MSC3030's](https://github.com/matrix-org/matrix-spec-proposals/pull/3030) `/timestamp_to_event` endpoint\n  - [Synapse](https://matrix.org/docs/projects/server/synapse) 1.73.0+\n\n### Get the app running\n\n```sh\n$ npm install\n$ npm run build\n\n# Edit `config/config.user-overrides.json` so that `matrixServerUrl` points to\n# your homeserver and has `matrixAccessToken` defined\n$ cp config/config.default.json config/config.user-overrides.json\n\n$ npm run start\n```\n\n## Development\n\n```sh\n# Clone and install the `matrix-viewer` project\n$ git clone git@github.com:matrix-org/matrix-viewer.git\n$ cd matrix-viewer\n$ npm install\n\n# Edit `config/config.user-overrides.json` so that `matrixServerUrl` points to\n# your homeserver and has `matrixAccessToken` defined\n$ cp config/config.default.json config/config.user-overrides.json\n\n# This will watch for changes, rebuild bundles and restart the server\n$ npm run start-dev\n```\n\nIf you want to make changes to the underlying Hydrogen SDK as well, you can locally link\nit into this project with the following instructions:\n\n```sh\n# We need to use a draft branch of Hydrogen to get the custom changes needed for\n# `matrix-viewer` to run. Hopefully soon, we can get all of the custom\n# changes mainlined so this isn't necessary.\n$ git clone git@github.com:vector-im/hydrogen-web.git\n$ cd hydrogen-web\n$ git checkout madlittlemods/matrix-public-archive-scratch-changes\n$ yarn install\n$ yarn build:sdk\n$ cd target/ \u0026\u0026 npm link \u0026\u0026 cd ..\n$ cd ..\n\n$ cd matrix-viewer\n$ npm link hydrogen-view-sdk\n```\n\n### Running tests\n\nSee the [testing documentation](./docs/testing.md).\n\n### Tracing\n\nSee the [tracing documentation](./docs/tracing.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrix-org%2Fmatrix-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatrix-org%2Fmatrix-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrix-org%2Fmatrix-viewer/lists"}