Monorepo of high-performance, type-safe tools built around JSX-to-HTML rendering. HTML first, JavaScript only where you opt into it.
| Package | Description |
|---|---|
@vincle/core |
JSX-to-HTML string renderer. Zero dependencies. |
@vincle/flow |
Deferred fragments, streaming, and DOM patching: <Slot>, <Defer>, <Include> + Turbo / HTMX / Native / WebPlatform / ESI adapters. |
@vincle/vite-plugin |
Vite asset integration: <Asset>, assetUrl, manifest resolution. |
| Package | Description |
|---|---|
@vincle/eslint-plugin |
ESLint rules for safe @vincle/core usage. |
@vincle/precompile |
Deno-style JSX precompile transform, with Vite and Bun adapters. |
| App | Description |
|---|---|
docs |
Documentation site for @vincle/core. |
bench |
Benchmarks vs @kitajs/html, React, Preact, hono/jsx + A/B revision comparison protocol. |
Managed with Bun workspaces and Turbo.
bun install
bun run build # Build all packages
bun run test # Run all tests (unit + differential fuzzers)
bun run check # Type-check everythingThe differential fuzzers in @vincle/core run a fixed seed window, so a CI
divergence replays from the failure message alone. VINCLE_FUZZ_SEEDS and
VINCLE_FUZZ_OFFSET widen or shift it:
VINCLE_FUZZ_SEEDS=100000 bun test src/path-equivalence.test.tsMIT © Christophe Jean