Privacy policy
This describes what Goodword actually stores and does, not what a template says a SaaS company usually stores and does.
Last updated 11 September 2026.
Who you are dealing with
This service is operated under the trading name Goodword, established in the United Kingdom.
Contact: samueljfx@gmail.com. Email is the fastest route and is read by a person.
Stated plainly: Goodword is a trading name and there is not yet a registered company or a published postal address behind it. UK rules entitle you to both, so if you need them before dealing with us, write to the address above and they will be given to you directly. This notice comes down the moment they are published here, which will be before any paid plan is sold to the public.
Who we are
Goodword is testimonial software. There are two different relationships in it, and they matter for this policy.
- If you have a Goodword account, we are the data controller for your account.
- If you submitted a testimonial through someone’s collection form, the business that sent you the link is the controller. We are their processor. We store your words on their behalf and act on their instructions. If you want your testimonial changed or removed, ask them first, and samueljfx@gmail.com if that goes nowhere.
What we store
For an account holder:
- Your email address.
- A scrypt hash of your password with a per-account random salt. The password itself is never stored and cannot be recovered from the hash.
- A session token in an httpOnly cookie called
gw_session, valid for 30 days. - Your spaces, forms, widget settings and their appearance.
- A daily count of how many times each widget was viewed. No visitor is identified.
- If you are on a paid plan: a Stripe customer ID and subscription ID, so we can tell which plan you are on. We do not store your card number; Stripe holds that.
If you use Pro or Agency to send invitations, for each contact you add:
- Their email address and, if you gave one, their name.
- Whether they have unsubscribed, and the status, timestamps and token of each invitation sent to them.
For someone submitting a testimonial:
- The name, role, company, link, rating and words you typed into the form.
- A photo, if you attached one. It is decoded, stripped of EXIF metadata including any GPS coordinates, cropped square, resized to 160 pixels and re-encoded as WebP before it is stored. The original file is never kept.
- A video link, if you gave one. We do not host video.
- The date you submitted.
We also keep short-lived counters to stop flooding of the sign-up, sign-in and submission forms. These are stored as a SHA-256 hash of the IP address, never the address itself, and they are deleted once the window expires.
What we do not store
- No third-party analytics and no advertising trackers. There is no Google Analytics, no Meta pixel and no session recorder on this site or in the embedded widget.
- No cookies except the sign-in one. There is no consent banner because there is nothing to consent to:
gw_sessionis strictly necessary and is only set when you log in. - No card details. Stripe processes payment for Pro and Agency and holds your card details. We never see or store the card number itself.
- No marketing newsletters. On Pro and Agency, invitation and reminder emails you send to your own contacts go out through Resend. We do not run a newsletter of our own to anyone.
The embedded widget
When a Goodword widget loads on someone else’s website, the visitor’s browser requests a JavaScript file and any avatar images from us. That request carries an IP address and user agent, as every HTTP request does. We use it to serve the file and to increment a per-day view count for the widget. We do not set a cookie, do not fingerprint the visitor, and do not build a profile across sites.
Legal bases
- Contract. Running your account and serving your widgets.
- Consent. Publishing a testimonial. The tick box on the collection form is the consent, it is not pre-ticked, and the form cannot be submitted without it.
- Legitimate interests. Keeping the service up and stopping abuse, which is what the rate-limit counters are for.
How long we keep it
Testimonials and account data are kept until they are deleted, because a testimonial is content our customer is actively using on their site. You can delete any testimonial from the dashboard at any time, and it is removed from the database rather than flagged as hidden. Sessions expire after 30 days. Rate-limit counters last minutes to an hour. Ask us to close your account and we will delete it and everything in it.
Getting your data out
Every space has a JSON and a CSV export in the dashboard, available on the free plan, with no cap and no waiting period. That is deliberate: the entire premise of this product is that your testimonials are yours. You do not need to make a formal request to get them.
Who else can see it
Four suppliers, and no one else. Hosting is Vercel, and the database is hosted libSQL run by Turso. If you are on a paid plan, Stripe processes payment and holds your billing details. If you send invitations on Pro or Agency, Resend delivers those emails on your behalf and sees the recipient address. We do not sell data, and we do not share it with advertisers or data brokers. Data may be processed outside the UK by these suppliers under their standard contractual clauses.
Your rights
Under UK GDPR you can ask for a copy of your data, ask for it to be corrected or deleted, ask us to restrict how it is used, and object to processing. Write to samueljfx@gmail.com. If you are not satisfied you can complain to the Information Commissioner’s Office.
Security, stated plainly
Passwords are scrypt-hashed and compared in constant time. Sessions are random 32-byte tokens held in an httpOnly cookie and checked against the database on every request. Uploaded images are re-encoded rather than served back as supplied. Public endpoints are rate limited.
What we will not claim: Goodword has not been penetration tested, is not certified against any standard, and is run by one person. If that is not an acceptable risk for the data you were going to put in it, do not put it in.
Changes
If this policy changes materially we will change the date at the top and, for account holders, say so in the dashboard. See also our terms of use.