Courvux ships as a single minified ES module with no runtime dependencies.
No install, no build step. Drop a <script type="module"> anywhere:
<!-- 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:
<!-- 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>
@main always resolves to the latest commit and may include breaking changes.
Try it live — no install required:
Loading pen…
Install directly from the GitHub repository — pin a tag for stable installs:
# 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
Add an import map before your module script. No build step needed.
<script type="importmap">
{
"imports": {
"courvux": "./node_modules/courvux/dist/index.js"
}
}
</script>
<script type="module" src="./main.js"></script>
Import directly — Courvux resolves from node_modules automatically:
import { createApp } from 'courvux';
// vite.config.js
import { defineConfig } from 'vite';
export default defineConfig({
// Courvux resolves automatically from node_modules
});
Type declarations are included in the package at dist/index.d.ts.
// tsconfig.json — add Courvux types
{
"compilerOptions": {
"types": ["courvux"]
}
}
dist/ is committed to the repo. Courvux does not run a build step on install.
To update, remove and re-add the package.
Courvux targets the last two major versions of each modern browser. Older versions may work but are not validated.
| Browser | Minimum version | Status |
|---|---|---|
| Chrome | 90+ | ✅ |
| Edge | 90+ | ✅ |
| Firefox | 88+ | ✅ |
| Safari (macOS / iOS) | 15+ | ✅ (verified since 0.4.4 on iOS Safari) |
| Samsung Internet | 18+ | ✅ (verified since 0.4.4) |
| iOS WebView | iOS 15+ | ✅ |
| Android WebView | Chrome 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.