What this policy covers
This policy lists every cookie jkdevstudio.com stores in your browser, says what each one does and how long it lasts, and explains how to change your mind about the optional ones. It covers this website only. Our customer portal at hub.jkdevstudio.com is a separate application on a separate domain with its own cookies, described near the end.
A cookie is a small piece of text a site asks your browser to keep and hand back on later requests. Browsers also offer local storage and session storage, which work in a similar way but are never sent to a server. We use a few of each, and all of them are listed below. For the wider question of what we do with personal data, see our Privacy Policy.
The short version
One cookie is set without asking, and it exists only to remember your answer to the cookie banner. Two more are set by Google Analytics, and only if you press Accept. That is the whole list.
We run no advertising cookies, no tracking pixels, no social media buttons that phone home, and no fingerprinting scripts. We do not sell or share browsing data with advertisers or data brokers. Nothing on this site builds a profile of you across other websites. The banner has two buttons rather than a panel of category switches because analytics is the only optional thing here, so the honest question is yes or no.
The consent gate is enforced in the page itself, not just in what the banner displays. Until you accept, the Google Analytics script is never added to the page, so it has no opportunity to set anything or send anything. If you reject, it stays unloaded on every visit for as long as your choice is stored.
Cookies this site sets
| Cookie | What it does | How long | Needs consent? |
|---|---|---|---|
cookie_consent | One word, accepted or declined. No identifier. | 1 year | No. Without it we cannot remember that you said no. |
The banner reads it so it does not ask again on every page, and the analytics script reads it to know whether it may load. It holds nothing that describes you.
It is a first-party cookie, set on jkdevstudio.com, readable only by this site, and carrying SameSite=Lax so it is not sent along with requests originating from other sites.
Analytics cookies
We use Google Analytics 4 to see which pages people read and roughly where they arrived from. It tells us that a page was read; it does not tell us who read it. We do not enable Google Signals, advertising features, or data sharing for advertising purposes on the property, and we do not upload customer data to it.
| Cookie | What it does | How long |
|---|---|---|
_ga | A random number that tells one browser from another. | 2 years |
_ga_S54M8GLEXV | Session state for our Analytics property. | 2 years |
The random number is what stops ten pages read in one sitting being counted as ten visitors. The session cookie records when the current session started and how many there have been.
Neither is created unless you accept. Google processes the data it receives under Google’s own privacy policy, and you can also opt out of Analytics in every browser using Google’s official browser add-on.
Things kept in your browser that are not cookies
A handful of preferences live in your browser’s own storage rather than in cookies. The practical difference matters: local and session storage are never attached to a request, so these values are never transmitted to us or to anyone else. They sit on your device and are read by the page you are looking at.
| Key | What it remembers | How long |
|---|---|---|
theme | Light or dark, so the site opens the way you left it. | Until you clear site data |
jkds:blog-layout | Whether you last viewed the blog as a grid or a list. | Until you clear site data |
jkds:nav-banner-dismissed | When you closed the announcement strip at the top of the page. | 1 hour |
jkds:promo-shown | That the welcome offer has already been shown to this browser. | Until you clear site data |
jkds:promo-visit, jkds:promo-pages | When this browsing session began and how many pages it has covered. | Until you close the tab |
The last two are what decide whether the welcome offer appears at all.
With analytics accepted, Analytics also keeps two short-lived session values (jkds_ga_pending_purchase and jkds_ga_purchased) so that a completed purchase is reported once rather than again on every page you open afterwards. They are discarded when you close the tab.
Clearing site data for jkdevstudio.com in your browser removes all of these.
Signing in
WordPress sets session and preference cookies for signed-in users. Registration on this website is closed and the only accounts are ours, so a visitor never receives them. If you have a customer account with us, it lives on Hub rather than here.
Other domains you may reach from here
Hub
Hub, at hub.jkdevstudio.com, is where licenses, downloads, documentation and support tickets live. It is a separate application on a separate host, so its cookies are separate cookies even where they share a name with one here. Hub keeps no cookie policy of its own; this is it, and its notice points at our Privacy Policy for the wider picture.
Two are set the moment you open a page there, before any sign-in and before you have answered anything. Both are strictly necessary and neither can be turned off, because with them blocked signing in does not work:
| Cookie | What it does | How long |
|---|---|---|
hub-session | Keeps you signed in from one page to the next. | 7 days |
XSRF-TOKEN | Proves that a form submission came from a page Hub served. | 7 days |
The session cookie is HttpOnly, so no script can read it, and Secure, so it never travels over plain HTTP. The forgery token is readable by the page’s own JavaScript by design, which is how it gets attached to a request.
Answering Hub’s notice stores your choice in a cookie_consent cookie on the Hub host, which is a different cookie from the one on this site even though the name matches. Your answer here does not carry across to Hub, and Hub’s does not carry back. Two hosts, two questions.
Accepting there loads Google Analytics on Hub under its own property, G-FE24PRDR2R, with the same two cookies as this site (_ga and a _ga_ cookie named after that property). Decline and the script is never added, exactly as here.
Two more things reach a third party on a Hub page without setting a cookie, and they are worth naming because they still involve your browser contacting somebody else. Product preview images are loaded from Envato’s own image CDN, so Envato sees the request. And signing in with Google or GitHub hands you to that provider for the sign-in itself, under their cookies and their policies, which are linked from our Privacy Policy.
Checkout
Direct purchases are handled by Creem, which is the merchant of record for the sale. Checkout happens on Creem’s own pages, so any cookie set during payment is Creem’s, on Creem’s domain, under Creem’s privacy policy. We never see your card details and we set no payment cookies of our own.
Envato
Some buttons here take you to ThemeForest. Once you land there you are on Envato’s site under Envato’s cookie policy. We set nothing in the process and we receive no affiliate identifier from it.
WordPress.org
Our free products are downloaded from the WordPress.org directory, and their support forum is on WordPress.org too. Both are that site’s pages under its own cookies and its own policy. We set nothing there and receive nothing from it.
Cloudflare
Cloudflare sits in front of this site as a content delivery network and security layer. In the site’s current configuration it sets no cookies, and we verified that before publishing this page. Cloudflare can set security cookies such as __cf_bm or cf_clearance if a request has to be challenged, for example during an attack. Those record that a browser check was passed. They carry no advertising function, their behavior is controlled by Cloudflare rather than by us, and they are described in Cloudflare’s own privacy policy.
Changing your answer
Your answer is stored for a year. To change it, delete the cookie_consent cookie for jkdevstudio.com in your browser settings, or clear site data for this domain. The banner returns on your next visit and you can answer again. Withdrawing consent stops any further analytics collection; it does not reach back and erase what was collected while consent was in force, though you can ask us to delete it under the Privacy Policy.
Every major browser also lets you block or delete cookies wholesale, for all sites or for this one alone. The setting is under Privacy and security in Chrome, Privacy & Security in Firefox, Privacy in Safari, and Cookies and site permissions in Edge. Blocking everything will not stop you reading the site, but the banner will ask on every page, the announcement strip will not stay closed, and signing in to Hub will stop working.
Legal basis
cookie_consent is strictly necessary for a service you asked for, which is a site that remembers your cookie preference, and it is exempt from the consent requirement under Article 5(3) of the ePrivacy Directive as implemented across the EU and in the UK. The analytics cookies are set on the basis of your consent under the same article and Article 6(1)(a) of the GDPR. You give that consent through the banner and can withdraw it at any time by the steps above.
Changes to this policy
We may add, remove or replace cookies as the site changes, and this page changes with them. The date shown at the top of the page is the last revision. Anything new that requires consent would also mean asking you again rather than relying on an answer you gave about something else. If you want to check the current state yourself, opening your browser’s developer tools on this page and looking at the storage panel will show you exactly what is there.


