Monochromatic
A TypeScript monorepo (48 packages) for web applications, design systems,
developer tooling, and AI integrations.
Highlights
Minimal MCP server --
mcp-stdio implements the Model Context Protocol
in 800 lines with zero runtime dependencies.
The official @modelcontextprotocol/sdk pulls 5.8 MB and 17 dependencies
(Express, Hono, jose, OAuth, rate limiting, SSE);
this package implements only JSON-RPC 2.0, initialization handshake,
tools/list, tools/call, and ping.
Inference canary --
inference-canary runs five
code-generation probes (CSV parser, expression evaluator, CSS mixin transpiler,
stack interpreter, task scheduler) against 8 LLM models in parallel.
Each probe executes inside a locked-down Podman container (no network,
read-only filesystem, 256 MB memory, 15 s timeout) and scores across
correctness, lint quality (oxlint), and type safety (tsgo).
Statistical threshold detection (mean - 2*stddev) flags model degradation
before it affects development.
Security-audited dependency selection --
AUDIT.md documents source-code audits with dates and verdicts
for every non-trivial dependency.
Framework selection rejected Elysia after discovering an RCE vulnerability chain
through new Function() code generation
(GHSA-8vch-m3f4-q8jf)
and measuring a 45x performance regression (3,853 vs 175,951 req/s)
when AOT compilation was disabled.
See PHILOSOPHY.tool-choices.md for the full
analysis of h3 vs Elysia vs Hono.
Custom Oxlint plugins --
oxlint-tsdoc enforces TSDoc correctness
across 20+ rules with 23 fixture-based tests, replacing the slow
eslint-plugin-jsdoc integration that previously required ESLint.
oxlint-no-restricted-syntax
encodes 13 monorepo-specific AST rules (no arrow functions, no switch statements,
require destructured params for 2+ args) that Oxlint's lack of AST selectors
demands as dedicated rule implementations.
Monorepo-aware CSS build tool --
build-tool-css resolves @import through
package.json exports mappings and node_modules, processes custom
@mixin/@apply syntax, and generates CSS strings for Shadow DOM injection
-- all without native binaries.
OpenTofu firewall automation --
config-tofu dynamically aggregates CIDR ranges
from 7 CDN sources (Cloudflare, CloudFront, Fastly, GitHub, YouTube,
Ubuntu ASN, Coolify), summarizes them to minimize Hetzner firewall rule count,
and caches ASN lookups for 30 days with graceful fallback to expired cache
on fetch failure.
Custom typeface from SVG geometry --
typeface-aquaticat parses a master glyph strip
SVG, expands stroked outlines into filled contours using polygon offset math,
assembles an OpenType font via opentype.js, and converts to WOFF2 through
fonttools.
Initial setup
Prerequisites
Install Mise (task runner and tool version manager).
All other tools (Bun, Node, dprint, etc.) are installed automatically by Mise.
Clone and bootstrap
git clone https://github.com/Aquaticat/Monochromatic.git
cd Monochromatic
On first entry, Mise will warn about missing tools and an enter hook error
because nushell is not installed yet. This is expected. Run manually once:
mise install
Then trust the configuration so Mise evaluates environment variables and templates:
mise trust
Trusting the monorepo root implicitly trusts all descendant mise.toml files
under packages/. See mise trust docs
for details on what this enables and why it is required.
Finally, install dependencies and build all packages:
mise run prepareAndBuild
Subsequent directory entries trigger the enter hook automatically, which runs
mise install and mise upgrade to keep tools current.
Essential commands
All builds and tasks use mise run. Never invoke raw tools (tsc, tsdown,
bun test, oxlint) or package manager scripts (npm run, pnpm exec) directly.
# Build all packages
mise run build
# Run all tests (unit + browser + e2e)
mise run test
# Build then test (use this after editing source)
mise run buildAndTest
# Build and test a specific file
mise run buildAndTest -- packages/module/es/src/boolean.equal.unit.test.ts
# Format all files
mise run format
# Full validation: format, build, test
mise run validate
# Watch mode
mise run watch:build
mise run watch:test
Run a task in a specific package with the monorepo path prefix:
mise run //packages/module/es:test
mise run //packages/webapp-productivity/done:build
Project structure