QRCodeSDK
Build QR codes with a single TypeScript-first API, then render them in the format your app needs.
Start with your stack
Section titled “Start with your stack”npm install @qrcodesdk/corepnpm add @qrcodesdk/corevp add @qrcodesdk/coredeno add @qrcodesdk/corebun add @qrcodesdk/coreyarn add @qrcodesdk/coreRender a scalable SVG string with the runtime-neutral Core package:
import {QRCodeSVGRenderer, qrcode} from '@qrcodesdk/core';
const svg = qrcode('https://qrcodesdk.dev').render(QRCodeSVGRenderer());SVG is the recommended default for most user-facing QR codes: it stays sharp at any size and works in browsers, servers, email, and static assets. See the SVG renderer reference when you need its options or exact return contract.
npm install @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/reactpnpm add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/reactvp add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/reactdeno add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/reactbun add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/reactyarn add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/reactRender an SVG component in React or Next.js:
import {QRCodeSVG} from '@qrcodesdk/react';
export function App() { return <QRCodeSVG data="https://qrcodesdk.dev" />;}npm install @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/vuepnpm add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/vuevp add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/vuedeno add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/vuebun add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/vueyarn add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/vueRender an SVG component in Vue:
<script setup lang="ts">import {QRCodeSVG} from '@qrcodesdk/vue';</script>
<template> <QRCodeSVG data="https://qrcodesdk.dev" /></template>npm install @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/sveltepnpm add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/sveltevp add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/sveltedeno add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/sveltebun add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/svelteyarn add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/svelteRender an SVG component in Svelte:
<script lang="ts"> import {QRCodeSVG} from '@qrcodesdk/svelte';</script>
<QRCodeSVG data="https://qrcodesdk.dev" />npm install @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/angularpnpm add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/angularvp add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/angulardeno add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/angularbun add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/angularyarn add @qrcodesdk/core @qrcodesdk/browser @qrcodesdk/angularRender a standalone SVG component in Angular:
import {Component} from '@angular/core';import {QRCodeSVG} from '@qrcodesdk/angular';
@Component({ selector: 'app-root', imports: [QRCodeSVG], template: '<qrcode-svg data="https://qrcodesdk.dev" />',})export class App {}Choose by runtime and output
Section titled “Choose by runtime and output”| Where will it run? | Output you need | Start here |
|---|---|---|
| Any supported JavaScript runtime | SVG or terminal text strings | @qrcodesdk/core |
| Browser DOM | Canvas, PNG-backed Image element, or file download | @qrcodesdk/browser |
| Node.js-compatible runtime | PNG Buffer for files or responses |
@qrcodesdk/node |
| React or Next.js | SVG, Image, or Canvas component | @qrcodesdk/react |
| Vue | SVG, Image, or Canvas component | @qrcodesdk/vue |
| Svelte | SVG, Image, or Canvas component | @qrcodesdk/svelte |
| Angular | SVG, Image, or Canvas component | @qrcodesdk/angular |
| Terminal, shell script, or CI | Terminal text, SVG file, or PNG file | @qrcodesdk/cli |
Choose your setup for the matching install command, or compare every built-in return type in Renderer outputs.
Next step
Section titled “Next step”Try the Playground to explore appearance visually, or follow Customize appearance to style the SVG you just rendered.