# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wproofreader.com/integrations/javascript-frameworks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
