You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To better understand the real-world usage of ng-xtend, we've developed a set of example projects, in the [ng-xtend examples](https://github.com/dont-code/ng-xtend-examples) repository.
|[basic-example](https://github.com/dont-code/ng-xtend-examples/tree/main/basic)| Displays any object in various format in a generic way |
40
-
|[typed-example](https://github.com/dont-code/ng-xtend-examples/tree/main/typed)| By describing the type handled, ng-xtend supports more use cases |
41
-
|[plugin-example](https://github.com/dont-code/ng-xtend-examples/tree/main/plugin)| Countries and Money fields looks nicer thanks to the newly added plugins. They are discovered and used transparently by the ng-xtend framework |
42
-
|[inout-example](https://github.com/dont-code/ng-xtend-examples/tree/main/inout)| A full list / edit / view flow is setup thanks to inputs / outputs connecting unknown components together. |
43
-
|[store-example](https://github.com/dont-code/ng-xtend-examples/tree/main/store)| Edited elements are persisted between sessions thanks to the xt-store library included with the ng-xtend framework. |
44
-
|[advanced-type-example](https://github.com/dont-code/ng-xtend-examples/tree/main/advanced-type)| Showcase support for advanced types and models (like references) |
45
-
|[dynamic-example](https://github.com/dont-code/ng-xtend-examples/tree/main/dynamic)| Loads all plugins dynamically from another website using [Native-Federation](https://github.com/angular-architects/module-federation-plugin/tree/main/libs/native-federation)|
Curious about how plugins are dynamically injected? Try the dedicated tester:
40
+
## News
41
+
-***2026-01-27:*** Added repository with multiple examples of ng-xtend usage. => [ng-xtend-examples](https://github.com/dont-code/ng-xtend-examples)
42
+
-***2026-01-04:*** Version 0.5.5, supports for many to one references
43
+
-***2025-11-02:*** Added support for actions, allowing plugins to add features dynamically, and added the agenda plugin, with support for recurrent tasks
44
+
-***2025-09-06:*** Version 0.5, moved to Angular 20.2, added country selection plugin.
45
+
-***2025-08-24:*** Published of apps developed: [Dashboard](https://dont-code.net/apps/repo/default)
46
+
-***2025-07-14:*** First release, with support for dynamic plugins (thanks to [Angular architects!](https://github.com/angular-architects/module-federation-plugin)) and a few plugins for Financial, Web and International applications. As well, added a default plugin to edit any data.
The host application doesn't need to know its plugins at compile time. It simply sets **Render Points (`xt-render`)**:
52
+
53
+
1.**Configuration:** A simple JSON file defines which plugins to load from which remote URLs.
54
+
2.**Registration:** Upon loading, the plugin registers itself and declares which data types or actions it supports.
55
+
3.**Resolution:** When ng-xtend encounters a specific type (e.g., `Rating`, `Currency`), it automatically finds and injects the correct component from the loaded plugins.
52
56
53
57
---
54
58
@@ -65,13 +69,17 @@ Currently, ng-xtend supports four major extension points:
65
69
66
70
---
67
71
68
-
## 🚀 How it Works (The Magic)
72
+
## Some examples ?
73
+
Here are screenshots of an application automatically handling list, view and edition of complex data (evaluations of coffee beans) using ng-xtend, a [dont-code application](https://dont-code.net/){target="_blank"}, and the [default plugin](https://github.com/dont-code/ng-xtend/tree/main/plugins/xt-default) and [web plugin](https://github.com/dont-code/ng-xtend/tree/main/plugins/xt-web)
74
+
You can see how the different plugins work together without knowing each other. Even the host application does not know them.
69
75
70
-
The host application doesn't need to know its plugins at compile time. It simply sets **Render Points (`xt-render`)**:
1.**Configuration:** A simple JSON file defines which plugins to load from which remote URLs.
73
-
2.**Registration:** Upon loading, the plugin registers itself and declares which data types or actions it supports.
74
-
3.**Resolution:** When ng-xtend encounters a specific type (e.g., `Rating`, `Currency`), it automatically finds and injects the correct component from the loaded plugins.
79
+
### 🛠️ Plugin Tester
80
+
Curious about how plugins are dynamically injected? Try the dedicated tester:
@@ -83,14 +91,34 @@ The host application doesn't need to know its plugins at compile time. It simply
83
91
-[x] Strong type support
84
92
-[x] Remote dynamic loading
85
93
-[x] Action components support
94
+
-[ ] Workflows
95
+
-[ ] Enhanced modelization support
86
96
-[ ]**v1.0 Release!** 🏁
87
-
-[ ] Enhanced component selection (context-aware)
97
+
-[ ] AI application generation
98
+
-[ ] Enhanced plugin isolation
88
99
-[ ] v2.0 & beyond
89
100
90
101
---
91
102
92
103
## 🧑💻 Getting Started
93
104
105
+
### ️Repository of examples
106
+
To better understand the real-world usage of ng-xtend, we've developed a set of example projects, in the [ng-xtend examples](https://github.com/dont-code/ng-xtend-examples) repository.
|[basic-example](https://github.com/dont-code/ng-xtend-examples/tree/main/basic)| Displays any object in various format in a generic way |
113
+
|[typed-example](https://github.com/dont-code/ng-xtend-examples/tree/main/typed)| By describing the type handled, ng-xtend supports more use cases |
114
+
|[plugin-example](https://github.com/dont-code/ng-xtend-examples/tree/main/plugin)| Countries and Money fields looks nicer thanks to the newly added plugins. They are discovered and used transparently by the ng-xtend framework |
115
+
|[inout-example](https://github.com/dont-code/ng-xtend-examples/tree/main/inout)| A full list / edit / view flow is setup thanks to inputs / outputs connecting unknown components together. |
116
+
|[store-example](https://github.com/dont-code/ng-xtend-examples/tree/main/store)| Edited elements are persisted between sessions thanks to the xt-store library included with the ng-xtend framework. |
117
+
|[advanced-type-example](https://github.com/dont-code/ng-xtend-examples/tree/main/advanced-type)| Showcase support for advanced types and models (like references) |
118
+
|[dynamic-example](https://github.com/dont-code/ng-xtend-examples/tree/main/dynamic)| Loads all plugins dynamically from another website using [Native-Federation](https://github.com/angular-architects/module-federation-plugin/tree/main/libs/native-federation)|
119
+
120
+
---
121
+
94
122
### Developing a Plugin
95
123
We use a monorepo structure powered by [Rush](https://rushjs.io/).
96
124
```bash
@@ -99,21 +127,6 @@ rush update
99
127
rush build
100
128
```
101
129
102
-
## News
103
-
-***2026-01-27:*** Added repository with multiple examples of ng-xtend usage. => [ng-xtend-examples](https://github.com/dont-code/ng-xtend-examples)
104
-
-***2026-01-04:*** Version 0.5.5, supports for many to one references
105
-
-***2025-11-02:*** Added support for actions, allowing plugins to add features dynamically, and added the agenda plugin, with support for recurrent tasks
106
-
-***2025-09-06:*** Version 0.5, moved to Angular 20.2, added country selection plugin.
107
-
-***2025-08-24:*** Published of apps developed: [Dashboard](https://dont-code.net/apps/repo/default)
108
-
-***2025-07-14:*** First release, with support for dynamic plugins (thanks to [Angular architects!](https://github.com/angular-architects/module-federation-plugin)) and a few plugins for Financial, Web and International applications. As well, added a default plugin to edit any data.
109
-
110
-
## Some examples ?
111
-
Here are screenshots of an application automatically handling list, view and edition of complex data (evaluations of coffee beans) using ng-xtend, a [dont-code application](https://dont-code.net/){target="_blank"}, and the [default plugin](https://github.com/dont-code/ng-xtend/tree/main/plugins/xt-default) and [web plugin](https://github.com/dont-code/ng-xtend/tree/main/plugins/xt-web)
112
-
You can see how the different plugins work together without knowing each other. Even the host application does not know them.
Other examples here:[Demo Repository](https://dont-code.net/apps/repo/default)
54
+
55
+
You can check [ng-xtend-examples repo](https://github.com/dont-code/ng-xtend-examples) to learn how to use [ng-xtend](https://github.com/dont-code/ng-xtend).
56
+
57
+
Developing a new plugin is basically just wrapping existing angular components into a lightweight framework, you can check here for an example.
58
+
59
+
The framework is growing in several directions:
60
+
- Obviously enhance the UI/UX of the default plugin. It works but would really need to be more user friendly.
61
+
- Extend support of any kind of datamodels, like "list of sub elements" or "many-to-one", "many-to-many relationship"
62
+
- Look at how a non-IT user could leverage AI and LLM to generate their application. As it just needs a json file, it should be feasible
63
+
- Have more and more plugins by making them easy to develop and to consume
64
+
- Add support for advanced workflows, in addition to the master-detail provided.
0 commit comments