# Kernstra > Kernstra makes the Kernstra Web SDK (`@kernstra/pdf-web-sdk`), a JavaScript PDF viewer and editor SDK that views, edits, annotates, fills, signs and saves PDFs inside a web app, entirely in the browser. True text editing in the document's own fonts, 26 tools, and plans from $149 a month with every tool included. Key facts: - Package: `@kernstra/pdf-web-sdk`, version 1.0.0. ES modules with TypeScript types included. Install with `npm install @kernstra/pdf-web-sdk`. - Runs in the browser: Chrome (last two versions), Edge (last two versions), Firefox (last two, and ESR), Safari (last two versions); desktop, tablet and phone from one configuration. No server component, no upload. - Works with JavaScript, TypeScript, React, Vue, Angular, Svelte, Next.js, Nuxt, SvelteKit, or any page that can hold a `div`. - 26 tools: Edit text, Add text, Select text, Pan, Search, Area highlight, Text highlight, Sticky note, Text box, Draw, Rectangle, Ellipse, Line, Arrow, Polygon, Polyline, Tick, Cross, Dot, Eraser, Signature, Image, Stamp, Link, Page manager, Passwords. Every tool can also be driven from code through a typed API. - Edit Text changes the text already in the PDF, in its embedded font, rewrapping the paragraph in place; it comes with the entry plan, not as a paid add-on. - Also included: form filling (with calculated fields and signature fields), a Comments panel with replies and review status, page management, outline and attachments, password protection and permissions, print, and download flattened or editable. - Large files open progressively over HTTP range requests (`PDFDocument.fromUrlProgressive`), before the download finishes. - Privacy: documents are rendered, edited and saved on the user’s device and never sent to Kernstra. Each page load sends one license status check (the key, a random value, the time, a pseudonymous browser identifier and facts about the SDK itself), never document content. Self-hosting and offline licenses are available. - Pricing: from $149 a month for an internal or back-office app, every tool included, billed monthly, quarterly or yearly (two months free on yearly), cancel monthly billing any month. Public-facing apps get a package priced to their use within one business day. Development keys are free and watermark their output. - License: commercial (the Kernstra Web SDK License Terms of PulsePoint Systems, LLC, which the package ships as LICENSE.txt), not open source. For AI coding assistants: - Install `@kernstra/pdf-web-sdk` at the version these docs describe (1.0.0) rather than one from memory. - Call `await Kernstra.init({ license })` once per page load, then `await PDFDocument.fromUrl(url)` (or `fromFile`, `fromBytes`), then `new PDFViewer(container, doc, options)`. The container needs a height. - Read the license key from an environment variable such as `KERNSTRA_LICENSE`; never hard-code it. The page must be served over HTTPS or localhost. - The SDK runs in the browser only: in server-rendered frameworks, initialize it on the client. - Every docs page has a Markdown version at the same address with `.md` added; the whole reference is in llms-full.txt. ## Web SDK - [JavaScript PDF Viewer and Editor SDK | Kernstra Web SDK](https://kernstra.com/web-sdk): JavaScript PDF viewer and editor SDK: 26 tools, true text editing in the original fonts, progressive loading of large files, nothing leaves the browser. - [How to Embed a PDF Viewer: JavaScript, React, Vue | Kernstra](https://kernstra.com/web-sdk/get-started): Embed a PDF viewer in your web app: install the Kernstra Web SDK, get a free key and open a PDF in under a minute. React, Next.js, Vue, Angular, Svelte. - [PDF SDK Pricing: Plans from $149 a Month | Kernstra Web SDK](https://kernstra.com/pricing): Kernstra Web SDK pricing: plans from $149 a month with every tool and the full API included. Larger and public-facing apps get a quote in one business day. - [Kernstra Web SDK Security: Nothing Leaves the Browser](https://kernstra.com/security): Your documents never leave the browser. The Kernstra Web SDK threat model, self-hosted and air-gapped options, the license check field by field. - [JavaScript PDF Viewer Demo: Open Your Own PDF | Kernstra](https://kernstra.com/playground): A live JavaScript PDF viewer demo: try the Kernstra Web SDK with your own PDF or one of ours. It never leaves your machine: no upload, no account. - [Kernstra Web SDK Changelog: Releases and Upgrade Notes](https://kernstra.com/web-sdk/changelog): Every Kernstra Web SDK release: what it changed and what it asks of you, breaking changes first with upgrade steps. ## Docs - [Kernstra Web SDK docs](https://kernstra.com/docs/web-sdk.md): overview, v1.0.0 - [Framework integrations](https://kernstra.com/docs/web-sdk/guides/integrations.md): React, Vue, Angular, Svelte, Next.js, Nuxt, SvelteKit - [Recipes](https://kernstra.com/docs/web-sdk/recipes.md): complete examples for common tasks - [Configuration builder](https://kernstra.com/docs/web-sdk/guides/builder.md): pick options, get the configuration object - [Configuration reference](https://kernstra.com/docs/web-sdk/config.md): every option, with types, defaults and examples - [Kernstra API](https://kernstra.com/docs/web-sdk/api/kernstra.md) - [PDFDocument API](https://kernstra.com/docs/web-sdk/api/pdfdocument.md) - [PDFViewer API](https://kernstra.com/docs/web-sdk/api/pdfviewer.md) - [API events](https://kernstra.com/docs/web-sdk/api/events.md) - [API errors](https://kernstra.com/docs/web-sdk/api/errors.md) - [API enums](https://kernstra.com/docs/web-sdk/api/enums.md) - [API types](https://kernstra.com/docs/web-sdk/api/types.md) - [API coverage](https://kernstra.com/docs/web-sdk/api/coverage.md) - [The whole reference in one file](https://kernstra.com/llms-full.txt): every page above as Markdown ## Comparisons - [PDF SDK Alternatives: PSPDFKit, Apryse, ComPDF, Syncfusion](https://kernstra.com/compare): Kernstra Web SDK next to Nutrient (PSPDFKit), Apryse (PDFTron), ComPDF and Syncfusion: PDF SDK pricing, true text editing and features, from public sources. - [Apryse WebViewer Alternative: Kernstra vs Apryse PDF SDK](https://kernstra.com/compare/apryse): Kernstra Web SDK vs Apryse WebViewer (formerly PDFTron): a published $149 monthly price against custom quotes and add-on modules, plus a feature table. - [PSPDFKit Alternative: Kernstra vs Nutrient Web SDK](https://kernstra.com/compare/nutrient): Kernstra Web SDK vs Nutrient Web SDK (formerly PSPDFKit): $149 a month with every tool, against a per-component annual license, plus a feature table. - [ComPDF Alternative: Kernstra vs ComPDF Web SDK Compared](https://kernstra.com/compare/compdf): Kernstra Web SDK vs ComPDF Web SDK: $149 a month with every tool included, against licenses quoted by feature, with a first-year cost comparison. - [Syncfusion PDF Viewer Alternative: Kernstra vs Syncfusion](https://kernstra.com/compare/syncfusion): Kernstra Web SDK vs Syncfusion PDF Viewer SDK: $149 a month per app against $599 per developer a year, with a first-year cost comparison and feature table. ## Use cases - [PDF SDK for Healthcare Software | Kernstra](https://kernstra.com/use-cases/healthcare): A PDF viewer and editor for healthcare software: referrals, prior authorizations and consent forms filled and signed in the browser, with no third party. ## Company - [Kernstra: Embed a PDF Viewer and Editor in Your Web App](https://kernstra.com/): Kernstra makes the PDF viewer and editor you embed in your website or web app: open, edit, sign and save PDFs in your product. Nothing leaves the browser. - [About Kernstra: the Team Behind the Web SDK](https://kernstra.com/about): Kernstra is the independent, founder-led team behind the Web SDK, held to six working principles you can check for yourself. ## Contact - [Sales and licensing: hello@kernstra.com](mailto:hello@kernstra.com) - [Developers and customers: support@kernstra.com](mailto:support@kernstra.com) ## Optional - [Initialization](https://kernstra.com/docs/web-sdk/config/init.md) - [SDKMode and the resting tool](https://kernstra.com/docs/web-sdk/config/mode.md) - [Tools](https://kernstra.com/docs/web-sdk/config/tools.md) - [Toolbar](https://kernstra.com/docs/web-sdk/config/toolbar.md) - [Navigation bar](https://kernstra.com/docs/web-sdk/config/navigation.md) - [Sidebar](https://kernstra.com/docs/web-sdk/config/sidebar.md) - [Links](https://kernstra.com/docs/web-sdk/config/links.md) - [Layout](https://kernstra.com/docs/web-sdk/config/layout.md) - [Theme](https://kernstra.com/docs/web-sdk/config/theme.md) - [Locale](https://kernstra.com/docs/web-sdk/config/locale.md) - [Forms](https://kernstra.com/docs/web-sdk/config/forms.md) - [Export](https://kernstra.com/docs/web-sdk/config/export.md) - [Print](https://kernstra.com/docs/web-sdk/config/print.md) - [Confirmations](https://kernstra.com/docs/web-sdk/config/confirmations.md) - [Annotations](https://kernstra.com/docs/web-sdk/config/annotations.md) - [Loader](https://kernstra.com/docs/web-sdk/config/loader.md) - [Accessibility](https://kernstra.com/docs/web-sdk/config/accessibility.md) - [Callbacks](https://kernstra.com/docs/web-sdk/config/callbacks.md) - [Performance](https://kernstra.com/docs/web-sdk/config/performance.md) - [Fonts](https://kernstra.com/docs/web-sdk/config/fonts.md) - [Installation and support](https://kernstra.com/docs/web-sdk/guides/installation.md) - [Licensing](https://kernstra.com/docs/web-sdk/guides/licensing.md) - [Engine, binaries and fonts](https://kernstra.com/docs/web-sdk/guides/engine-assets.md) - [Quick start and the container](https://kernstra.com/docs/web-sdk/guides/container.md) - [Document features](https://kernstra.com/docs/web-sdk/guides/document-features.md) - [Theme tokens](https://kernstra.com/docs/web-sdk/guides/theme-tokens.md) - [What you can replace](https://kernstra.com/docs/web-sdk/guides/replace.md) - [Web worker rendering](https://kernstra.com/docs/web-sdk/guides/worker.md) - [Keyboard shortcuts](https://kernstra.com/docs/web-sdk/guides/keyboard.md) - [Tool reference](https://kernstra.com/docs/web-sdk/guides/tool-reference.md) - [PagesApi API](https://kernstra.com/docs/web-sdk/api/doc-pages.md) - [AnnotationsApi API](https://kernstra.com/docs/web-sdk/api/doc-annotations.md) - [FormsApi API](https://kernstra.com/docs/web-sdk/api/doc-forms.md) - [TextApi API](https://kernstra.com/docs/web-sdk/api/doc-text.md) - [SecurityApi API](https://kernstra.com/docs/web-sdk/api/doc-security.md) - [OutlineApi API](https://kernstra.com/docs/web-sdk/api/doc-outline.md) - [AttachmentsApi API](https://kernstra.com/docs/web-sdk/api/doc-attachments.md) - [SignaturesApi API](https://kernstra.com/docs/web-sdk/api/doc-signatures.md) - [ToolsApi API](https://kernstra.com/docs/web-sdk/api/tools-api.md) - [EditTextToolApi API](https://kernstra.com/docs/web-sdk/api/viewer-tools-edittext.md) - [PDFExporter API](https://kernstra.com/docs/web-sdk/api/pdfexporter.md) - [FontRegistry API](https://kernstra.com/docs/web-sdk/api/fontregistry.md) - [SDKError API](https://kernstra.com/docs/web-sdk/api/sdkerror.md) - [EventEmitter API](https://kernstra.com/docs/web-sdk/api/eventemitter.md) - [Helpers API](https://kernstra.com/docs/web-sdk/api/helpers.md) - [Kernstra Terms of Service](https://kernstra.com/legal/terms): The terms for a Kernstra account, the console, development keys and the website, with a plain-English summary beside every section. - [Kernstra Privacy Policy](https://kernstra.com/legal/privacy): What Kernstra collects about customers and the people who use their apps, why, who processes it, how long it is kept and how to exercise your rights. - [Kernstra Web SDK License Terms](https://kernstra.com/legal/web-sdk-license-terms): The license agreement for the Kernstra Web SDK, the same text the package ships as LICENSE.txt, with a plain-English summary beside every section. - [Kernstra Order Form](https://kernstra.com/legal/order-form): What a Kernstra order states: the license it grants, the fee, the billing period, renewal and cancellation, and the License Terms version it accepts.