Skip to content

Latest commit

 

History

109 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

m7-js-lib-app-active-tags v1.0

ActiveTags Logo

Deterministic Workflow Orchestration for DOM Components

Introduction

ActiveTags is designed for medium-to-high complexity interactive websites that need structured behavior without moving to a full frontend framework.


Motivation

ActiveTags was built to solve practical problems in real-world MVC systems:

  1. Deliver SPA-like behavior without adopting a platform-owning framework.
  2. Build complex components (for example, chat interfaces) without monolithic JavaScript glue.
  3. Orchestrate multi-source workflows (requests, sockets, heartbeats, status updates) in one deterministic pipeline model.
  4. Configure components quickly via JSON-style config and admin controls, instead of hardwiring behavior repeatedly in backend code.
  5. Keep behavior reusable and portable across legacy PHP sites, JavaScript-driven pages, and framework-hosted environments, while preserving clear HTML/CSS/logic role boundaries.

In short: ActiveTags is ruthless about killing glue code.


Navigation

If you are new to the project, the recommended reading order is:

  1. About ActiveTags -> docs/ABOUT.md
  2. Introduction -> docs/usage/INTRODUCTION.md
  3. Quick Start -> docs/usage/QUICKSTART.md
  4. Tutorial -> docs/usage/TUTORIAL.md
  5. Usage TOC -> docs/usage/TOC.md
  6. Architecture Index -> docs/architecture/INDEX.md
  7. API Index -> docs/api/INDEX.md

Quick example

import { install, SERVICE_ID } from "./dist/nomap/activeTags.standalone.v1.0.min.js";

const lib = install({
  conf: {
    boot: {
      observeDom: true,
      events: true,
      intervals: true,
    },
    observe: {
      runtimeAttach: true,
      runtimeDispose: true,
    }
  }
});

const AT = lib.service.get(SERVICE_ID);
if (!AT) throw new Error(`missing ActiveTags service '${SERVICE_ID}'.`);

await AT.start();

With boot.observeDom: true, later matching DOM additions/removals are also processed by the observer. By default, observe.runtimeAttach syncs newly discovered jobs into the events/intervals runtime, and observe.runtimeDispose clears runtime event/interval state before removed jobs are unregistered.


Philosophy

"Declare behavior in DOM/config. Execute deterministically in one runtime."


License

See LICENSE.md for full terms.


AI Usage Disclosure

See:

for permitted use of AI in derivative tools or automation layers.


Feedback / Security

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages