Data ownership
Your customer data never leaves your server
The problem with cloud CRMs
Your customer relationships are usually the most valuable asset a business owns. The list of who buys from you, what they are worth, what you quoted last time and why the last deal stalled is the accumulated result of years of work — and in a typical SaaS CRM all of it lives in someone else's database.
That is not automatically wrong, and plenty of good businesses run happily that way. But it does mean accepting a set of conditions that are not yours to set: the vendor's pricing power at renewal, their outage windows, their data-processing terms and sub-processor list, their retention behaviour, and their billing model — very often per seat, sometimes per contact, so the cost of your CRM rises as your team and your database grow rather than as the value you get from it grows.
The other condition is exit cost. Export is usually possible and rarely pleasant: the records come out, the structure does not, and custom fields, activity history, attachments and pipeline configuration tend to arrive as something you must rebuild by hand. That friction is not accidental — it is the thing that makes a renewal conversation easy for the vendor.
Self-hosting removes those conditions rather than negotiating them. The trade-off is real: you are responsible for your own hosting, updates and backups. If that trade-off suits you, the rest of this page is the detail.
Where your data actually lives
Precisely, and with no hand-waving: by default Stillpoint CRM stores everything in a single SQLite database file inside a private folder in your WordPress uploads directory.
wp-content/uploads/stillpoint-crm/crm.sqlite
That one file holds your contacts, companies, deals, pipelines and stages, quotes and invoices, payments, follow-ups, notes, custom field definitions and values, automation rules and the audit log. File attachments — the proposals and specs you attach to deals — are written to your server in the same private folder.
If you would rather use a server database, you can: point the CRM at your own MySQL or MariaDB database instead, which is the usual choice on larger installs or where your existing operations tooling already backs up MySQL. Both options are your infrastructure. Neither involves us.
What is not in the path
There is no sync service, no queue, no analytics pipeline and no vendor API sitting between your CRM and its storage. When a rep saves a deal, the write goes to your disk and stops there.
How it’s protected
Storing data inside the uploads directory is convenient — it is writable on every host — so the folder ships hardened rather than merely hidden.
- Deny-all rule. The data folder ships with an
.htaccessrule denying all web access, plus a blank index file, so the directory cannot be browsed or its database downloaded over HTTP. - Direct-access guards. The CRM's engine files refuse to execute when requested directly over HTTP; they only run in the context of a legitimate WordPress request.
- Move it out of the web root. Define a single constant —
STILLPOINT_CRM_DATA_DIR— inwp-config.phpand the database and attachments are stored wherever you point it. Above the web root, the files are not addressable by HTTP at all. This is the strongest configuration on hosts that permit it, and it is extra safety on top of the deny-all default rather than a patch for a gap. - Encrypted mailbox credentials. IMAP and SMTP passwords for the built-in team inbox are encrypted at rest with OpenSSL.
Beyond storage, access to the CRM itself runs through WordPress: users sign in with their existing accounts, a single capability grants access, state-changing actions carry CSRF tokens, and failed logins are throttled. The features page documents that in full.
Backups are trivial
This is the quietly excellent consequence of the SQLite default: the entire CRM is one file. Your existing WordPress backup — whatever plugin or host-level snapshot you already run — is almost certainly already copying it, because it sits inside wp-content/uploads.
It also makes the operations you actually care about ordinary file operations. Take a copy before a risky import. Keep dated snapshots. Move hosts by moving one file and pointing the new install at it. Hand a copy to your accountant at year end. Nothing about any of that requires a vendor, an API rate limit or a support ticket.
Contrast the SaaS equivalent: request an export, wait for it to be generated, receive a set of CSVs shaped by what the vendor chose to include, and then discover what the export left out when you try to use it. A backup you cannot restore into working software is not really a backup.
GDPR, POPIA and data residency
Because the data sits on your own server, in the jurisdiction where you chose to host, you remain the data controller for your CRM records — and JAK Solutions is not a processor of them. We never receive, process or store your business data, which means there is no sub-processor to disclose, no data-processing agreement with us to negotiate over your customer records, and no transfer of them to another country to justify.
That simplifies the questions that normally consume the most time. Data residency is answered by your hosting choice. Retention is whatever you set, because you hold the database. And subject access requests can be answered directly: Stillpoint includes a per-contact GDPR data export that produces the data held about one individual, plus CSV export across records and full deletion whenever you decide.
An honest note. This is architectural help, not legal advice. Self-hosting removes a whole category of complication, but compliance still depends on how you operate — your lawful basis for processing, your notices, your retention practice, your security, and how you handle requests. Stillpoint gives you the control and the export tools; using them properly is still your responsibility.
No vendor lock-in, no per-contact pricing
The licence is flat and priced per site, not per person or per record. Unlimited users and unlimited contacts are included in every tier, so hiring three more salespeople or tripling the size of your database does not change your bill. There is no contact-count threshold waiting to re-tier you halfway through a good year.
And if you ever stop subscribing, your data stays yours — it never left your server, so there is nothing for us to withhold. The core CRM keeps working on your records and export stays available. Premium and ecommerce features, automatic updates and support entitlement pause until you renew. A soft gate, not a lockout.
See the pricing for the tier breakdown, or read the terms of service for the exact expiry behaviour.
What we do collect
Transparency matters more than a marketing absolute, so here is the complete list. The plugin communicates with Freemius, our licensing partner and merchant of record, for two purposes: activating your licence and checking for updates. That exchange carries licence metadata — the site URL the licence is activated on, the plugin and WordPress version, and the licence status.
It carries nothing about your CRM records. No contacts, no deal values, no invoices, no email content, no aggregate counts of any of them. Separately, this website collects minimal analytics and whatever you send us when you email — all of which is set out in our privacy policy.
Self-hosted vs cloud CRM
A side-by-side view of the structural differences — not feature checkboxes, but the things that are decided by architecture and are difficult to change later.
| Aspect | Stillpoint (self-hosted) | Typical cloud CRM |
|---|---|---|
| Where data lives | Your WordPress server, in your chosen hosting region | The vendor's infrastructure, wherever they run it |
| Who controls access | You — filesystem, database and WordPress permissions are yours | The vendor, subject to their staff access and internal policy |
| Pricing model | Flat licence per site; unlimited users and contacts | Typically per seat and/or per contact, rising as you grow |
| Migration difficulty | One database file (or one MySQL dump) plus CSV export | Export within their limits, then rebuild structure elsewhere |
| Outage exposure | Your site's uptime — the CRM is up whenever WordPress is | Their uptime; an incident on their side stops your sales day |
| Data residency | Determined by where you host | Determined by the vendor's regions and sub-processors |
For a feature-level comparison against specific WordPress CRMs, see the comparison page.
Data ownership questions
- Where is my CRM data stored?
- On your own server, inside your WordPress installation. By default Stillpoint CRM keeps everything in a single SQLite database file in a private folder in your uploads directory — wp-content/uploads/stillpoint-crm/crm.sqlite — and file attachments are stored on your server alongside it. If you prefer a server database, you can point the CRM at your own MySQL or MariaDB database instead. Either way, no copy is sent anywhere else.
- Can I move the database outside my web root?
- Yes. Define the STILLPOINT_CRM_DATA_DIR constant in wp-config.php and the CRM will store its database and attachments in that directory instead. Placing it above the web root means the files are not reachable by HTTP at all, which is the strongest option on hosts that allow it. The shipped default is already protected by a deny-all rule, so this is extra hardening rather than a fix for a gap.
- Do you have access to my customer data?
- No. There is no mechanism for it. The plugin does not transmit CRM records to us, and we operate no service that receives them, so we never see, process or store your contacts, deals, invoices or emails. The only outbound communication is licence activation and update checking through Freemius, which carries licence metadata such as your site URL and licence status — never business data.
- What happens to my data if I cancel?
- Nothing happens to it. The data is in your database on your server, so cancelling a subscription cannot remove it. The core CRM keeps working on your existing records and CSV export remains available; what pauses is premium and ecommerce features, automatic updates and support entitlement. It is a soft gate, not a lockout, and there is no hostage-taking of your own records.
Own your CRM. Own your data.
One flat licence, unlimited users, and a database that never leaves your server. Install Stillpoint CRM on your own WordPress site today.
Unlimited users · Flat price per site · 30-day money-back guarantee