Why we self-host everything in our plugins
Fonts, charts, PDF viewers, analytics: our WordPress plugins keep them on your server. Here is the reasoning, and the trade-offs we accept.

Every product we ship follows one rule: do not make your visitors talk to a third party unless you chose it. Fonts, scripts, charts, PDF viewers and analytics all live inside your WordPress install. This post explains why, and what it costs us.
Why it matters to you
- Privacy. Visitor data stays in your database. There is less to disclose, and less to go wrong.
- Speed. One fewer DNS lookup, connection and request per resource. Files can be cached and optimised with everything else you serve.
- Reliability. Your site does not break when a CDN is blocked, slow or changes its terms.
- Control. You can see, audit and version every file.
What this looks like across our products
| Product | What stays on your server |
|---|---|
| AccessIQ | Scan results, click heatmaps and analytics in your database; no external fonts or scripts |
| MasjidOS | Prayer times calculated locally; fonts bundled for the TV display and admin |
| Consentaro | Consent logic and anonymous daily counts; no visitor records |
| Foliora | PDF.js bundled with the plugin; PDFs served from your Media Library |
| Rawnaq | Vanilla JavaScript modules with on-demand loading; submissions stay in your database |
The trade-offs we accept
- More code to maintain. We update bundled libraries ourselves.
- Bigger downloads. A bundled viewer or font adds size to the plugin, though not to pages that do not use it.
- Some integrations need an outside service. When a feature genuinely needs one, such as sending a form to a CRM or an AI provider for alt text, it is off by default, opt-in, and listed in the plugin’s readme.
How you can verify it
Do not take our word for it. Install a plugin on a test site, open your browser’s network tab and look at which domains your page contacts. You should see only your own.
That same test is a good habit for any plugin you consider. See also How to embed a PDF in WordPress without a CDN and Click heatmaps without Hotjar: self-hosted options for WordPress.
Frequently asked questions
Do your plugins send data to The Readscope?
No. Core features run on your server, and each plugin readme lists any optional external service you can enable yourself.
Why not just load libraries from a CDN?
A CDN is convenient, but it adds an external request, a dependency on someone else's uptime and a line in your privacy policy. Bundling the library removes all three.
Are your plugins open source?
The free plugins are GPL licensed and published on WordPress.org.
Do self-hosted fonts really matter?
Loading fonts from a third party sends visitors' IP addresses to that provider, and has been the subject of privacy complaints in Europe. Hosting fonts yourself avoids the issue.
