{"id":13553440,"url":"https://github.com/matrix-org/cerulean","last_synced_at":"2025-04-10T15:44:18.975Z","repository":{"id":55091760,"uuid":"301262565","full_name":"matrix-org/cerulean","owner":"matrix-org","description":"An experimental Matrix client for playing with freestyle public threaded conversations","archived":false,"fork":false,"pushed_at":"2023-04-03T20:59:34.000Z","size":740,"stargazers_count":103,"open_issues_count":26,"forks_count":11,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-03-24T13:36:11.774Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-10-05T01:16:18.000Z","updated_at":"2025-02-07T12:05:19.000Z","dependencies_parsed_at":"2024-03-02T21:48:28.680Z","dependency_job_id":null,"html_url":"https://github.com/matrix-org/cerulean","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fcerulean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fcerulean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fcerulean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fcerulean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matrix-org","download_url":"https://codeload.github.com/matrix-org/cerulean/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-01T12:02:24.715Z","updated_at":"2025-04-10T15:44:18.954Z","avatar_url":"https://github.com/matrix-org.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"readme":"# Cerulean\n\nCerulean is a highly experimental [Matrix](https://matrix.org) client intended to\ndemonstrate the viability of freestyle public threaded conversations a la Twitter.\n\nAs such, it is built as simply as possible, in order to demonstrate to someone\nunfamiliar with Matrix how the Client Server API can be used in this manner.\nIt has no dependencies (other than create-react-app) and has no optimisations.\nIt uses a naive View+Model architecture for legibility (although ideally it'd\ngrow to be MVVM in future).\n\nFor more info, see https://matrix.org/blog/2020/12/18/introducing-cerulean\n\n## Design\n\nThe way Cerulean works is:\n * Messages are sent into 2 rooms: the 'user timeline' room and a 'thread' room.\n    * For instance, my user timeline room would be #@matthew:matrix.org\n    * A thread room is created for each unique post. Replies to the thread are sent into this room.\n * Messages are viewed in the context of a given 'thread' room.\n    * e.g. https://cerulean/#/@matthew:matrix.org/!cURbafjkfsMDVwdRDQ:matrix.org/$nqeHq7lJyFp4UZNlE3rN4xPVsez0vZnIcaM6SQB9waw\n      is a given message that I've sent, and that is a permalink to the message with surrounding replies.\n * User timelines are viewed in the context of a given 'user timeline' room.\n    * e.g https://cerulean/#/@matthew:matrix.org is my user timeline which has all my posts and all my replies.\n * Messages are threaded in 'thread' rooms using MSC2836.\n * Users **should** only `/join` other's timeline rooms to 'follow' them and get updates whenever they make a post/reply.\n * Users **should** only `/join` a thread room to reply to a post in that room, otherwise they should `/peek` to get a read-only view of the thread.\n * Users **should** start off as guests on their chosen homeserver, and then login if they want to post.\n\nCerulean uses the following experimental [MSCs](https://matrix.org/docs/spec/proposals):\n * Threading from [MSC2836](https://github.com/matrix-org/matrix-doc/pull/2836)\n * `#@user:domain` user profile/timeline rooms from [MSC1769](https://github.com/matrix-org/matrix-doc/pull/1769)\n * peeking via `/sync` [MSC2753](https://github.com/matrix-org/matrix-doc/pull/2753) - optional\n * peeking over federation [MSC2444](https://github.com/matrix-org/matrix-doc/pull/2444) - optional\n\n## Features\n\n * [x] User timelines\n * [x] User timelines with replies\n * [x] Individual messages with surrounding threaded conversation\n * [x] Ability to expand out threads to explore further\n * [x] Ability to display parent rather than child threads if the parent started on a different timeline\n * [x] Live updates as messages arrive (i.e. a `/sync` loop)\n * [ ] HTML messages\n * [ ] Likes\n * [ ] RTs\n\nPending serverside work:\n * [ ] Search. We don't currently have a fast search across all public rooms, but it could of course be added.\n * [ ] Hashtags. These are effectively a subset of search.\n\nThis test jig could also be used for experimenting with other threaded conversation formats, e.g:\n * Mailing lists\n * Newsgroups\n * HN/Reddit style forums\n\n## To build\n\n```\nyarn install\nyarn start\n```\n\n## License\n\nAll files in this repository are licensed as follows:\n\n```\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrix-org%2Fcerulean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatrix-org%2Fcerulean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrix-org%2Fcerulean/lists"}