This site collects what you type into it, and what our own server logs.
No cookies, no analytics script, no tag manager, no fonts or scripts from anyone else. Reading this page leaves no record beyond the lines our own server writes to its own logs — one kept for about a fortnight, one that dies with the next deploy, and both described below.
No cookies, and nothing from anyone else
No cookie is set on any page here, which is why there is no consent banner to click. No analytics, no tag manager, no pixel, no session recorder, no split-testing tool. Nothing is written to your browser's storage, so nothing on your machine survives the visit.
Nothing about you is sent to another company because nothing on these pages comes from another company. The typeface is embedded inside the stylesheet as a data: URI rather than fetched from a font service, and the one script and every image are served from this domain. There is no request for a third party to see, so there is nothing to promise about what they do with it.
Links that take you off this domain do exist, and following one is an ordinary visit to somebody else's site: the calendar at zcal.co, which the booking link redirects to and whose own terms are linked further down this page; the Companies House register, in the footer of every page and beside our company number below; Cloudflare's privacy policy on this page; and the two sites of our own named on the work page. None of the four is loaded into these pages.
The access log
Our own server writes one line per request to its own access log, on the machine that serves these pages. Ten things are in that line and this is all of them: the time, the request method, the address you asked for including anything after the question mark, the status code we answered with, the number of bytes we sent, the hostname you used, your browser's user-agent string, your IP address, the forwarded-for header, and the page you came from if your browser sent one.
The address is read out of the CF-Connecting-IP header rather than off the connection itself, and that is not a preference. Every request arrives Cloudflare, then our front door, then this site, so the address the connection appears to come from is one of our own machines on one hundred per cent of lines; the only place your real address exists is the header Cloudflare adds. The forwarded-for header is recorded beside it as a second, independent reading of the same fact.
The log is rotated once a day, and fourteen rotated days are kept beside the day being written — so the oldest line on the host is about a fortnight old, and past that the oldest day is deleted. It sits on our own host, in a file only that machine's root account can read. It is not shipped anywhere: there is no logging service, and no analytics company is given it. It is used for three things — security, handling abuse, and counting which page a booking link was clicked from — and nothing else reads it.
The web server also writes the ordinary one-line-per-request log to its own output, in the standard format every web server uses. That copy is not durable: the container is replaced whole on every deploy and the log goes with it.
The booking link
Every “Book twenty minutes” on this site points at /go/call on this domain, and /go/call redirects you to the calendar. The part after ?p= names the place the button was in — the top of the front page, the end of the about page, the foot of the assessment — and it travels on to the calendar with you, so a booking that actually happens can be attributed to the page that caused it rather than only to the click that started it.
It names a place on this site. It never names you. There is no cookie and no pixel behind the count: it is a line in our own access log, read by us, and given to nobody.
The introduction tag
If somebody sent you here with their own link, that link carries ?ref= and a short name for them — which is what makes the assessment free for you, so there is nothing to claim and no code to type.
Every page here reads that tag out of the address, cuts it to letters, digits, dots and dashes and to the first eighty characters, and writes it onto the two kinds of link that can carry it onward: the ones that go to the assessment form, and the ones that go to the booking link. No other link is touched, and a link to somebody else's site never is. That is why it survives a click — until this changed, a tag that landed on the front page was gone by the time you reached the form, and the visitor somebody had made an assessment free for was invoiced for it.
On the assessment page it also goes into a hidden field on the form, so it travels with your message and we know who to thank. The script is what fills that field, so with scripting switched off it arrives empty and the tag would be lost again. The endpoint therefore has a second way of finding it: when the field comes in empty, it looks at the address you submitted from — which your browser sends with the post as the Referer header — and takes the same ?ref= or ?p= out of it, cut to the same eighty characters. It reads that header only when the field was empty, and only when what it names is a page on this domain. If your browser sends no Referer, or the link carried no tag, nothing is invented and the message arrives without one.
It names the person who sent you. It never names you. Nothing on this site sets it: every reading takes what the link you arrived on was carrying. Nothing stores it either — it lives in the address bar, in those links on the page in front of you, and in the access-log line for any page you asked for with it attached. It leaves this domain in one case, and that case is the calendar below: booking a call carries the query string on, so a tag that came in on somebody's link reaches zcal.co beside the placement. You can read it for yourself in your own address bar, which is where it arrives and where it stays; the hidden field is filled by the script after the page loads, so view-source shows it empty whether or not the tag is being sent. If you arrive instead on a link carrying the ?p= above, that is what the field gets, and it names a page rather than a person.
The form on the assessment page
The form asks for one line about what the app does, links to what you have, your email address, and — both optional — what you have already tried and a budget range. It carries the introduction tag above if you arrived on someone's link — in a hidden field the script fills after the page loads, or, with scripting off, recovered from the address you posted from as the section above describes. That is the whole of it: there is no field this page has not told you about.
It posts to /show on this domain, which is code we wrote running at Cloudflare's edge. It does not pass through this website's own server on the way, so it never appears in the access log described above. No form vendor and no mailing tool is in the route. That code has no database, no bucket and no key-value store attached to it — there is nowhere for it to put your message even if it wanted to. It composes one email, hands it to Cloudflare's own mail service, and forgets it. What that email contains is the six lines of the form, in the order the form asks them and each one named — a box you left empty arrives named and marked as not said, rather than missing. Your own address is two of those places and no others: the Reply-To header, so that answering the mail reaches you, and the “Email:” line of the message itself.
The address you connect from is counted, and only counted: the endpoint accepts ten posts a minute from one address, so nobody can turn this form into a flood. That count is held for the minute it applies to. It is not written beside your message, not kept, and not looked at.
Two things about that endpoint are written down at Cloudflare rather than by us, and this is the whole of both. Its logging is switched on, so Cloudflare keeps its own short-lived record of each invocation — that a request arrived, when, from where, and what we answered — in the ordinary way the host of anything records that it served something, and under the policy linked below. What you typed is not put into it. The second is one line our own code writes there, and only when the mail fails to leave: the words “show send failed” and the error the mail service handed back. No field of yours is in that line, and neither is your address.
If the send fails, your message comes back to you instead of vanishing. With scripting on, the form writes it out on the page as text, in a box with a button that copies it and a link that opens it in your own mail program. With scripting off, the endpoint answers with a page that does the same thing: the same lines in a box you can copy, and the same mail-app link. Either way it got as far as our own code and no further — nothing stored it on the way — and nothing more leaves your machine until you press send there. You can skip the form entirely and write to [email protected].
Cloudflare
Cloudflare is the one company standing between you and us, and it is in the route three times over. It terminates TLS: there is no certificate on our own server at all, so the encrypted connection is between your browser and Cloudflare, and Cloudflare talks to us behind it. It fronts every request, which means it sees the address each one came from, as any host of anything does. And it runs the /show code above and carries that form's mail through its own Email Routing service into our mailbox.
It is a processor here, working under its own privacy policy. No other company is in either route.
The calendar
Booking a call takes you to zcal.co, which is not us and has its own terms. Nothing about you reaches it until you go there and fill it in; when you book, it tells us the time, your name and your address. Two things travel there with you and they are the only things this site adds to what you type on that page: the placement from the booking link, and the introduction tag if you came in on somebody's link. One names a place on this site, the other names the person who sent you. Neither names you.
Writing to us
Mail to [email protected] is forwarded to one mailbox that one person reads. There is no ticketing system behind it, no shared inbox tool, and no mailing list to be added to.
However a message arrives — the form, that address, or a reply to us — it is read by one person, kept while we are talking and for as long as any resulting contract requires, and used for nothing except replying to you. It is not enriched and not passed to anyone else. Nothing deletes it on a schedule; we delete one on request. Links, logins and files you send for an assessment are under the same rule: shown to nobody, and under an NDA first if you ask.
Who this is, and what you can ask for
The controller is Deal Baker Ltd, registered in England and Wales, company number 14906367, registered office International House, 64 Nile Street, London N1 7SR, trading as Sellable Software. Work happens from Fredrikstad, Norway.
Under the UK GDPR and its EU equivalent you can ask what we hold about you, ask for a copy, ask for it to be corrected or deleted, object to our using it, and complain to a supervisory authority — the ICO in the UK, or Datatilsynet in Norway. Write to [email protected] and one person will answer. The list of what there is to ask about is short: a line in an access log for about a fortnight, and a message you sent us if you sent one.
Client work is covered separately, by the contract and its data processing terms, not by this page.