Skip to content

Commit 8758a13

Browse files
authored
Revise README for clarity and structure
Updated terminology and structure in the README to enhance clarity and organization.
1 parent 8a6532d commit 8758a13

1 file changed

Lines changed: 12 additions & 57 deletions

File tree

README.md

Lines changed: 12 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
**ccmjs** is a lightweight JavaScript framework that implements the **Client-side Component Model (CCM)** — an architecture for building modular, reusable, and dynamically composed web applications.
1515

16-
Components are loaded, configured, and composed dynamically at runtime — even across different framework and component versions.
16+
Components are loaded, configured, and instantiated dynamically at runtime — even across different framework and component versions.
1717

1818
## 🚀 Quick Start
1919

@@ -62,66 +62,21 @@ ccm.start(component, config, document.body);
6262

6363
This loads the quiz component dynamically, instantiates it, and renders it into the page.
6464

65-
## 🧠 What is CCM?
65+
## ✨ Beyond the Basics
6666

67-
The **Client-side Component Model (CCM)** is an architectural approach for building web applications from independent, reusable components that are composed at runtime.
67+
ccmjs also provides:
6868

69-
Each component
69+
- 🔍 Full code transparency (inspect original source at runtime)
70+
- 🗄️ Flexible data management (in-memory, local, or remote)
71+
- 🔐 Security by design (isolation, SRI, encapsulation)
72+
- 🧩 Dynamic composition of complex applications
73+
- 🌐 Integration of independently developed components
7074

71-
- defines its own configuration schema
72-
- declares dependencies declaratively
73-
- can be loaded dynamically
74-
- runs in an isolated runtime environment
75+
On top of that, ccmjs can be used to build:
7576

76-
This allows applications to be composed from independently evolving components while maintaining compatibility across versions.
77-
78-
**ccmjs** provides the reference implementation of this model in JavaScript.
79-
80-
## 🎯 Why CCM?
81-
82-
Most frontend frameworks rely on
83-
84-
- a single global runtime
85-
- a static dependency graph
86-
- a build pipeline
87-
- no shared global runtime state
88-
89-
ccmjs instead focuses on **runtime composition**.
90-
91-
Components can be
92-
93-
- loaded on demand
94-
- configured declaratively
95-
- instantiated dynamically
96-
- isolated by version
97-
98-
This enables
99-
100-
- long-term compatibility
101-
- integration of independently developed components
102-
- dynamic applications that evolve over time
103-
104-
## ⭐ Key Features
105-
106-
- Runtime component loading
107-
- Declarative configuration (JSON-based)
108-
- Automatic dependency resolution
109-
- Version isolation (framework + components)
110-
- Multiple versions can coexist
111-
- No build step required
112-
- Fully client-side execution
113-
- Instance-level DOM isolation (Shadow DOM)
114-
115-
## 🧩 Core API
116-
117-
| Function | Purpose |
118-
|--------|--------|
119-
| `ccm.load()` | Load resources dynamically |
120-
| `ccm.component()` | Register or load components |
121-
| `ccm.instance()` | Create component instances |
122-
| `ccm.start()` | Create and start component instances |
123-
| `ccm.store()` | Create datastore accessors |
124-
| `ccm.get()` | One-time data retrieval |
77+
- 🧱 Digital Makerspaces (for non-developers)
78+
- 💾 Data-sovereign applications
79+
- 🖥️ Modular web-based environments (e.g. web desktops)
12580

12681
## 📚 Documentation
12782

0 commit comments

Comments
 (0)