Installation

Courvux ships as a single minified ES module with no runtime dependencies.

CDN — jsDelivr

No install, no build step. Drop a <script type="module"> anywhere:

index.html
<!-- Latest from main branch <!-- Latest from main branch -->
<script type="module">
  import { createApp } from 'https://cdn.jsdelivr.net/gh/vanjexdev/courvux@main/dist/index.js';

  createApp({
    data: { count: 0 },
    template: `<button @click="count++">Clicks: {{ count }}</button>`
  }).mount('#app');
</script>

Or use an import map to keep import ... from 'courvux' clean across multiple files:

index.html
<!-- Pin to a specific version (recommended for production) <!-- Pin to a specific version (recommended for production) -->
<script type="importmap">
{
  "imports": {
    "courvux": "https://cdn.jsdelivr.net/gh/vanjexdev/courvux@v0.7.1/dist/index.js"
  }
}
</script>

<script type="module">
  import { createApp, createStore, createRouter } from 'courvux';
</script>
Pin to a tag or commit hash in production — @main always resolves to the latest commit and may include breaking changes.

Try it live — no install required:

Loading pen…

From GitHub

Install directly from the GitHub repository — pin a tag for stable installs:

terminal
# Latest commit on main (rolling)
pnpm add github:vanjexdev/courvux

# Pin to a tagged release (recommended for production)
pnpm add github:vanjexdev/courvux#v0.7.1

Without a bundler — Import Map

Add an import map before your module script. No build step needed.

index.html
<script type="importmap">
{
  "imports": {
    "courvux": "./node_modules/courvux/dist/index.js"
  }
}
</script>
<script type="module" src="./main.js"></script>

With Vite / bundler

Import directly — Courvux resolves from node_modules automatically:

main.js
import { createApp } from 'courvux';
vite.config.js
// vite.config.js
import { defineConfig } from 'vite';

export default defineConfig({
    // Courvux resolves automatically from node_modules
});

TypeScript

Type declarations are included in the package at dist/index.d.ts.

tsconfig.json
// tsconfig.json — add Courvux types
{
  "compilerOptions": {
    "types": ["courvux"]
  }
}

Updating

dist/ is committed to the repo. Courvux does not run a build step on install. To update, remove and re-add the package.

Browser support

Courvux targets the last two major versions of each modern browser. Older versions may work but are not validated.

BrowserMinimum versionStatus
Chrome90+
Edge90+
Firefox88+
Safari (macOS / iOS)15+✅ (verified since 0.4.4 on iOS Safari)
Samsung Internet18+✅ (verified since 0.4.4)
iOS WebViewiOS 15+
Android WebViewChrome 90+

Every release runs unit tests + SSR / SSG self-tests + a Playwright E2E suite on Chromium and Firefox. WebKit-class browsers (Safari, Samsung Internet, iOS WebView) are validated on real devices for each release. CI integration is on the roadmap.

Hit a bug on a supported browser? Open an issue — same first-priority class as the 0.4.4 / 0.4.5 / 0.4.6 patches.

← Home Quick Start →