Buildless. Composable. Runtime.
No installation. No build. Just include and start.
ccmjs is a lightweight JavaScript framework that implements the Client-side Component Model (CCM) — an architecture for building modular, reusable, and dynamically composed web apps.
Components are loaded, configured, and instantiated dynamically at runtime — even across different framework and component versions.
Include ccmjs:
<script src="https://ccmjs.github.io/framework/ccm.js"></script>Start a component:
ccm.start(component, config, area);<!DOCTYPE html>
<meta charset="UTF-8">
<body>
<script src="https://ccmjs.github.io/framework/ccm.js"></script>
<script>
const component = "https://ccmjs.github.io/quiz/ccm.quiz.mjs";
const config = {
feedback: true,
questions: [
{
text: "Does this example work?",
input: "radio",
answers: [
{ text: "Yes", correct: true },
{ text: "No" }
]
}
]
};
ccm.start(component, config, document.body);
</script>This loads the quiz component dynamically, instantiates it, and renders it into the page.
ccmjs also provides:
- 🔍 Full code transparency (inspect original source at runtime)
- 🗄️ Flexible data management (in-memory, local, or remote)
- 🔐 Security by design (isolation, SRI, encapsulation)
- 🧩 Dynamic composition of complex apps
- 🌐 Integration of independently developed components
On top of that, ccmjs can be used to build:
- 🧱 Digital Makerspaces (for non-developers)
- 💾 Data-sovereign apps
- 🖥️ Modular web-based environments (e.g. web desktops)
Full documentation is available in the ccmjs Wiki.
To pin your app to a specific framework release, load it from jsDelivr:
<script src="https://cdn.jsdelivr.net/gh/ccmjs/framework@v28.0.0/ccm-28.0.0.min.js"></script>This URL selects version 28.0.0. For another release, replace the version in both the tag (@v28.0.0) and the filename (ccm-28.0.0.min.js). You can also use this URL as the ccm dependency in a component.
Optional: Verify integrity with SRI
Subresource Integrity (SRI) lets the browser verify that the downloaded file matches the expected contents:
<script
src="https://cdn.jsdelivr.net/gh/ccmjs/framework@v28.0.0/ccm-28.0.0.min.js"
integrity="sha384-HDMeDDgKlR2OFJ3ECMwmA6wknqpfpeCiSZYlUhQaFg9FKrvHJp8MMSwrxibvWJ2G"
crossorigin="anonymous"
></script>This hash applies to the minified 28.0.0 file. When changing versions, update both the URL and the integrity hash.
ccmjs is released under the MIT License.