> For the complete documentation index, see [llms.txt](https://docs.wproofreader.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wproofreader.com/integrations/javascript-frameworks.md).

# JavaScript frameworks

WProofreader is written in pure JavaScript and doesn't require framework-specific setup. You don't need to import, build, or bundle it as a component. It auto-detects editable fields on the page and initializes itself automatically.

This applies to Angular, React, Vue.js, and any other JavaScript framework.

### Script-based integration

1. Find the main HTML file served when someone visits your app:
   * Angular (Angular CLI): `src/index.html`
   * React (Create React App): `public/index.html`
   * Vue (Vue CLI): `public/index.html`
2. Add the WProofreader configuration and `wscbundle.js` script inside the `<body>` tag, ideally right before the closing `</body>` tag.

For setup details, refer to the [Initialization options](/integrations/initialization/initialization-options.md) guide.

### NPM integration

Alternatively, you can use the WProofreader SDK npm package. It provides the same functionality as the script-based approach but fits better into a framework build pipeline. After calling any method from the package, it downloads the bundle and makes `window.WEBSPELLCHECKER` available.

For installation and configuration, refer to the [Initialize using npm SDK](/integrations/initialization/initialization-options/initialize-using-npm-sdk.md) guide. The [GitHub repository](https://github.com/WebSpellChecker/wproofreader-sdk-js/tree/master/examples) includes working examples with CKEditor 4, TinyMCE, Froala, and Quill in Angular, React, and Vue.
