Skip to content

Latest commit

 

History

219 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ccmjs Framework

version License Docs Build Runtime Declarative Versioning

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.

🚀 Quick Start

Include ccmjs:

<script src="https://ccmjs.github.io/framework/ccm.js"></script>

Start a component:

ccm.start(component, config, area);

💡 Quick Example

<!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.

✨ Beyond the Basics

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)

📚 Documentation

Full documentation is available in the ccmjs Wiki.

📌 Use a specific version

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.

📄 License

ccmjs is released under the MIT License.

Releases

Used by

Contributors

Languages