سياسة الخصوصية
ما المعلومات التي يتعامل معها الموقع وAskZ وZAPP، وإلى أين تذهب، وكم تبقى، وما حقوقك عليها.
بلغة بسيطة
- لا حاجة إلى التسجيل للدراسة. يبقى تقدّمك وتفضيلاتك في متصفحك ما لم تختر تسجيل الدخول.
- الحساب اختياري: تسجّل الدخول ببريدك (برمز لمرة واحدة، دون كلمة مرور)، فنحفظ نسخة من تقدّمك لتتزامن بين أجهزتك. احذفه متى شئت من /account.
- التحليلات (Google Analytics، مع إخفاء عناوين IP): في الاتحاد الأوروبي والمنطقة الاقتصادية الأوروبية والمملكة المتحدة وسويسرا تبقى مطفأة حتى توافق؛ وفي غيرها تكون مشغّلة افتراضيًا وتطفئها من «إعدادات ملفات تعريف الارتباط».
- ما تكتبه في AskZ، وأي صورة أو ملف تضيفه، يُرسل إلى خادمنا على Cloudflare وإلى مزوّد نموذج ذكاء اصطناعي لتوليد الإجابة. تُقرأ الصور والملفات نصًا ولا تُحفظ؛ ويُحذف النص بعد 24 ساعة.
- إن سألت AskZ عن الانضمام إلى الصفوف، فقد يجمع اسمك ومستواك ومدرستك ومدينتك ورقم واتساب، ويرسلها إلى ZAK ليتصل بك فريق القبول.
- لا نبيع بياناتك أبدًا، ولا نعرض إعلانات من أطراف ثالثة.
- تطبيق ZAPP يعمل بالطريقة نفسها: لا حساب إلزامي، ولا إعلانات، ولا أدوات تحليل أو تقارير أعطال من أطراف ثالثة.
- يمكنك أن تطلب رؤية أي شيء نحتفظ به عنك أو تصحيحه أو حذفه: privacy@cswithzak.com.
يساعدك الملخّص على القراءة؛ أما النص الكامل أدناه، بالإنجليزية، فهو المعتمد.
Privacy Policy · v1.2
1. Who is responsible
The data controller for cswithzak.com and the AskZ chat on it is Zafar Ali Khan (“ZAK”), an individual educator based in Karachi, Sindh, Pakistan, trading as CS with ZAK.
- Email: privacy@cswithzak.com (put “Privacy” in the subject line)
- WhatsApp / phone: +92-3-111-222-ZAK (+923111222925)
- Post: available on request by email.
We have not appointed a Data Protection Officer because we are a small operation and are not required to; ZAK personally handles privacy requests.
This policy covers the website, the AskZ drawer and /askz page on the website, testimonial submissions, enrolment enquiries that come through the site, teacher-access requests, and the ZAPP apps for Android, iPhone and iPad (section 9). The stand-alone AskZ service at chat.askzbot.com and AskZ on WhatsApp are governed by their own notice on that site.
2. Our principles
- Free for students means free. No ads, no ad-tech, no data brokers, no selling or renting personal information — ever. “Ads” and “advertising” in our documents mean third-party advertising: anything a company other than us pays to put in front of you.
- Our own classes are not ads, and never cost you the free site. We also offer our own classes and school services (ZAK's classes and ZAKATHON, and services for schools). Buying them never changes what is free: nothing free today becomes paid, and nothing on the site is held back for people who pay. We may mention them on our own pages; next to your study they come after your work and you can dismiss them — never with a price or a countdown, never inside games, the labs, Discussion Corners or a past-paper question, and never by using your data for targeting. Every enquiry goes to a person on WhatsApp; nothing is sold inside the site or ZAPP.
- Local first. Whatever can live in your browser, does. We only receive data when you deliberately send it (a chat message, a testimonial, an enquiry), plus anonymised analytics unless you turn it off.
- Minimal. We ask only for what a teacher genuinely needs to help you.
- Honest about AI. AskZ uses third-party AI models; we tell you which and where.
- Children first. Most of our users are under 18. We design and write for them, and we are cautious with their data.
3. What we collect, and why
a) Data that never leaves your browser (no collection by us)
The My Progress dashboard, quiz history, weak flashcards, exam planner settings, your pseudocode, Python, SQL, assembly and Prolog drafts, the Smart Notes and assignments you have opened (with your answers, self-marks and mastery ticks), what you write, tick and draw on past-paper questions in the paper workspace, your chosen level and theme are stored only in your browser's local/session storage and IndexedDB. We never receive them — unless you sign in (section 3l), in which case the progress document and your past-paper workspace answers are also kept on our server. The full list of keys is in the Cookies & Local Storage notice.
b) Server logs (all visitors)
When you open the home page without having chosen a language, the server looks at the country Cloudflare attaches to your request, and your browser's language setting, to decide whether to open the Arabic home page. Neither is stored. If you use the EN / ع switch, your choice is kept in a cookie on your device (zak-lang, see the Cookies notice).
When your browser requests a page, our hosting provider (Cloudflare, which also runs the AskZ server) automatically receives your IP address, browser type and version, device type, the page requested, the referring page and a timestamp. These are standard web-server logs used to keep the site running, secure and fast (legal basis: our legitimate interest in operating and protecting the site). They are retained for a short period by those providers under their own policies (typically days to a few weeks) and we do not build profiles from them.
c) Analytics (on by default — you can turn it off)
We use Google Analytics 4 with IP anonymisation switched on. It tells us, in aggregate, which pages and tools are used, roughly where visitors are (country/city level), what devices they use and how they arrived. It sets the cookies listed in the Cookies notice. We do not use Google Signals, advertising features, demographic reports or cross-device tracking. Since 18 October 2026 a few page-use events go with it, to see whether our simpler page layouts help: which part of a page was used first and its position number, a rough time bucket (for example “2–5 seconds”), which level was picked and where, whether the Continue button or a topic-page section was opened. They carry no text you type, no names and no IDs of your own, and they are sent only when Google Analytics itself is allowed. Google's own explanation of what it does with this data is at google.com/policies/privacy/partners.
Whether it runs depends on where you are, because the law differs:
- EU/EEA, United Kingdom, Switzerland (where the ePrivacy rules, PECR and the FADP require your prior consent for analytics cookies): nothing is loaded until you press Allow analytics on the cookie banner. If you press No thanks, or never answer, no analytics script is loaded and no analytics cookie is set. Legal basis: your consent (GDPR Art. 6(1)(a)), which you can withdraw at any time from “Cookie settings” in the footer.
- Everywhere else: analytics is on from your first page view and you can turn it off at any time from “Cookie settings” in the footer (the script then stops immediately and is not loaded again). Legal basis: our legitimate interest in understanding which parts of a free site are used, with an easy opt-out.
To tell the two apart, our server looks at the country code Cloudflare attaches to your request; it is used for that one answer and not stored, and no location permission is ever requested. If that lookup fails, your browser's time zone is used instead, erring on the side of asking you. On either path you can also use Google's opt-out add-on, and a Global Privacy Control signal from your browser turns analytics off automatically wherever you are.
Site visits counter (no cookie, no personal data). The footer shows how many visits the site has had today, this week, this month, this year and in total. Each page you open sends one tick to our AskZ server (Cloudflare) which adds 1 to that day's count; the first page of a browser session also adds 1 to the day's visits, remembered by a zak-visit flag in session storage that disappears when you close the tab. Only the numbers are kept — no IP address, browser details, page path or visitor id is stored, so nothing can be traced back to you, and it runs whether analytics is on or off (it is not analytics: it cannot tell one visitor from another). Legal basis: our legitimate interest in showing how the site is used, with no impact on you.
Today's question (no cookie, no personal data sent). The Today card on your dashboard offers one real past-paper question a day, the same for everyone on your level. When you press Done — see how others did, your mark is sent to our AskZ server (Cloudflare) with the day, your level and the question's reference — nothing else: no account, name, answer, IP address or device id is stored. The server adds it to that day's count of answers and how many scored 0, 1, 2… marks, shows those totals back to everyone, and deletes each day's totals after 14 days. To stop a script inflating the numbers, a network can send only a few marks a day; that tally is kept in memory under a salted hash that changes daily and is never written down. Your own result and day streak stay in your browser (zak-daily-question, see the Cookies notice). Legal basis: our legitimate interest in showing students how others did, with no impact on you.
How am I doing? (no cookie, no personal data sent). Your dashboard, the home page and the study route can show how your week compares with other students on your level. To make that work, once a day your browser sends our AskZ server (Cloudflare) exactly four things: the week (an ISO week number, Pakistan time), your level, five rounded numbers about your own week — days you studied, quiz accuracy, past-paper questions answered, study-route sections passed and the share of your course's topics completed, each only as a range such as “3–5” — and a key (k) made on your device from the week and a random id your browser created, so that sending again the same week replaces your earlier numbers instead of adding to them. The key changes every week, so weeks cannot be joined, and it cannot be turned back into your id. No account, name, email, answer, IP address or user agent is stored. The server adds the ranges to that week's chart for your level, shows the charts back to everyone (only once 30 students have joined that week) and deletes them after 8 weeks; your browser works out where you stand. Two devices of one student count twice. It is on by default: Turn off on the dashboard card (or your browser's Global Privacy Control) stops anything being sent, and the switch is remembered in your browser (zak-compare, see the Cookies notice). Legal basis: our legitimate interest in encouraging students with an honest, anonymous comparison, with no impact on you.
d) AskZ conversations
When you send a message to AskZ from this site, we receive: the text you typed, a random conversation ID generated for that chat, and the page context (which course, topic and page you are on). The AskZ server (a Cloudflare Worker run by us) then:
- checks the message with an automated content-moderation API run by our AI safety provider to filter abusive or unsafe content; if the check stops a message because it suggests the writer may harm themselves, the first 300 characters of the message, its conversation ID and the page context are emailed to ZAK straight away (through Resend, section 5) so he can act under the Child Safety & Safeguarding policy — no name or email is attached;
- retrieves relevant passages from our own knowledge index (Cloudflare Vectorize);
- sends your message, the retrieved passages and the recent conversation history to a large language model run by our AI model provider (API-only, no training on our traffic; data centre in Singapore) to generate the reply;
- stores the conversation (last 80 messages) under the random conversation ID in Cloudflare KV for 90 days, so the chat can continue when you come back in the same browser tab, then deletes it automatically.
Photos and files you add to AskZ. You can add a photo (for example of a past-paper question) or a document — a PDF (typed or scanned), a Word, PowerPoint, Excel or OpenDocument file, a Jupyter notebook, a web page, an RTF, CSV, code or text file — to a chat with the paperclip, the camera button, by pasting or by dropping it on the chat. Your browser first makes a photo smaller. The AskZ server then turns it into text: a photo is sent once to our AI model provider (the same provider as above) to be transcribed — the text, code, tables and diagrams on it; a document's own text is pulled out on our server without any AI model, except that scanned pages (pictures of pages, up to 12 per file) and up to 4 pictures inside a document are each sent once to the same provider to be transcribed in the same way. The photo or file itself is not stored. Only the text read from it is kept, for 24 hours, under your account (or the hashed network described below) so your next questions in that chat can refer to it; then it is deleted automatically. For a long document, our server also computes numeric fingerprints of its passages (embeddings, on Cloudflare Workers AI) so it can find the parts you ask about; they are kept and deleted with the text. With each message the model receives an outline of the document (for a past paper: its questions, marks and pages) and either the whole text, if it is short, or only the parts your question is about; for a recognised Cambridge past paper it may also receive that question's official mark scheme from our exam bank. Guests can add a few photos a day on the website; documents — and, in the ZAPP app, photos too — need a (free) account. On the website, before a guest's photo is sent, the page runs Cloudflare Turnstile, an automatic check that a person (not a bot) is uploading: it loads a small script from challenges.cloudflare.com at that moment only, usually without showing anything, and Cloudflare looks at signals from your browser to decide — under its Turnstile privacy addendum; we receive only a pass/fail token, and signed-in students skip it. Don't add photos of people, ID cards or anything private — AskZ refuses photos that are not school work.
Voice typing and read-aloud. The microphone button uses your browser's own speech recognition and the speaker button under an answer uses your device's own voices. We never receive any audio: only the words your browser types into the box are sent, when you press Send. Some browsers recognise speech on their own servers (Chrome sends the audio to Google, Safari to Apple) under their own privacy policies; if you would rather not, type instead.
Chat history on your device. A copy of each chat is also kept in your own browser (local storage, zak-askz-history) so you can search, reopen, pin, rename, download and delete past chats from the chat's History button. That copy is never uploaded, never synced to an account and never read by us. In the chat's Settings you can turn history off (temporary chats), have chats deleted automatically after 7, 30 or 90 days, delete one chat or all of them, or back them up to a file. The ZAPP apps do the same in the app's private storage on your phone.
Conversations are keyed by a random ID, not by your name, and we do not link them to your IP address. Daily allowance. AskZ is free within a daily allowance: a number of messages, a number of photos and files, and a share of the day's AI budget (longer chats, photos and files use more of it); AI marking of past-paper answers has its own daily share. To count them, the Worker keeps, for each day, how many messages and uploads you used and how much of the budget your requests cost: if you are signed in, under your account; if not, under a one-way hash of your network's IP address combined with the date (the address itself is not stored, the hash cannot be turned back into it, and it is never kept with your conversation). These counters hold numbers only — never what you asked — and are deleted automatically after 40 days. But anything you type is content we process — so please do not type passwords, home addresses, ID numbers, other people's details or anything you would not say in a classroom. Legal basis: performance of the service you asked for (the chat), and our legitimate interest in keeping it safe. The AskZ & AI Transparency notice has more detail.
Anonymous "missed" counts (Examiner Agent). When you answer a quiz question wrongly or mark a flashcard "again", the page queues a note of only the topic and whether it was a quiz or a flashcard — not the question, your answer, an account or any id — and sends a small batch to the AskZ server every 20 seconds or when you leave the page. The server adds them to one number per topic per month, which the Examiner Agent uses to choose which topic to improve (AI Policy §7). To stop floods it counts batches per one-way hash of your network's address and the date (as for the daily allowance above); that hash is not stored with the counts. Nothing is kept that could tell one student from another, so there is nothing to access or delete. Legal basis: our legitimate interest in improving the content where students struggle.
Reporting an AI answer. Under every AI-written answer, document, question or mark — AskZ replies, Smart Notes, assignments, AskZ-written Paper Builder questions, AI marking and @AskZ in a corner — and on every past-paper question card (Report a problem: marked wrongly, a glitch, a flaw in the question) — Report opens a short form inside the page or app: you choose what is wrong (wrong or misleading, unsafe, offensive, something else) and may add a note of up to 500 characters. Pressing Send report sends to the AskZ server: that reason and note, the AI text you are reporting (up to 4,000 characters), where it appeared (for example the chat's random conversation ID and the message's number, the topic, or the question's id), the page and whether it came from the website, Android or iOS. If you are signed in, the report also carries your account id (not your email) so it can be erased with your account. We do not store your IP address or email with it; to stop floods, the server counts reports per account, or per one-way hash of your network's address and the date (as for the daily allowance above). Only ZAK reads reports, in his Studio, to correct AskZ; each is deleted automatically after 180 days (or sooner when ZAK deletes it or you delete your account). Email instead opens your own email app with the same details, and nothing is sent unless you send that email. Legal basis: our legitimate interest in keeping AI content accurate and safe.
AskZ on Discord. In the CS with ZAK and AskZ Gaming Discord servers you can ask AskZ with the /askz command or by choosing “Ask Z about this” on a message. Discord sends that command to the same AskZ Worker together with your Discord user ID and username, the channel's ID and name, and — for “Ask Z about this” — the text of the message you chose. The answer is posted back into the channel, where everyone in it can read it. The conversation is kept for 90 days under an ID made from the channel and your Discord user ID (so a follow-up /askz continues it), and we do not combine it with anything else we hold. If you add an image to /askz, or choose “Ask Z about this” on a message with images (JPEG, PNG or WebP, up to three), AskZ downloads the image from Discord and our AI model provider reads it once into text to answer you; neither the image nor that text is stored, and the answer is kept with the conversation like any other. Your daily image allowance is counted against a one-way hash of your Discord user ID, never the ID itself, and those counts are deleted after a few days. The daily question, MCQ and trace-it posts in the server are sent by us through Discord webhooks and involve no personal data. Discord itself processes your account and messages under Discord's privacy policy.
e) Generated assignments and notes
When you open a topic's Smart Notes or assignment reader, the page asks the same AskZ Worker for that document. If nobody has opened it before, the Worker builds it — the request carries only the topic's name and syllabus outline, never anything about you, and the Worker retrieves ZAK's own material for the topic and has it written by our AI model provider. The finished document is stored in Cloudflare KV under the topic key (not under any user) and served to every student who opens it; a copy is kept in your browser (IndexedDB for notes, local storage for assignments — see the cookies policy) so it works offline. The sections you tick as mastered never leave your device. Assignment questions are answered on a typeset paper like past-paper questions: what you type and the marks you give yourself stay in your browser unless you are signed in (then they sync like past-paper work, section 3l) or press “Mark my answers” (below). Generation requests are rate-limited per hour using your IP address, which is not stored. Highlighting a passage in the notes and choosing “Ask Z” sends that passage to AskZ as a normal chat message (section 3d). The Paper Builder (for teachers — section 3l) works the same way when a teacher asks it for AI-written questions: the request carries the paper settings they chose (course, paper, topics, marks, time) and the teacher's sign-in token so the server can check their access, nothing else about them, and the finished paper is stored against those settings so a link shared with a class gives everyone the same paper.
Past-paper questions you write on. In the past-paper questions tool you can type, tick, draw and circle on the real question paper. Everything you put there — typed answers, ticks, pen strokes, circuits you build, K-map loops, the marks you give yourself — is kept in your browser (IndexedDB zak-paper-work) and is not sent to us — unless you are signed in to an account, which keeps a copy so your other devices show the same work (section 3l). Tick boxes, tables and most drawn answers are marked on your device (matching lines, tables, circuits, K-map loops, circled options). A timed sitting (a set of questions against the clock) and its results by topic, command word and assessment objective are worked out in your browser and not sent to us; so is the “My answers” PDF, which is built on your device from your own work and saved straight to it. Bookmarked questions are part of your progress (the bookmarks list), so they sync like topic bookmarks when you are signed in. Written answers and the drawings it can't mark exactly (a flowchart, a structure chart, an E-R diagram, a labelled diagram) are marked by AskZ, but only when you press “Mark my answers” (or “Ask AskZ to mark this part”): then the page sends, for each of those parts, your typed answer and one picture of that question part — the printed question with your ink and typing on it — together with that part's official mark scheme and examiner comment — and, for a part that asks for code, what happened when your code last ran in its code lab (errors and output; the code runs in your browser) — to the AskZ Worker, which passes them to our AI model provider to mark. A typed answer whose mark scheme is a list of points is marked first by our AI decision-model provider (section 5) from the text alone — the question, its mark scheme and your typed answer, never the picture — unless you also wrote on that part with the pen; nothing is kept from it, and if it cannot mark the part, our AI model provider marks it as above. The provider does not train on it; our data-processing agreement with it is still being finalised (section 6). In the plain-text view, “Mark with AskZ” sends your typed answer with the question and its mark scheme (no picture). Pictures and answers are used for that one request and are not stored (not in KV, not in R2, not in logs); nothing identifies you in them unless you write your name on the paper, so don't. Requests are rate-limited per hour using your IP address, which is not stored; if you are signed in, the request also carries your sign-in token so its cost counts against your own daily marking share (otherwise it counts against the hashed network, section 3d). For a past-paper question the page may send a short fingerprint of the question instead of its full printed text, which our server already holds.
Questions that were never printed. AskZ-written questions (from the Paper Builder or a teacher's class link), ZAK's model questions and assignment questions are typeset as a paper you answer in the same way. Their work is kept in the same place (zak-paper-work) and syncs the same way when you are signed in; pressing “Mark my answers” sends your typed answers with each part's question text and mark scheme — no picture — to be marked, under the same rules. A question inside a built paper or a timed sitting is kept as its own copy, so answering it there does not change your answer in the question bank. The PDF of your answered paper is made in your browser.
f) Enrolment and Success Pack enquiries (“leads”)
If you ask AskZ about joining ZAK's classes, buying a Success Pack or ZAKATHON, it may ask for your name, level, school or city, preferred mode (online, in-person, self-study) and WhatsApp number so the admissions team can contact you. If you provide them, AskZ sends them, together with a transcript of that conversation, by email (via Resend) to ZAK's mailbox, and keeps a copy in Cloudflare KV for 12 months. They are used solely to respond to your enquiry and arrange enrolment. Legal basis: steps taken at your request before entering into a contract. You can decline to give any of it — AskZ will still answer your questions and give you the admissions WhatsApp number instead.
g) Contact by WhatsApp, phone or email
When you message or call us, we receive whatever you send, your number or email address, and (on WhatsApp) your profile name and picture. We use it to reply and, if you enrol, to run your classes. WhatsApp is operated by Meta and has its own privacy policy. Legal basis: your request / contract, and our legitimate interest in responding.
h) Testimonials
If you submit a testimonial you give us your name, role, level, school, city, session, result, “where you are now”, your quote, and — for verification only — your email address and phone number. The email and phone are never published; they let ZAK check the testimonial is genuine and contact you about it. Your IP address is stored briefly (1 hour) to limit spam. See the Testimonials & User Content policy for publication and withdrawal.
i) Tuition students and parents
Students who enrol (and their parents/guardians) give us contact details, school, level and payment records through the centre or WhatsApp; we also keep attendance, test results and class notes. This is described in the Tuition Terms and the Safeguarding policy. Legal basis: contract, and our legitimate interest in teaching well.
j) Security and abuse
We may keep records of attempted attacks, abusive messages or rate-limit events (IP address, timestamps, the offending request) for as long as needed to protect the service and, if necessary, to report them. Legal basis: legitimate interest / legal obligation.
k) The Python, Java and VB.NET Playground runtimes
Python runs entirely in your browser (CPython compiled to WebAssembly — Pyodide). The first time you run Python, your browser downloads that runtime from the open-source CDN jsDelivr, which receives your IP address and browser type as any web request does and sets no cookies. Your code, its input and its output never leave the page. Java and VB.NET run entirely in your browser too: the Java compiler (OpenJDK's javac with TeaVM) and Microsoft's VB.NET compiler on .NET, both compiled to WebAssembly, are downloaded from this site the first time you open those playgrounds, and the code you write, its input and its output never leave the page. The SQL, assembler and Prolog labs and the pseudocode playground are bundled with the site and fetch nothing.
l) Your account (optional — progress sync)
If you choose to sign in on /account we ask for your email address only. We email you a six-digit code (through Resend, our email provider) to prove the address is yours; there is no password. Once signed in, your browser keeps a random sign-in token (see the cookies notice) and sends your progress document — display name, chosen level, streak, last-active date, completed topics, bookmarks, the videos you have watched or marked as watched (their YouTube ids), quiz results, keys of questions seen and missed, exam-question attempts (with who gave each mark — the site, AskZ or you — and a short fingerprint of the answer, never the answer), counts of what you did each day for XP (flashcards rated, programs run, practice answers, game XP), flashcards reviewed and the countries you picked in the University Planner (country codes only — never your subjects or grades) — to the AskZ server (a Cloudflare Worker run by us) whenever it changes, and fetches it when you open the site, so every device you sign in on shows the same progress. Your XP is worked out on the server from that document, at most 600 a day (the Terms, "How XP is worked out"); the server keeps the result beside it. When you are signed in and ask AskZ to mark a question, the server also keeps the marks AskZ gave each part with a short fingerprint of the answer it marked (not the answer itself) for 400 days, so only marks AskZ really gave earn AskZ-rate XP; these records are deleted with your account. One mailbox is one account: a Gmail address written with dots, as googlemail.com or with a +tag (and a +tag on other providers that treat it as one, such as Outlook, iCloud or Proton) signs in to the account its inbox already has, so we also keep that simplified form of your address to look the account up. We store, in Cloudflare KV: your email address, that progress document, when you created the account and last signed in, and for each signed-in browser a hashed token with the browser type and the date. Codes are hashed and expire after 10 minutes; sign-in tokens expire after 180 days; your IP address is used only to rate-limit code requests (kept for at most an hour). We do not send you any other email — no newsletters, no marketing. Legal basis: performance of the service you asked for. Sign out forgets that browser only; Delete my account on /account erases the email, the progress document, your synced past-paper work and every device's token from our server immediately and permanently (what is already on your device stays there until you reset it).
Past-paper work. While you are signed in on the website, what you write on past-paper questions in the paper workspace — typed answers, ticks, pen and highlighter strokes, circuits and K-map loops, the marks you give yourself and any AskZ marking estimate you asked for — is also sent to the AskZ server a few seconds after you change it, one record per question, and fetched by your other signed-in browsers. We store in Cloudflare KV, under your account: each question's record with the time it was last changed on your device, a small index (question, time, size) and, when you clear a question, a marker saying it was cleared (so your other devices clear it too; markers are forgotten after 180 days). The copy of each question is capped at 256 KB — heavy ink is sent with fewer points per stroke, a question still too big is not sent — and the account keeps at most 5 MB and 2,000 questions: past that, the questions changed longest ago are removed from our copy first (never from your device). /account shows what is not synced. Your browser remains the main copy: signing out leaves all of it on the device. It is kept until you clear the question or delete the account. ZAPP (Android and iOS) syncs past-paper work the same way when you are signed in there (section 9).
Teacher access (Paper Builder). The Paper Builder is for teachers. A teacher who is signed in with their school or institution email can ask for access: we then store, under the account, the request they fill in (name, role, school, city, country, school website, the levels they teach, roughly how many students, and an optional note), its status (pending, approved, declined or paused), the messages exchanged about it, and when each decision was made. The request is emailed to ZAK through Resend; ZAK reads it and decides himself (no automated decision), and his decision and any message are emailed back to the teacher. We use it only to decide on and run teacher access. It is kept until the account is deleted or ZAK deletes the request; Delete my account removes it too. When an approved teacher asks AskZ to write Paper Builder questions, the request also carries the account's sign-in token so the AskZ server can check the access; the questions themselves are still stored only against the paper settings (section 3e). When an approved teacher changes a built paper (Change the paper), they are asked why: the reasons they tick, an optional note, which questions they picked (with those questions' text and mark scheme), the paper's settings and the teacher's name and email are kept on the AskZ server so ZAK can see what AskZ got wrong and improve it, and only ZAK can read them there. The reasons, the note, the paper's topics and the picked questions (never the name or email) are also sent to our AI model provider so AskZ can work out which questions to replace and write the replacements. They are kept until ZAK deletes them or you delete your account, which removes every piece of feedback you left. The changed version of the paper is stored against its settings as a numbered version (no name or email in it), so the class link gives students the changed paper.
Class results (Paper Builder class links). When an approved teacher presses Make a class link under a built paper, the AskZ server keeps a class record under the teacher's account: the paper's title and settings, and for each question its reference, marks and topic, syllabus sub-topic and assessment-objective tags (never the question text), with the date it was made and whether it is closed. A student who opens that link while signed in can press Send my result to my teacher: we then store, in that class, against the student's account, the name they type for the teacher (filled in from their Discussion Corners nickname if they have one, never their email), their marks for each question and each printed part, their total, how long the clock ran and when they sent it. The answers themselves are not sent. Only the teacher who made the link (while their access is approved) and ZAK can see a class's results; the teacher never sees a student's email address or account. A student who is not signed in can still sit the paper, but nothing is sent — the result stays on their device. A student can withdraw their result at any time; the teacher can remove a result, close the link to new results or delete the class. Each result is deleted 12 months after it was sent and a class 12 months after its last activity; Delete my account deletes a student's results and a teacher's class links with every result in them. The teacher's CSV export is made in their own browser and is theirs to keep securely. Share to Google Classroom opens Google Classroom's own share page with the link and the paper's title in a new tab — nothing about the teacher or their students is sent to Google from our site, and Google's terms apply there.
Strict exams. An approved teacher can also set a built paper as a strict exam (Set as a strict exam). The AskZ server then keeps, under the teacher's account: the exam's title and settings, the questions as students see them (without mark schemes), the mark schemes of any questions AskZ wrote for it (shown to students only if the teacher releases them), the timing, the rules the teacher chose, a six-letter room code and, if it is set for a class list, which one. Only signed-in students can sit it. When a student starts, we store against their account in that exam: the name their teacher sees (the name on the teacher's class list, the name they pick from a name list the teacher gave, or their exam name), the email of the account that started, shortened (like ah@gmail.com) so the teacher can tell who is behind a name, when they started and must finish, any extra time the teacher gave, the order their questions came in, and a one-way hash of a random id for their browser (zak-exam-device) and of their network address, so the exam stays on one device and the teacher is told if it is opened on a second one or the network changes. The exam name belongs to the student's account: they type it once at their first exam (it is checked, so a joke or a famous name is refused), or it is taken from the name they first pick on a teacher's list, and later exams use it without asking. Only a teacher of one of their exams can change it (Rename); we keep the name, who set it and when, and its last few earlier versions, so the teacher can see when a name differs from the one the account used before. A teacher may give a room-code exam a name list (typed, pasted, a file, or one or two photos of a register; a photo is read once by our AI model provider and neither the photo nor its text is kept, only the names the teacher saves); students see the list only after the room code, and a name one student picks is no longer shown to others. Unlike a class link, a strict exam keeps the student's answers: what they type, tick and draw on each question is saved on the AskZ server as they write (up to 256 KB a question), and a question they lock or hand in can no longer change. To mark it, each answered part's typed text and one picture of the part as they wrote it are sent with that part's official mark scheme to our AI model provider (typed answers with a list of points go first to the decision-model provider, as in AI marking* above); the AskZ server keeps the marks AskZ gave with its reasons, never the picture. The teacher can add their own mark and a short note to any part, and the site's exact markers can check ticked boxes and one-word answers. The room also records flags for the teacher: when the student left the exam tab or window and for how long, left full screen, tried to paste, copy or print, used a blocked shortcut, made the window very small, went offline, tried a second device or tab, or changed network — the kind of event and its time only. While the exam is open the room checks in with the server every 20 seconds; when the device lost its connection for longer than 45 seconds (it froze, restarted or went offline) we record when and for how long, so the teacher can give that time back — it comes back only when the teacher chooses to. The room also keeps the screen on while it is open (the browser's Screen Wake Lock), so a phone does not go to sleep mid-exam. No camera, microphone, screen recording, keystrokes or browsing history are ever collected.* Flags are information for the teacher, never an automatic penalty. Only the teacher who set the exam (while their access is approved) and ZAK can see students' answers, marks and flags; a student sees their own answers once they have finished, and their marks as the teacher's rules allow. AskZ's marking of an exam is paid from the teacher's marking allowance, not the student's. The teacher can give extra time, cancel or delete an attempt, release or withdraw results, or delete the exam. An exam and everything in it is deleted 12 months after its last activity; Delete my account* deletes a student's attempts (answers, marks and flags) and a teacher's exams with every attempt in them. While a student writes, their answers are also kept in their own browser (zak-paper-work, under the exam's own ids, never synced) so a reload or a dropped connection loses nothing.
School licence. If ZAK links your teacher account to your school's licence, we keep the school's record (its name, city, licence dates, AI allowance and the names and sign-in emails of its linked teachers) and file the AI cost of your Paper Builder writing under the school. Other teachers linked to the same school see the titles, papers, mark totals and result counts of your class links — never a student's name or result. Deleting your account takes you off the school's list. Class lists (rosters). An approved teacher can keep a class list under their account: its name, level, a six-letter join code and, for each student, the name the teacher or student gave, its status (invited, asked to join, joined), how they were added (list, join code or Google Classroom) and when. A teacher can add students by pasting or uploading a list of names and email addresses: those addresses are stored in the class list (lower-cased, with Gmail dots and +tags folded so they match the student's account) only so the student sees the invitation when they sign in with that mailbox. Nobody is added without agreeing — the student presses Accept (or Decline, which deletes the row). A student can also join with the class code and the name their teacher knows them by; the teacher approves the request unless they switched on automatic approval. A joined student sees the class links set for that class and their own result state; the teacher sees which joined students have not sent a result yet — never their email address, account or progress. Import from Google Classroom asks the teacher to sign in with Google and allow read-only access to their Classroom classes, their students' names and email addresses; we use that access once, at that moment, to copy the chosen class's names and emails into the class list as invitations. Google's access token is kept on the AskZ server for at most 15 minutes and we never store a refresh token, the teacher's Google account or anything else from Google. A student can leave a class at any time; the teacher can remove a student, change the code, close the list or delete it. Delete my account deletes a teacher's class lists, and a student's memberships and any invitation to their email address.
Parent view. A signed-in student can invite a parent or guardian from their account by typing the parent's email address (and the name the parent knows them by). We email the parent a link through Resend; the link works for 14 days and its code is stored only as a hash. The parent opens it and signs in with their own email address; when they accept, we keep a link between the two accounts (the parent's email, the child's display name, when it was made, whether the weekly email is on) and email the student to say a parent can now see their progress. The parent then sees a read-only summary worked out from the student's synced progress: XP, streak, the days they studied in the last two weeks, quiz and past-paper scores by topic (and the topics to work on), topics completed, and the results the student chose to send to a teacher's class link. To show study days, the account keeps the dates (not times) it saw a save, for the last 70 days. The parent never sees the student's bookmarks, AskZ chats, attachments, answers or paper work, Discussion Corners posts, or their email address. A weekly email with the same summary goes to the parent on Sundays unless they turn it off (every email has a one-click stop link, and the switch is in the parent view). For an A2 or Full A Level student, the email can also carry one line naming the next university admission date (a test, registration, application or aid deadline in the next 45 days) for the countries the student picked in the University Planner — Pakistan if they picked none — with a link to the admissions calendar; the parent sees the date, not the student's list of countries. When ZAK has a dated class for the student's level in the next 30 days, the email ends with one line naming it and linking to the class list — no price, nothing chosen from the student's answers or scores, and it is the only place a class is mentioned in a parent's inbox. A student can link up to four parents and remove any of them at any time; a parent can stop following too. Delete my account (either side) deletes the link.
m) CS Games (/games) — no account, no chat, no personal data
Games need no sign-up. The first time you open one, your browser makes a random player id (for example p_k3…) and a generated nickname such as “Swift Compiler 42” that you can re-roll but cannot type; both stay in local storage (zak-games, with your personal bests, saved puzzles, the topics you ticked under What I've studied and today's game XP — a room you host online carries that topic list as one of its settings). Solo play runs entirely in your browser. When you play online (quick match, a private room or a classroom room) or submit a score to a leaderboard, our AskZ server (a Cloudflare Worker) receives the player id, the nickname, your moves or answers in that game (or, for a leaderboard, the run it re-checks: your guesses, program, circuit or button presses) and which preset quick-chat line you pressed. There are no chat boxes: players can only send preset lines such as “Good luck!”, and nothing a player types is shown to anyone else — so the games collect no free text, names, emails or photos. A room's data is deleted automatically when it closes (15 minutes after a game ends, 30 minutes after everyone has left, or a few hours for a lobby nobody starts). A leaderboard keeps the nickname, the player id, the score, a short summary (for example “4/6 guesses”) and the date; daily and weekly boards are deleted after 35 days, all-time boards are kept while the game exists. Because the id is random and the nickname is generated, a leaderboard row does not identify you; if you want a row removed, email us the nickname and roughly when you played. AskZ practice bots in games are software and are always labelled BOT. The IP address of a request that creates a room is used, only in memory, to stop one connection creating too many rooms; it is not stored. In the AskZ Gaming Discord server, /trivia answers are kept with your Discord user ID and name only until the question closes and for two days after (so the reveal can say who answered first), then deleted; /play and /quickmatch just open a room on the site, and /games, /daily and /leaderboard only show lists and scores. Legal basis: performing the service you asked for (the game) and our legitimate interest in fair, safe leaderboards.
n) Discussion Corners (/corners) — nickname, posts, no private messages
Anyone can read the open corners. To post you need a free account and a nickname you choose (3–20 characters, never your email); classmates only ever see the nickname. Before your first post you tick I agree to the Community Guidelines; we record the date you agreed and which version of the Community Guidelines it was, with your nickname. A post can be anonymous to classmates: others then see a made-up name such as “Anonymous Teal Owl”, while ZAK and, in a class corner, its teacher still see your nickname. We keep, on our server on Cloudflare (two Durable Objects of the AskZ service): your nickname, when you agreed to the guidelines, reputation and any blocks you set; what you post (titles, text, code, poll options, topic tags), reactions, votes, poll answers, threads you follow and your inbox of replies and mentions; for class corners, which corners you joined; and safety records — reports you make or receive, warnings from the safety filter, mutes and pauses. There are no private messages between students, and posts containing email addresses, phone numbers or social-media handles are refused.
Checking posts. Every post is checked by an automatic filter before it appears and by OpenAI's moderation service just after (section 5); a post that fails is hidden and counts as a warning. Reports go to ZAK, who never tells the author who reported them. A report of unsafe or upsetting content or of shared personal details, a student's third warning, and a post stopped by the self-harm check are also emailed to ZAK straight away (through Resend, section 5): the corner, the first 300 characters of the post, the author's nickname and how many people reported it — never who reported it and never anyone's email address. One email per post and reason a day, at most 20 an hour (the rest arrive together in one summary).
@AskZ in a corner. When you mention @AskZ (or press Ask AskZ), the thread's recent messages — as other students see them, nicknames included — and your question are sent to our AI model provider exactly as in section 3d, and the answer is posted in the thread for everyone. It uses one of your daily AskZ messages.
How long. Chat messages and their replies: 60 days after the last reply (unless pinned). Question, discussion and poll threads: while the corner exists. A class corner closes after a year with no activity, or when its teacher deletes it. Reports and activity logs: 180 days. Your inbox keeps your last 100 notifications. Delete any post yourself at any time; deleting your account (/account) deletes your posts (a thread others replied to keeps their replies under “Deleted”), reactions, votes, nickname, blocks, memberships and inbox.
o) Ebooks (/books) — your licence, your devices, your notes
ZAK's books can be bought as ebooks that are read on this website only (there is no download). Payment happens with our books desk on WhatsApp (+92 336 6472224), never here; they send an access code, which you redeem while signed in. For each ebook we keep, under your account: the book, when your access started and ends, how it was unlocked (code, grant by ZAK or school) and a short licence id. Of a code we keep only a one-way hash, the book, a note and batch name the admissions team typed (no phone numbers) and, once used, when and by which account. To keep the three-device limit, each browser that opens a paid chapter is remembered by the random device id this site already uses for progress sync (section 3l), a label such as “Chrome on Mac” worked out in your browser, and the date it was last used; a device unused for 60 days drops off, and you can remove one on My books. Your highlights, notes, bookmarks, ticks, self-marks and place in each book are kept in your browser (zak-reader-notes:<book>) and, for a book you own, on the AskZ server so your other devices show them (up to 256 KB a book). Every page of a paid chapter shows a faint watermark with your email shortened (like z•••@gmail.com) and your licence id, and text you copy from it carries the same line — that is how a shared copy is traced. Failed code attempts are counted per account and per hashed network for an hour to stop guessing. Reading settings (text size, page colour, typeface, spacing) stay in your browser (zak-reader). Listening to a chapter uses your device's own voice by default: the words are spoken by your browser and nothing is sent anywhere. If you choose the AskZ voice, the reader asks the AskZ server for one passage of the chapter at a time, naming only the book, the chapter and the passage (and, as for reading, your sign-in and device id); the server checks you may read that chapter, takes the words from its own copy of the book and has our AI voice provider speak them. The audio is kept on the AskZ server's private book store so the next listener hears it at once; it holds book text only, never anything about you. To share the AI budget fairly we count how many new passages each account (or, for the free sample, each network, hashed) asks for in a day; passages already spoken are not counted. Delete my account deletes your ebook licences, devices and notes; a used code keeps only the fact that it was used. The free sample chapters need no account and store nothing on the server.
Book orders. When you place an order with the basket on the books pages (or the books desk enters an order you made by WhatsApp, phone or in person), we keep the order in our books ledger on the AskZ server: an order number, what you ordered and the prices, your name, WhatsApp number, city, delivery address (for printed books), the country the order came from (worked out from your connection, used to set the price level and, for EU and UK buyers, to account for VAT) and, if you give it, your email (needed to unlock an ebook) and a note. The books desk, who handle printing, delivery, messages and payments, and ZAK can see it; they add the payment, printing and delivery records and a log of every change. The order is not linked to your account. Your contact details are erased 12 months after the order is closed (delivered, cancelled or refunded); the amounts stay in our accounts for 6 years, as accounting records must. What is in your basket stays in your browser (zak-book-basket) until you order or clear it. The order form sends only what you type, plus the anti-spam checks every form here uses.
p) Publishing enquiries (/books/publishers)
Publishers, distributors, schools and other organisations can ask about publishing or distributing ZAK's books with the form at /books/publishers. It is for organisations, not students, and needs no account. We keep what you type — your name, job title, work email, phone if you give it, your organisation, its website and country, the books, editions, rights and territories you ask about and your message — together with what you agreed to: the exact consent wording you saw, its version, the time and the page. The form is sent to the AskZ server (on Cloudflare); ZAK gets an email of it, and you get a confirmation with your reference, both sent through our email provider (Resend). We use it only to answer you and discuss publishing; news about new titles is sent only if you ticked that box. We do not store your IP address — to stop abuse, the server counts enquiries per network for an hour using a one-way hash. An enquiry is deleted automatically 24 months after it arrives, and sooner if you ask (email or WhatsApp us with your reference). We may later sign an agreement with your organisation; what we keep then is governed by that agreement.
q) Sponsors (/sponsors/join)
If you ask to be shown as a sponsor you give us the name, line, message, dedication, city/country, website and logo you want shown, plus — privately — your name, email, optional WhatsApp number, how you support and a payment reference so we can match it. Only what you chose to show is published, and only after we approve it; your contact details and reference are never published. We keep the exact consent wording you ticked and when. The listing (with its logo) stays until you withdraw it — with the link in your confirmation email, which removes it at once, or by asking us — and a declined request is deleted on request or after 12 months. It is stored in the AskZ Worker's KV storage on Cloudflare; the confirmation email is sent through Resend. Your IP address is kept for 1 hour to limit spam.
4. What we do not do
- We do not sell, rent or trade personal information.
- We do not run advertising, ad networks, retargeting or affiliate tracking.
- We do not use analytics to build individual profiles, and we do not use Google's advertising features.
- We do not use your AskZ conversations to train AI models. (Our model providers' terms also prohibit them from training on API traffic — see section 6.)
- We do not use facial recognition, biometrics, precise geolocation or fingerprinting. The Exam Planner guesses your Cambridge zone from your device's time-zone setting only, inside your browser; it never asks for your location.
- We do not knowingly collect personal information from children under 13 (section 8).
6. International transfers
We are in Pakistan; our providers are in the United States, Singapore, the EU and on global networks. Your data therefore crosses borders. Where a provider is in a country without a data-protection adequacy decision from your jurisdiction, we rely on the provider's standard contractual clauses / data-processing terms and on the fact that the data involved is minimal. Provider commitments we rely on: Cloudflare's DPA and its statement that Workers AI/Vectorize data is not used to train models, our AI model provider's API data-privacy terms (no training on API inputs), our AI decision-model provider's terms (no training on inputs; its data-processing agreement, including zero data retention, is being finalised and this notice will be updated when it is signed), our AI safety provider's API terms (no training on API data), Resend's DPA, Google's Ads Data Processing Terms for Analytics.
7. How long we keep things
| Data | Kept for |
|---|---|
| Browser-stored progress and preferences | Until you clear it — it is on your device, not ours |
| Analytics cookies (unless you opt out) | Up to 2 years (Google's default); consent record 12 months |
| Hosting / edge server logs | Short rolling window set by Cloudflare (days to weeks) |
| Text read from a photo or file you add to AskZ (and, for a long document, the fingerprints of its passages) | 24 hours, then auto-deleted. The photo or file itself is not kept |
| AskZ daily allowance counters (numbers only: messages, uploads, cost) | 40 days |
| AskZ conversation history | On our server: 90 days from the last message, then auto-deleted. In your browser or app: until you delete it or the auto-delete period you chose in AskZ settings passes |
| Optional account: email, progress document, synced past-paper work, hashed sign-in tokens, a teacher-access request and its messages | Until you delete the account (tokens expire after 180 days; a cleared past-paper question's marker after 180 days) |
| Class links (paper title and settings, each question's reference, marks and syllabus tags — no question text) | 12 months after the last result or change, or until the teacher deletes the class or their account |
| Class results (the name a student chose, marks per question and part, total, time taken, when sent) | 12 months after sending, or until the student withdraws it, the teacher removes it or deletes the class, or either account is deleted |
| Strict exams (the exam's questions and rules; each student's name for the teacher, times, answers, marks with AskZ's reasons and the teacher's notes, and flags) | 12 months after the exam's last activity, or until the teacher deletes the attempt or the exam, or either account is deleted |
| Class lists (names, invited email addresses, status) | Until the teacher removes the student or deletes the list, the student leaves or declines, or either account is deleted |
| Parent links (parent's email, child's display name, weekly-email setting) | Until the student or the parent ends it, or either account is deleted; an unused invitation expires after 14 days |
| Study days kept with an account (dates of saves, for the parent view) | The last 70 days, rolling; deleted with the account |
| Google Classroom access token (teacher's import) | At most 15 minutes |
| Feedback from a teacher changing a built paper (reasons, note, picked questions, the teacher's name and email) | Until ZAK deletes it, or until you delete your account (all of your feedback is removed with it) |
| Reports of AI answers (reason, note, the reported AI text, where it appeared; account id if signed in) | 180 days, or sooner if ZAK deletes it or you delete your account |
| Enrolment leads captured by AskZ | 12 months in KV; the email copy in ZAK's mailbox until the enquiry is closed or you ask us to delete it |
| Testimonials | Published ones: until you withdraw them; pending/rejected ones: deleted within 12 months of submission |
| Testimonial rate-limit IP entry | 1 hour |
| Notes/assignment generation rate-limit counter | 1 hour |
| CS Games rooms (player id, nickname, moves) | Until the room closes: 15 minutes after the game ends, 30 minutes after everyone leaves, or a few hours for a lobby nobody starts |
| CS Games leaderboards (nickname, player id, score, date) | Daily and weekly boards 35 days; all-time boards while the game exists (email us to remove a row) |
| AskZ Gaming Discord trivia answers | Until the question closes plus two days |
| Discussion Corners chat messages (and their replies) | 60 days after the last reply, unless pinned (section 3n) |
| Book orders (books ledger) | Contact details 12 months after the order is closed; order amounts 6 years as accounts (section 3o) |
| Ebook licences and your reading notes | While your account exists (a licence shows as ended after its two years); a reading device drops off 60 days after you last used it (section 3o) |
| Publishing enquiries (/books/publishers) | 24 months after the enquiry arrives, or sooner if you ask (section 3p) |
| Discussion Corners questions, discussions and polls; your nickname, reputation, blocks and memberships | While the corner exists / until you delete them or your account (a class corner closes after a year without activity) |
| Discussion Corners reports, safety warnings and moderation log | 180 days |
| Generated Smart Notes and assignments | Per topic, until regenerated — they contain no personal data |
| Tuition records (students/parents) | Duration of enrolment plus up to 3 years for references, results tracking and accounting |
| Security/abuse records | As long as needed for the specific incident |
When a retention period ends we delete or irreversibly anonymise the data.
8. Children and parents
Under 13. The Services are not directed at children under 13 and we do not knowingly collect their personal information. If you are a parent or guardian and believe a child under 13 has sent us personal information (for example through AskZ or a testimonial), email contact@cswithzak.com and we will delete it promptly and confirm to you. Where a law such as the US COPPA Rule applies, we will obtain verifiable parental consent before collecting personal information from a child under 13, or not collect it at all.
13 to 17. You can use the free site without giving us any personal information. Before you give AskZ your name and WhatsApp number for an enrolment enquiry, please make sure a parent or guardian agrees; enrolment itself is always arranged with a parent or guardian. Where the law where you live sets a higher age for consenting to online services on your own (for example 16 under the GDPR in some EU countries), that age applies and a parent's consent is needed for anything based on consent (such as an account).
CS Games need no account and have no chat boxes: players get a generated nickname and can only press preset quick-chat lines, so no child can type personal details to another player there (section 3m).
Discussion Corners need an account to post, so the age rules above apply. Students see each other only by nickname, there are no private messages, posts with contact details are refused, and every post is checked before and after it appears (section 3n; the Child Safety & Safeguarding policy §3 explains the protections).
Byte Size topic votes. On Byte Size Tuitions a signed-in student can rank up to three topics per level they would like a short online class on, and may tick Email me when a topic I voted for is announced. We keep, under your account id, the sub-topics you ranked, when you chose them, the class language you prefer (Urdu–English or English only) and that tick — never your name with it; the public ranking shows only totals. If you ticked it, we use your account's email address once per class to tell you a topic you voted for is on the calendar (sent by Resend, section 5). Change or clear your vote on the page at any time; deleting your account deletes it.
Parent view. A student can invite a parent or guardian to see a read-only summary of their progress — study days, streak, scores by topic and results sent to a teacher — and a weekly email. The parent signs in with their own email and never sees the student's chats, answers or posts; the student can remove a parent at any time (section 3l). If you are a parent and want to follow your child's progress, ask them to invite you from their account page.
Parents and guardians may exercise any of the rights in section 10 on behalf of their child. We may ask for reasonable proof that you are the parent or guardian.
9. ZAPP (the Android and iOS apps)
This section is the privacy notice for ZAPP, the CS with ZAK app for Android, iPhone and iPad. Everything else in this policy applies to it too; this section says what is different. It is written for Android; the last bullet lists what is different on iPhone and iPad.
- No account needed. Nothing in the app needs an account, and most of it works offline; AskZ, video lectures, past-paper PDFs, the first run of Python, the first opening of the Java and VB.NET playgrounds and the first opening of Smart Notes, Assignments and exam-bank topics need the internet. Your progress, settings, drafts and saved content are kept in the app's private storage on your phone. If Android's own backup is on, Android may copy your progress file only into your Google account's backup, under Google's policy; we never see that copy. Settings, the sign-in token and downloaded content are excluded from backup.
- Content downloads. The app refreshes its course content from cswithzak.com (at most every six hours), and downloads exam-bank topics, Smart Notes and assignments from cswithzak.com and the AskZ server when you open them. Those requests carry only what is being fetched (for example a course and topic) and the ordinary request data — your IP address and the app's name and version (“ZAPP/1.0.0 (Android)”) — and no identifier of you. Asking AskZ to write a topic's Smart Notes for the first time, works exactly as on the website (section 3e): the request carries only the topic's outline, never anything about you. The Paper Builder is for teachers, as on the website (section 3l): a teacher's access request, its status and messages are kept with the account, and when an approved teacher has AskZ write questions the request carries the paper settings and the account's sign-in token. A class link sat in the app can send your result to the teacher exactly as on the website (section 3l): when you are signed in and press Send my result to my teacher, the app sends the name you type, your marks per question and part, your total and the time you took — never your answers — and you can withdraw it; without signing in the result stays on the phone. A teacher's class results, class lists and the School tab stay on the website for now. Strict exams are set and marked by the teacher on the website, and a student can sit one in the app exactly as on the website (section 3l): signed in only, the app sends the same things — the name the teacher sees, the answers as they are written (kept on the phone too, under the exam's own ids, never synced), at Lock or hand-in each answered part's typed text and one picture of the part, a random id for this installation of the app (kept in the app's storage; the server keeps only a one-way hash of it, so the exam stays on one device) and a check-in every 20 seconds. The app's flags are fewer than the website's: when the app went into the background and for how long, a copy attempt, and going offline — the kind of event and its time only. While the exam is open the app blocks copy and paste in its answer boxes and keeps the screen on; it never uses the camera, microphone or screen recording. The app also shows the Examiner Agent's extra quiz questions, flashcards and examiner warnings (section 3d) and, like the website, sends the anonymous "missed" counts — only the topic and whether it was a quiz or a flashcard, nothing about you or your phone. Joining a class (an invitation or a join code), inviting a parent and the parent view work in the app exactly as on the website (section 3l). PDFs, PowerPoint and Word files, calendar files and diagram images you download are built on the phone and handed to Android's share sheet (or the clipboard, if you choose Copy); where they go from there is up to you.
- Optional account (Settings → Account) works exactly as on the website (section 3l): your email address and a six-digit code, then your progress document is synced, and so is what you write on past-paper questions (as on the website, section 3l: one record per question, the newest copy wins, a cleared question is cleared everywhere, 256 KB per question and 5 MB / 2,000 questions per account). The app also sends a random identifier it created when it was installed (not a hardware, advertising or phone identifier) so your XP can be counted per device. The sign-in token is kept in the app's private storage and excluded from backups; it is not encrypted beyond Android's app sandbox, so on a rooted phone another app could read it — the most it gives access to is your progress, and Sign out or Delete my account revokes it. Delete my account in Settings erases your server copy immediately.
- Discussion Corners are built into the app and talk to the same AskZ server as the website (section 3n): reading the open corners needs no account; posting, voting, reacting, reporting, blocking and class corners need the optional account and a nickname. What you post, your nickname and your safety records are stored and kept exactly as section 3n says; nothing about corners is stored on the phone except the screen you were on. While a corner is open the app keeps one connection to the server and sends your account token over it, so the server knows who is posting and can charge an @AskZ answer to your own daily allowance. There are no private messages. "Run" on a code block opens the code in the app's own lab, on the phone.
- CS Games open the website's game pages (cswithzak.com/games) inside the app, so they need an internet connection and behave exactly as on the website (section 3m): a random player id and a generated nickname are kept in the web view's own storage and sent to our server only when you play online or submit a leaderboard score. The only things the game page passes to the app are the XP you earned (added to your progress in the app) and, when you press Ask AskZ to coach me, a prompt that the app puts into the AskZ message box — nothing is sent until you press Send yourself.
- Photos and files in AskZ (signed-in students — the app asks a guest to sign in first, because the automatic bot check that lets guests upload on the website (section 3d) runs only in a web browser). In the app's AskZ you can add a photo from your gallery, take one, or pick a document (PDF, Word, PowerPoint, Excel, OpenDocument, notebook, web page, RTF, CSV, code or text). It works exactly as on the website (section 3d): the app makes a photo smaller, the AskZ server reads it into text (a photo, and a document's scanned pages or pictures, once through our AI model provider; a document's own text without any model), the photo or file itself is not stored, and only its text is kept for 24 hours for that chat, under your account. On Android the photo is taken by your phone's own camera app, so ZAPP still holds no camera permission; on iPhone, iOS asks for camera access the first time you take a photo for AskZ. Read-aloud uses the phone's own voices; nothing is sent.
- AskZ in the app works as on the website (section 3d): your message, a random conversation ID, the course/topic/page you asked from and a tag saying which app it came from are sent to the AskZ server; the conversation is kept there for 90 days. A copy is saved in the app's private storage on your phone so you can search and reopen it (never uploaded; turn it off, auto-delete or delete everything in AskZ settings). Text you share to ZAPP from another app, select and send with “Ask Z”, or that arrives in a link is only placed in the message box — nothing is sent until you tap Send. Every answer is labelled as AI; long-press it to copy it or Report this answer, which opens the in-app report form described in section 3d (reason, optional note, Send report; Email instead opens your own email app and sends nothing unless you send that email). Smart Notes, assignments, AskZ-written questions and AI marks have the same Report button.
- Voice input. The microphone button opens your phone's own speech-recognition app (for example Google's). ZAPP holds no microphone permission and never receives the audio — only the text that app returns, which goes into the message box for you to check. The speech app handles the audio under its provider's privacy policy.
- Examiner Agent. Quizzes, flashcards and topic screens in ZAPP show the same checked extra questions, cards and “What examiners say” warnings as the website (fetched from the AskZ server; the request carries nothing about you). A wrong quiz answer or a flashcard marked “again” sends the same anonymous count as on the website — only the topic and whether it was a quiz or a flashcard, in small batches, never the question, your answer, your account or any id (section 3d).
- Classes with ZAK. The Tuition screen lists ZAK's upcoming classes (from the app's content and the AskZ server's public calendar — the request carries nothing about you). Close to your exams the Dashboard may show one dismissable class card; Not now keeps a date on the phone for 30 days and nothing is sent. Its button only opens WhatsApp with a message you choose to send to the admissions team.
- Past-paper questions you write on. In the exam bank, a question can open as the real printed paper. The page images and their layout come from cswithzak.com (the request carries only the question's name) and are kept on the phone so the question works offline next time. What you type, tick, draw and circle on it, the circuits and K-map loops you build and the marks you give yourself are saved in the app's private storage (not backed up) — and, only if you are signed in to an account, a copy is sent to the AskZ server a few seconds after you change it so your other devices (the website included) show the same work. Signing out leaves it on the phone; Delete my account removes the account's copy. Most answers are marked on the phone. Written answers, and drawings the app can't read exactly, are marked by AskZ only when you press Mark (or Ask AskZ to mark this part): then the app sends, for each of those parts, your typed answer and one picture of that question part with your ink and typing on it, together with its mark scheme and examiner comment (and, for a part answered in its code lab, what happened when that code last ran — its errors and output; the code itself runs on the phone), to the AskZ server — exactly as on the website (section 3): used for that request and not stored, and nothing identifies you in them unless you write your name on the paper. AskZ-written, model and assignment questions open as a typeset paper too: what you write on them is kept and synced the same way, and Mark sends only your typed answers with each part's question text and mark scheme — no picture.
- Today's question (Home and the Today screen) works as on the website (section 3c): the day's question list is downloaded from cswithzak.com once a day and kept for offline use; when you press Done — see how others did only your mark, the day, your level and the question's reference go to the AskZ server, never your account, name or answer. Your streak and last few results stay on the phone.
- How am I doing? works as on the website (section 3c): once a day the app sends the week, your level, five rounded ranges about your own week and a weekly key made on the phone — never your account, name or answers — and shows how your week compares. Turn it off in Settings.
- Snap a question. The photo is taken by your phone's own camera app (ZAPP holds no camera permission) or picked from your photos. The text is read on the phone by Google's ML Kit text recognition, whose model Google Play services delivers, and matched against the exam-bank topics already downloaded to the phone. The photo is deleted from the app's storage as soon as it has been read, and no image is ever uploaded. Only if you tap Ask Z about this question is the recognised text (not the photo) sent to AskZ as a normal message.
- Python runs on the phone; the runtime is downloaded from jsDelivr the first time (section 3k). Java and VB.NET run on the phone too: the first time you open each playground, the app downloads the same compiler files the website uses (about 8 MB for Java, 23 MB for VB.NET) from cswithzak.com, checks them and keeps them in its private storage, so they work offline afterwards; your code, its input and its output never leave the phone. Video lectures play in YouTube's privacy-enhanced player (youtube-nocookie.com) inside the app, loaded only when you press play, under Google's privacy policy. Past papers open in your browser or are saved to your Downloads folder straight from PapaCambridge or BestExamHelp. Community and blog. The Community screen and the community card on Home fetch ZAK's public follower counts from the AskZ server (nothing about you is sent). The blog strip loads each post's cover picture from Blogger's image server (Google) and opens the post in an in-app browser tab; the study-group, Page, Discord and YouTube buttons simply open that network's own app or site, whose own privacy policy then applies.
- Notifications, the home-screen widget and the Quick Settings tile. Reminders are off until you turn them on, and on Android 13 and later Android then asks for the notification permission. The planner's Pomodoro timer, when you start it, keeps its end time on the phone and shows one notification when the focus block or break ends (Android asks for the notification permission the first time you start it). All of these are scheduled on the phone; we do not run a push-notification service and send no marketing. The widget and tile read only what is on the phone.
- Permissions: internet access, and notifications (asked only if you turn reminders on or start the Pomodoro timer). Android also lists a few permissions that Google's own components need to run scheduled reminders reliably (keep the phone awake briefly, see whether there is a network, restart reminders after a reboot); none of them gives access to your data. No camera, microphone, location, contacts or files permission.
- Usage analytics (Google Analytics), under the same rules as the website. In the EU/EEA, the United Kingdom and Switzerland (and whenever the app cannot tell which country you are in) nothing is sent until you tap Allow on the one-time “Help improve ZAPP?” prompt. Elsewhere it is on from the first launch. Either way Settings → Privacy → Usage analytics turns it off at any time. To decide which rule applies, the app asks cswithzak.com once which country your connection comes from (nothing about that request is stored). When on, the app sends only the name of each screen you open (for example “Topic” or “SqlLab”, never what is on it), a random analytics ID (not your account, progress or device ID — a new one is made if you turn analytics off and on again), a session number, the app version and “android” or “ios”. It goes to our own server at cswithzak.com, which passes it to Google Analytics without your IP address — only the country — and refuses it from a consent country unless you said yes. Nothing you type, no email, no progress, no advertising ID, and it is never used for ads or to track you across other apps. Google keeps these statistics for up to 14 months.
- No ads, no crash reporting, no third-party tracking or analytics SDKs. If you let your phone share usage and diagnostics with Google, Google Play may show us aggregated crash and performance statistics (Android vitals); that choice is in your Android settings, not in the app. When ZAPP starts it asks the Google Play app on your phone whether a newer version exists (Google's in-app updates); that check stays between your phone and Google Play and tells us nothing.
- On iPhone and iPad. Everything above applies, with these differences. Snap: the photo is taken inside ZAPP with iOS's camera screen (iOS asks for camera access the first time you tap Snap) or picked with the iOS photo picker (which shares only the photo you choose); the text is read on the device by Apple's Vision framework, the photo is kept only in memory while it is read and is never saved or uploaded. Voice input: when you tap the microphone iOS asks for microphone and speech-recognition access; the audio is turned into text by Apple's speech recognition — on the device where your iPhone or iPad supports it, otherwise by Apple's servers under Apple's privacy policy — and we never receive the audio, only the text placed in the message box. Sign-in token: kept in the iOS Keychain. Backup: your progress and settings are part of the app's data, which iCloud or computer backups may include under Apple's policy; we never see those copies. Add to calendar opens iOS's own event editor and the app reads nothing from your calendar. Reminders and the Pomodoro alert are local notifications, and iOS asks for permission only when you turn reminders on or start the timer. Downloads go to the iOS share sheet (Save to Files, AirDrop, Print…) and Copy puts a diagram on the clipboard. Updates come through the App Store; the app does no update check of its own. Apple may show us aggregated crash and usage statistics if you chose to share analytics with app developers in your iOS settings. The app's own usage analytics (above) work the same as on Android and use no advertising identifier (IDFA). Permissions on iOS: camera, photos (only the ones you pick), microphone and speech recognition, each asked the first time you use that feature, and notifications if you turn reminders on or start the Pomodoro timer. No location, contacts or tracking; ZAPP does not ask to track you (App Tracking Transparency) because it does not track.
The Google Play Data safety section and the App Store privacy label for ZAPP are written from this section.
10. Your rights
Whatever country you are in, you can ask us to:
- access the personal data we hold about you and get a copy;
- correct it if it is wrong;
- delete it (“right to be forgotten”);
- restrict or object to how we use it, including objecting to any processing based on legitimate interests;
- port it — receive it in a common machine-readable format;
- object or withdraw consent at any time — turn analytics off from “Cookie settings” in the footer (in the app: Settings → Privacy), or delete your account — without affecting what was done before;
- not be subject to a decision based solely on automated processing that has legal or similarly significant effects on you — we make no such decisions; AskZ's answers are study help, not decisions about you.
To exercise a right, email privacy@cswithzak.com with “Privacy request” in the subject. Tell us what you want and, for AskZ conversations, the approximate date/time and the first message, since conversations are not tied to your name. We will respond within 30 days (we may need to verify you are who you say you are, and we may extend by a further 30 days for complex requests, telling you why). Requests are free unless they are manifestly unfounded or excessive.
If you are in the EU/EEA or the UK, the GDPR / UK GDPR gives you these rights and the right to complain to your national supervisory authority (for the UK, the ICO). If you are in California, the CCPA/CPRA gives you the rights to know, delete, correct and to opt out of “sale” or “sharing” — we do not sell or share personal information as those terms are defined, and we do not use sensitive personal information to infer characteristics. If you are in Pakistan, Article 14 of the Constitution protects your privacy, the Prevention of Electronic Crimes Act 2016 protects you against unauthorised access to and misuse of your data, and we will comply with the Personal Data Protection Act as soon as it is enacted and in force; you can also complain to the Federal Investigation Agency's Cybercrime Wing or, once operating, the National Commission for Personal Data Protection. We will honour these rights for everyone, wherever you are.
11. How we protect data
All traffic to the site and to AskZ is encrypted (HTTPS/TLS). The AskZ server checks that requests come from cswithzak.com, rate-limits abuse and moderates content. Secrets and API keys are held in provider secret stores, not in code. ZAK's admin tools (the Studio: testimonial moderation, teacher requests, paper feedback, topic fixes, the AI budget) open only for his own signed-in account and need a second code from an authenticator app; the remaining admin page sits behind Cloudflare Access with named-user login. Only ZAK, and the admissions administrator for enrolment leads, can see personal data. We do not store payment card data at all — payments are made at centres or through bank transfer/mobile wallets you control.
No system is perfectly secure. If we discover a breach that is likely to put you at risk, we will tell affected people and any regulator we are required to tell without undue delay. Our Security & Responsible Disclosure page explains how to report a vulnerability.
12. Changes to this policy
We will update this policy when the site or ZAPP changes — for example when the app gains a feature that handles personal data, or if we change an AI provider. The date at the top tells you when. Material changes will be flagged on the /legal hub for at least 30 days, and, for tuition students, mentioned in class or on the class WhatsApp group.
13. Contact
Privacy questions, requests and complaints: privacy@cswithzak.com · WhatsApp +92-3-111-222-ZAK · Contact page. We aim to acknowledge within 7 days.


