DOCS / PROJECT
FAQ
The questions every plugin developer asks first.
Is this a webview?
No. There is no browser, no HTML, no CSS engine in the binary. Your React runs in QuickJS (~1MB, in-process) and every pixel is painted by juce::Graphics. That is the whole point.
Which plugin formats and platforms?
Anything JUCE targets — VST3, AU, AAX, LV2, standalone — on Windows, macOS, and Linux. VSReacT is a JUCE module; it goes wherever your JUCE plugin goes.
What about performance?
Layout and painting are C++. JS runs only when your components render, and the bridge batches mutations per commit. Hover and active styles repaint natively with no JS round-trip. The gain example idles at zero JS activity.
Can I use npm packages?
Pure-JS packages that target ES2023 work — Bun bundles them in. Anything that expects the DOM, Node APIs, or the network will not, by design: a plugin UI should be deterministic and offline.
How do I debug?
console.log routes to the native logger and shows in your debugger’s output. Runtime errors render the red overlay with a stack trace in the plugin window. And hot reload keeps the iteration loop around 100ms.
What licenses am I agreeing to?
VSReacT itself is MIT. Vendored engines keep their permissive licenses (QuickJS-ng: MIT, Yoga: MIT). JUCE has its own commercial/GPL terms you must satisfy for plugin distribution.