Apache-2.0
BlameJS
The Node framework that owns its stack.
Zero npm runtime dependencies. Post-quantum crypto from line zero. Sealed-by-default storage. Audit chain on every operator action.
- Zero npm deps
- PQC by default
- Sealed storage
- Audit chain
- Server-rendered
This site is the docs and a working reference app — every page you read renders through the framework's own primitives.
Quick start #
npm install @blamejs/core
node -e 'require("@blamejs/core").createApp({ dataDir: "./data" })'
Or browse the source layout of this very wiki for a full reference app:
var b = require("@blamejs/core");
var app = await b.createApp({
dataDir: "./data",
routes: function (router) {
router.get("/", function (req, res) {
b.render.htmlString(res, "<h1>Hello from blamejs</h1>");
});
},
});
await app.listen({ port: 3000 });
Concern groups #
Pick the area you're working on:
Welcome
Start here — what blamejs is, how to install, how to read this site.
Security defaults
Security defaults are not opt-in. CSRF / origin / bot-guard / sealed storage / audit chain — all wired into the request lifecycle, not behind config flags.
Envelope versioning
How crypto algorithms roll forward without breaking on-disk data. Versioned envelope, kid rotation, AAD-bound ciphertext.
Validation discipline
Three-tier policy: throw at config-time, drop-silent on hot paths, return defaults on request-shape reads.
Compliance postures
Union-of-bars strategy for HIPAA / PCI / GDPR / SOC 2 / DORA / NIS 2 / CRA. Strictest-wins by default.
Modernity posture
TLS 1.3 minimum, ML-KEM-1024 hybrid, SLH-DSA audit signatures, Argon2id passwords. No classical-only fallbacks.
API index
Every operator-facing primitive across all namespaces, alphabetical, deep-linked. Search via the sidebar (or `/`).
Error catalog
Every framework error class registered via b.frameworkError.defineClass — code, message shape, callsites.
Environment variables
Every BLAMEJS_* / WIKI_* env var the framework reads, with default + type schema, harvested from safeEnv.readVar calls.
Vendored dependencies
Every package vendored under lib/vendor/ — version, license, source URL, SHA-256, framework consumers.
CLI commands
Every blamejs CLI subcommand harvested from lib/cli.js — args, flags, exit codes, examples.
Content Credentials
C2PA 2.1 content provenance — sign assets with a manifest declaring origin, edits, AI involvement.
Model Context Protocol
Model Context Protocol server hardening — input validation, OAuth integration per RFC 9728, scope enforcement, audit emission.
Agent Orchestrator
The framework-level supervisor for every agent blamejs ships. Registry, sharded topics, leader-elected singletons, drain, and health probe — operators stop wiring these per-agent.
SMTP / HTTP-API email send with multipart RFC 5322 message composition, DKIM signing on the way out, and full inbound mail- authentication parsing on the way in.
Webhook
Outbound webhook delivery with cryptographic signing in a single `Webhook-Signature` header, retry + dead-letter via `b.retry`, and idempotency keys baked into the signed string so a captured signature cannot be replayed with a fresh id.
Compliance
Top-level compliance-posture coordinator — single source of truth for "what regulatory regime is this deployment running under?".
Crypto
The framework's PQC-first cryptography surface.
Vault
Sealed keystore that anchors every other framework subsystem holding secrets at rest: db field encryption, encrypted session storage, audit-log signing keys, OAuth refresh tokens, anything that flows through `b.vault.seal` / `b.vault.unseal`.
Db
Database core — SQLite (node:sqlite) wrapped in encrypted-at-rest storage, sealed-column field-level crypto, append-only audit-chain integration, declarative schema reconcile, and run-once migrations.
Session
Server-side session store with idle + absolute timeouts, encrypted at rest, sealed columns, audit on every login / logout, and cluster-aware leader gating.
Storage
Filesystem-and-cloud-backed object storage with sealed per-file encryption keys, classification routing, and residency enforcement.
Money
BigInt minor units + ISO 4217 catalog + largest-remainder allocation. Numbers refused at the boundary; FX conversion rounds half-to-even.
Guard All
Aggregate gate that dispatches to every registered b.guard* member by KIND.
Router
HTTP route registration + dispatch.
Static Serve
A static-file handler that confines every request to its root, gates the bytes through the guard family before sending them, and answers caching validators, byte ranges and SRI digests from one cache.
Mail Agent
Mailbox-access facade — RBAC + posture + audit + dispatch around a mail store, so a protocol server on top stays a thin shell. Read + mailbox-mutation + Sieve-upload methods are wired; compose/send and identity/vacation/MDN/export verbs compose the underlying primitive directly until a protocol server routes them through the agent.
Network
Framework network helpers — DNS-over-HTTPS dispatch, TLS configuration, OCSP/CT validation, NTP/NTS-KE bootstrap.
Audit
Tamper-evident, append-only record of every privileged action — the forensic surface every compliance posture (HIPAA / PCI-DSS / SOC 2 / GDPR / SOX / DORA) bottoms out on.
Log
Structured JSON application logger meant to be ingested by a log aggregator.
Testing
Operator-facing test helpers.
Backup
PQC-encrypted backup bundles — sealed columns + audit chain + keyring.
Cluster
Opt-in active/active leader election with fencing-tokenized writes.
Create App
One call opens the vault and the database, builds a router with the security middleware already installed, and hands back `listen`, `address` and a phase-ordered `shutdown`.
Scheduler
Cron-style task scheduler with cluster leader gating, deduplicated ticks, drift correction, and an audit event on every tick.
CSV
RFC 4180 parser + serializer with operator-friendly defaults.
Time
Timezone-aware datetime helpers built on top of native `Intl.DateTimeFormat`.
UUID
RFC 9562 v4 (random) + v7 (time-ordered).
Safe Json
Hardened JSON parse + stringify + schema validation.
Safe Schema
Declarative input validation with a Zod-shaped chained-method surface.
SQL Builder
Chainable SQL builder - every identifier quoted by construction, every value a bound placeholder, dialect-aware upsert.
Design tenets #
- Zero npm runtime deps. Every dependency is vendored under
lib/vendor/with a manifest pinning version + license + provenance. - PQC from the start. ML-KEM-1024 + P-384 hybrid KEM, XChaCha20-Poly1305 cipher, SHAKE256 KDF, SLH-DSA-SHAKE-256f signatures. No classical-only fallbacks.
- Sealed-by-default storage. Every database field except IDs / timestamps / FK references goes through
vault.seal()or a derived hash. - Audit chain on every operator action. Login, page edit, cache clear, key rotation — all emit with the 5 W's (WHO / WHAT / WHEN / WHERE / HOW).
Special thanks #
blamejs vendors a small set of exceptional third-party libraries. Their work is the foundation the framework is built on — every cryptographic operation and passkey handshake in the framework runs through their code. Full attribution (including the framework's own Apache-2.0 @blamejs/pki toolkit, which backs both b.mtlsCa and the passkey verification in b.auth.passkey) lives in NOTICE.
- Paul Miller — @noble/ciphers (XChaCha20-Poly1305 AEAD) and @noble/post-quantum (FIPS 203 ML-KEM, FIPS 204 ML-DSA, FIPS 205 SLH-DSA — the pure-JS PQC suite behind
b.pqcSoftware) - Lea Verou + contributors — Prism (syntax highlighting in the wiki you're reading)