# Free PDF SDK > Free PDF SDK is an embeddable, white-label PDF viewer, annotator and editor for web apps. It runs entirely in the browser, works with React, Vue, Angular, Svelte and plain JavaScript, and lets you choose exactly which features your users see. Free PDF SDK is installed with `npm install free-pdf-sdk`, and its viewer files are copied into the host site with `npx free-pdf-sdk copy-viewer `; they must be served from the page's own origin. Configure what the viewer offers with `mode`, `features`, `ui` and `disabledElements`; every method is async and rejects with a typed `FreePdfError`. ## Get started - [Introduction](https://free-pdf-sdk.web.app/docs/introduction.md): What Free PDF SDK is, what it can do, and how the in-browser viewer fits into your web app. - [Getting started](https://free-pdf-sdk.web.app/docs/getting-started.md): Install free-pdf-sdk, serve the viewer files from your site and open your first PDF in a few lines of JavaScript. ## Configure - [Configuration](https://free-pdf-sdk.web.app/docs/configuration.md): Choose what the viewer offers with a mode, fine-tune it with features, shape the interface with ui options and hide single commands with disabledElements. ## Frameworks - [Web Component](https://free-pdf-sdk.web.app/docs/web-component.md): Use the custom element in any page or framework, with its attributes, properties, fps-* events and API access. - [React](https://free-pdf-sdk.web.app/docs/react.md): Embed the viewer with the FreePdfViewer React component, its props, event handlers and ref handle, including Next.js App Router setup. - [Vue](https://free-pdf-sdk.web.app/docs/vue.md): Embed the viewer in Vue 3 and Nuxt with the FreePdfViewer component, its props, kebab-case events and template ref API. - [Angular](https://free-pdf-sdk.web.app/docs/angular.md): Use Free PDF SDK in Angular through the Web Component, with property bindings, fps-* events and the viewer API. - [Svelte](https://free-pdf-sdk.web.app/docs/svelte.md): Embed the viewer in Svelte and SvelteKit with the freePdf action, reactive options, fps-* events and the onViewer callback. - [Vanilla JavaScript](https://free-pdf-sdk.web.app/docs/vanilla-js.md): Mount the viewer with FreePdf.init from plain ES modules or a bundler, listen to events, destroy it, and run several viewers on one page. ## Guides - [Annotations and XFDF](https://free-pdf-sdk.web.app/docs/annotations-and-xfdf.md): Export, import, count, list and delete comments, set their author, and store them as XFDF in your database, including XFDF written by other PDF tools. - [Encrypted PDFs](https://free-pdf-sdk.web.app/docs/encrypted-pdfs.md): Open password-protected PDFs, lift owner restrictions with the owner password, read permissions and handle NEEDS_PASSWORD, WRONG_PASSWORD and NOT_PERMITTED. - [Theming and localization](https://free-pdf-sdk.web.app/docs/theming-and-localization.md): Match the viewer to your app - light, dark or system theme, interface language with fallback, comment author, and white-label branding when you build the SDK yourself. - [Hosting and security](https://free-pdf-sdk.web.app/docs/hosting-and-security.md): Serve the viewer files correctly in production - same origin, MIME types, caching, Content-Security-Policy and examples for Firebase Hosting, Netlify, Nginx and Express. ## Reference - [API reference](https://free-pdf-sdk.web.app/docs/api.md): FreePdf.init, every FreePdfViewer method and event, error codes, types and limits of the Free PDF SDK JavaScript API. - [Docs for AI agents](https://free-pdf-sdk.web.app/docs/ai-agents.md): Machine-readable documentation for coding assistants and LLM agents that integrate Free PDF SDK. - [FAQ and troubleshooting](https://free-pdf-sdk.web.app/docs/faq.md): Answers to common problems - a blank viewer, TIMEOUT errors, large files, mobile, server-side rendering frameworks, licensing and where documents go. - [Changelog](https://free-pdf-sdk.web.app/docs/changelog.md): What changed in each version of Free PDF SDK. ## Optional - [All documentation in one file](https://free-pdf-sdk.web.app/llms-full.txt): every page above, concatenated. - [Options JSON Schema](https://free-pdf-sdk.web.app/schema/viewer-options.schema.json): the shape of the options object. - [Configuration reference](https://free-pdf-sdk.web.app/reference/config.json): modes, features, interface options and element ids as data.