# @schukai/monster

> Monster is a simple library for creating fast, robust and lightweight websites.

Latest version **4.154.5** (published 2026-10-04) · AGPL 3.0 license · 0 weekly downloads

## Install

```sh
npm install @schukai/monster
pnpm add @schukai/monster
yarn add @schukai/monster
bun add @schukai/monster
```

## Health

**Score 60/100 (C)** — status: active.

Positive: esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 4.154.5 |
| Published | 2026-10-04 |
| First published | 2021-06-25 |
| Weekly downloads | 0 |
| License | AGPL 3.0 |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 8.7 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Volker Schukai |
| Maintainers | volker.schukai |
| Keywords | framework, web, dom, css, sass, mobile-first, app, front-end, templates, schukai, core, shopcloud, alvine, monster, buildmap, stack, observer, observable, uuid, node, nodelist, css-in-js, logger, log, theme |

## Links

- npm: https://www.npmjs.com/package/@schukai/monster
- Repository: https://gitlab.schukai.com/oss/libraries/javascript/monster
- Homepage: https://monsterjs.org/
- npm.io page: https://npm.io/package/@schukai/monster

## Dependencies (1)

- [@floating-ui/dom](https://npm.io/package/@floating-ui/dom.md) ^1.7.6

## Alternatives

- [cli-color](https://npm.io/package/cli-color.md) — 3.4M weekly downloads
- [log](https://npm.io/package/log.md) — 1.3M weekly downloads
- [logstash-client](https://npm.io/package/logstash-client.md) — 4.5K weekly downloads
- [@nocobase/plugin-logger](https://npm.io/package/@nocobase/plugin-logger.md) — 2.0K weekly downloads
- [child-process-debug](https://npm.io/package/child-process-debug.md) — 695 weekly downloads

## Recent versions

- 4.154.5 (latest) — 2026-10-04
- 4.154.4 — 2026-10-04
- 4.154.3 — 2026-10-03
- 4.154.2 — 2026-10-02
- 4.154.1 — 2026-10-02
- 4.154.0 — 2026-10-01
- 4.153.1 — 2026-09-17
- 4.153.0 — 2026-09-05
- 4.152.0 — 2026-08-29
- 4.151.0 — 2026-08-29
- 4.150.9 — 2026-08-28
- 4.150.8 — 2026-08-26
- 4.150.7 — 2026-08-21
- 4.150.6 — 2026-08-18
- 4.150.5 — 2026-08-12
- … 733 more at https://npm.io/package/@schukai/monster/versions

## README

# Monster

Monster is an ideal choice for building visually appealing and high-performance web interfaces and websites using modern
JavaScript techniques.

By leveraging cutting-edge JavaScript features such as classes, WeakRef, WeakMaps, proxies, and the MutationObserver
interface, Monster
offers a blend of traditional methods and innovative web components.

Designed for seamless integration, Monster complements existing web projects without dominating the entire architecture.

Unlike solutions that introduce a new layer of abstraction and proprietary languages, Monster focuses on enhancing
the native capabilities of HTML, CSS, and JavaScript for web development.

With a design goal to optimize performance and achieve stellar outcomes, Monster achieves
this using minimal JavaScript code.

Monster is built with ES6 modules and uses
the [import](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/import)
and [export](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export) statements.

For certain functions, additional [polyfills](#polyfill) may be required.

## Documentation

To access our documentation and examples, visit [monsterjs.org/](https://monsterjs.org/).

## Installation

Install Monster using npm, Yarn, or pnpm:

- `npm install @schukai/monster`
- `yarn add @schukai/monster`
- `pnpm add @schukai/monster`

## Usage

Here is a simple example of how to use Monster. We create a small file named `index.mjs`
(where 'm' stands for module). In this example, we perform substitutions in a string:

```js
import {Formatter} from '@schukai/monster/source/text/formatter.mjs';

const text = '${mykey${subkey}}';
let obj = {
    mykey2: "1",
    subkey: "2"
};

new Formatter(obj).format(text);
// Outputs: 1
```

To integrate this function into a website, it is recommended to use a bundler such
as [esbuild](https://esbuild.github.io/):

```sh
esbuild index.mjs --outfile=dist.js
```

You can now include it in your website:

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Monster</title>
    <script src="dist.js"></script>
</head>
<body>
```

Voilà!

### Polyfill

While we strive to work around some browser bugs, generally, we do not use polyfills or feature detection.
However, many functions can be supplemented through polyfills, thus enhancing compatibility.

### Content Security Policy

String expressions starting with `run:` use `new Function()` and require CSP
permission for string evaluation. Existing configurations remain supported.
For Select sorting under a policy without `unsafe-eval`, use `call:asc`,
`call:desc`, or set a function from your application script:

```javascript
select.setOption("mapping.sort", (a, b, control) =>
    a[1].localeCompare(b[1])
);
```

Each comparator argument is a `[value, label]` entry; the third argument is the
owning Select. A `null` sort keeps the imported order. Configure function values
through JavaScript, since JSON attributes cannot contain functions.

### Browser verification

The [browser test runner](test/web/README.md) builds the current checkout and runs
Chromium, Firefox and WebKit with normal web security, including CSP and timezone
regressions. Browser versions are pinned with the Nix environment. This does not
establish support for older browsers or replace testing Safari on Apple devices.

## Questions

For questions and commercial support, please contact [Volker Schukai](https://www.schukai.com/).
The issue list of this repository is exclusively for bug reports and feature requests.

## Issues

Please ensure you read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines
may
be closed immediately.

## License

Copyright © 2026 Volker Schukai

Licensed under [AGPL](https://www.gnu.org/licenses/agpl-3.0.de.html). Commercial licenses are also available.

## Changelog

Detailed changes for each release are documented in the
[CHANGELOG](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/blob/master/application/CHANGELOG.md).

---
_Source: https://npm.io/package/@schukai/monster · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
