{"id":17020573,"url":"https://github.com/insuremo/rainbow-d9","last_synced_at":"2026-04-01T18:35:00.592Z","repository":{"id":199979494,"uuid":"704514093","full_name":"InsureMO/rainbow-d9","owner":"InsureMO","description":"D9 is an lower code configuration UI engine.","archived":false,"fork":false,"pushed_at":"2025-06-17T10:31:35.000Z","size":57630,"stargazers_count":7,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-02T18:04:01.065Z","etag":null,"topics":["components","extend","extension","insuremo","lowcode","markdown","react"],"latest_commit_sha":null,"homepage":"https://insuremo.github.io/rainbow-d9/","language":"TypeScript","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/InsureMO.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-13T12:23:27.000Z","updated_at":"2025-06-17T10:30:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"969bc001-f619-4c39-b95b-688ae28061b1","html_url":"https://github.com/InsureMO/rainbow-d9","commit_stats":{"total_commits":1047,"total_committers":4,"mean_commits":261.75,"dds":"0.018147086914995225","last_synced_commit":"4c0829ac6705b267145c5d1d131c5a60f2c2025e"},"previous_names":["insuremo/rainbow-d9"],"tags_count":173,"template":false,"template_full_name":null,"purl":"pkg:github/InsureMO/rainbow-d9","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsureMO%2Frainbow-d9","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsureMO%2Frainbow-d9/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsureMO%2Frainbow-d9/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsureMO%2Frainbow-d9/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InsureMO","download_url":"https://codeload.github.com/InsureMO/rainbow-d9/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InsureMO%2Frainbow-d9/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264638300,"owners_count":23642141,"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":["components","extend","extension","insuremo","lowcode","markdown","react"],"created_at":"2024-10-14T07:05:27.281Z","updated_at":"2025-10-24T00:51:56.405Z","avatar_url":"https://github.com/InsureMO.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Static Badge](https://img.shields.io/badge/InsureMO-777AF2.svg)\n\n![License](https://img.shields.io/github/license/InsureMO/rainbow-d9)\n![GitHub Release](https://img.shields.io/github/v/release/InsureMO/rainbow-d9)\n![GitHub Release Date](https://img.shields.io/github/release-date/InsureMO/rainbow-d9)\n![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/InsureMO/rainbow-d9)\n\n![npm (scoped)](https://img.shields.io/npm/v/%40rainbow-d9/n1?logo=npm)\n\n![React](https://img.shields.io/badge/react-087EA4.svg?logo=react)\n![Module Formats](https://img.shields.io/badge/module%20formats-cjs%2C%20esm-green.svg)\n\n# Idea of `d9`\n\nThe inspiration for `d9` comes from some complex business applications, where certain data display pages, due to the differences in their\nbusiness forms, make it difficult to standardize their behavior even with the support of mature UI widget libraries. The logical\nrelationship between different widgets on the same page makes it difficult to abstract local reusable business widgets, or it\nrequires a significant amount of time and effort to achieve the desired results. When customizing pages based on product baselines in\ndifferent projects, one must also understand a large amount of existing code logic in order to make modifications and extensions\neffectively, resulting in low efficiency.\n\nTo fundamentally address these issues, `d9` departs from the typical approach of widget libraries focusing on the implementation of\nindividual widget behaviors. Instead, it first standardizes the behavior of all widgets' interactions with data at the underlying\nlevel and defines them at an abstract level. Then, it defines the implementation of widgets based on these behaviors. With this approach,\nall widgets, data, and the logical relationships between widgets are standardized. At the same time, `d9` also provides a set of basic\nUI widgets for easy use. In addition to that, considering the diversity of page presentation, `d9` also supports bridging third-party\nwidgets to the underlying standard library to accommodate various presentation requirements.\n\nLastly, to better serve business professionals, `d9` not only supports programming approaches (including writing in the standard React way\nand\nwriting based on JSON configuration), but also provides a way for business users to write using Markdown configuration. This allows project\nstakeholders without programming backgrounds to independently write pages without the need for developers.\n\nIn summary, the design principles of `d9` can be briefly summarized as follows:\n\n- Standardize the presentation behavior of page widgets,\n- Standardize the interaction between page widgets and data,\n- Separate the implementation from the widget implementation at the underlying level, providing the ability to integrate any third-party\n  widgets,\n- Provide the ability to parse and render pages based on Markdown.\n\n# Modules\n\nCurrently, `d9` is divided into three submodules:\n\n- [d9-n1](https://github.com/InsureMO/rainbow-d9/blob/main/d9-n1/README.md): the underlying module,\n- [d9-n2](https://github.com/InsureMO/rainbow-d9/blob/main/d9-n2/README.md): the widget library,\n- [d9-n3](https://github.com/InsureMO/rainbow-d9/blob/main/d9-n3/README.md): the Markdown parsing library.\n- [d9-n5](https://github.com/InsureMO/rainbow-d9/blob/main/d9-n5/README.md): the `d9` playground.\n- [d9-n6](https://github.com/InsureMO/rainbow-d9/blob/main/d9-n5/README.md): the [`o23`](https://github.com/InsureMO/rainbow-o23)\n  playground.\n- [d9-echarts](https://github.com/InsureMO/rainbow-d9/blob/main/d9-echarts/README.md): the echarts widget library,\n- [d9-thai-plan-selection](https://github.com/InsureMO/rainbow-d9/blob/main/d9-thai-plan-selection/README.md): the plan selection widget,\n  collaborate with the Thai Cloud team.\n\n| If You                                                                         | Modules You Need            | Install Command                          |\n|--------------------------------------------------------------------------------|-----------------------------|------------------------------------------|\n| Develop library based on `d9` core                                             | `d9-n1`                     | `yarn add @rainbow-d9/n1`                |\n| Develop project based on `d9` widget, programmatically                         | `d9-n1` + `d9-n2`           | `yarn add @rainbow-d9/n2`                |\n| Develop project based on `d9` widget, markdown configured                      | `d9-n1` + `d9-n2` + `d9-n3` | `yarn add @rainbow-d9/n2 @rainbow-d9/n3` |\n| Develop project based on `d9` core, with your own widgets, markdown configured | `d9-n1` + `d9-n3`           | `yarn add @rainbow-d9/n3`                |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsuremo%2Frainbow-d9","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finsuremo%2Frainbow-d9","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsuremo%2Frainbow-d9/lists"}