{"id":16529303,"url":"https://github.com/cometkim/mattermost-experimental","last_synced_at":"2026-02-16T13:07:39.369Z","repository":{"id":98896276,"uuid":"191607425","full_name":"cometkim/mattermost-experimental","owner":"cometkim","description":"An experimental Mattermost client focused on technical enhancement.","archived":false,"fork":false,"pushed_at":"2023-12-15T05:56:37.000Z","size":5,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-29T14:49:52.537Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cometkim.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":"2019-06-12T16:26:33.000Z","updated_at":"2019-07-10T16:58:27.000Z","dependencies_parsed_at":"2024-03-15T02:25:45.054Z","dependency_job_id":"10efc77f-3a7f-4201-a6e2-e12e2cb0f928","html_url":"https://github.com/cometkim/mattermost-experimental","commit_stats":{"total_commits":4,"total_committers":1,"mean_commits":4.0,"dds":0.0,"last_synced_commit":"c81377f988f745d2f956691daca2b2e679dc733c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cometkim%2Fmattermost-experimental","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cometkim%2Fmattermost-experimental/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cometkim%2Fmattermost-experimental/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cometkim%2Fmattermost-experimental/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cometkim","download_url":"https://codeload.github.com/cometkim/mattermost-experimental/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241618792,"owners_count":19991933,"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-10-11T17:44:26.109Z","updated_at":"2025-10-08T22:01:35.310Z","avatar_url":"https://github.com/cometkim.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# mattermost-experimental\n\nAn experimental Mattermost client focused on technical enhancements.\n\n## Technical Goals\n\n- End-to-end type-safety\n- Sharing codes in the right way\n- Faster client experience\n\n### Problems\n\n1. Modeling: Mattermost's model is based on a golang which is much less expressive of the type system than other modern languages, and does not provide a separate abstraction on the client. This is not useful in client code and interoperability to other languages.\n\n2. Sharing codes: The mattermost-redux is a way to share network bindings between the web and mobile, but it also has the disadvantage of sharing heavy and unnecessary logic. On the other hand, the UI for the web, mobile, desktop is almost fragmented.\n\n3. Missing optimizations:\n\n### Solutions\n\n**GraphQL, React Native(includes Web \u0026 Desktop), ReasonML(or just TypeScript?)**\n\n- With **GraphQL**, we can build more useful models for Mattermost client while retaining existing store models, and it has excellent interoperability with other languages through tooling.\n\n- With **React Native Web**, we can share almost UI codebase, but still fully supports native targets. native desktop app also would be an option.\n\n- With **Apollo Client**, while Apollo is implementing and optimizing the GraphQL specification, we can focus more on developing the UI instead of paying attention to the network binding (include WebSockets).\n\n- With **ReasonML**, It is very well integrated with GraphQL, React Native, and can be developed with super-strong type system support.\n\nAnd more...\n\n- Robust Networking and Offline support using GraphQL and Apollo. Also avoid unnecessary state sharing like the mattermost-redux via Client-side schema based cache control\n\n- For Web version, we can improve of first meaningful paint and interaction are prioritized through optimized web technology.\n\n## Subprojects\n\n### Mattergen\n\nStatus: Redesigning\n\n- [mattergen](https://github.com/cometkim/mattergen):\n\n  Parsing mattermost-server and generate type definitions to help building client stub.  \n  \n  The Mattermost server is very weakly-typed because of flexibility. Types in Mattermost are difficult to inference correctly becuase complex structure is often treated as map and also there is no Enumulator in the language (Golang).  \n  \n  Mattergen will provide a more strictly powerful type system based merging automatically-analized models with self-written sub-typing. \n\n### mattermost-plugin-graphql\n\nStatus: Waiting for mattergen\n\n- [mattermost-plugin-graphql](https://github.com/cometkim/mattermost-plugin-graphql):\n\n  GraphQL is type-safe, efficient query-based remote API. And plugin is an way to extend Mattermost behavior for either the server and client.\n  \n  mattermost-plugin-graphql is add new **GraphQL** endpoint to exist Mattermost server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcometkim%2Fmattermost-experimental","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcometkim%2Fmattermost-experimental","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcometkim%2Fmattermost-experimental/lists"}