Privacy Policy
This Privacy Policy explains how CodeMilestone ("CodeMilestone", "we", "us", "our") handles information when you visit our websites (codemilestone.com and codemilestone.netlify.app, the "Site") and when you use the MileStone goal & habit planner application (the "App"). It is written to be read — not skimmed past — because our architecture is genuinely unusual: your planning data never reaches us.
The short version
- Your goals, habits, milestones, check-ins, notes and progress live only in your browser, on your device. We run no database of user content, we cannot see it, access it, sell it, or recover it.
- No account — and inside the App: no analytics, no ad trackers, no tracking cookies. The App itself contains no third-party analytics or advertising code at all.
- Our marketing website currently runs no analytics or advertising trackers either — just the hosting provider’s routine server logs. If we ever introduce measurement tools, we will update this policy first and ask for consent where the law requires it.
- Only three narrow things ever touch our servers: (1) loading the App/Site from our host (standard web logs), (2) a Pro license-key check, and (3) anything you voluntarily submit (an email signup or a support email).
- Payments are handled entirely by Lemon Squeezy, our merchant of record. We never receive or store your card details.
- Because your data stays on your device, protecting and backing it up is in your hands. We cannot restore what we never had.
- By using the Site or the App you consent to this policy.
- Who we are
- Consent & acceptance
- Data that stays on your device
- What touches our servers
- Payments (Lemon Squeezy)
- Third-party services
- What we never do
- Cookies & local storage
- The AI planning feature
- Notifications
- Retention & deletion
- Your rights
- International transfers
- Security
- Data loss & your responsibilities
- Children
- Changes to this policy
- Contact
1. Who we are
CodeMilestone is an independent software studio based in Queensland, Australia. MileStone is our product: a browser-based, installable (PWA) goal and habit planner. For anything in this policy, contact us at info.codemilestone@gmail.com. CodeMilestone is the "data controller" (GDPR) / responsible entity (Australian Privacy Act) for the limited personal information described below.
2. Consent & acceptance
By accessing the Site or using the App, you consent to the collection, use and disclosure of information as described in this Privacy Policy. If you do not agree with any part of it, please do not use the Site or the App.
- Free use requires no account and no personal information. The only data processing involved in free use is the technical minimum described in section 4.1 (loading the App from our host).
- Buying Pro additionally involves Lemon Squeezy processing your payment details (section 5) and our license-verification service processing your license key (section 4.2). Completing a purchase constitutes consent to that processing — it is also technically necessary to deliver what you bought.
- Email signup and support email are processed on the basis of your consent, given by submitting the form or sending the email. You can withdraw it at any time (sections 4.3, 4.4, 11).
- Withdrawing consent: stop using the Site/App, clear your browser data for it, and — for anything server-side (license records, email-list entries, support correspondence) — email us and we will delete what we are not legally required to keep (section 11).
Where the GDPR or similar laws apply, our lawful bases are: performance of a contract (delivering the App and verifying Pro licenses), legitimate interests (hosting, security, fraud and refund-abuse prevention, standard server logs), and consent (email updates, support correspondence).
3. Data that stays on your device — and never reaches us
Everything you create in MileStone is stored in your browser's local storage, on your device:
- Goals, milestones, steps, deadlines, hour estimates, budgets and spend logs
- Habits, check-ins, streaks, skips, notes and reflections
- Todos, categories, settings, theme, and your reminder preferences
- Your Pro license key and its activation details, if you have one
- Any backup files you export (saved wherever you choose to save them)
We keep no copy of any of this. There is no server-side database of user content, no sync service, and no way for us to read, retrieve or reconstruct your planning data. This is a deliberate architectural choice, not just a policy promise. The flip side is equally important: we also cannot recover this data for you (see section 15).
4. What touches our servers (the complete list)
4.1 Loading the App and Site — hosting logs
MileStone is delivered from the web, so opening the Site or the App sends a standard web request to our hosting provider, Netlify, Inc. (USA). Like effectively every website, this creates routine server access logs that can include your IP address, browser type (user agent), requested page and timestamp. These logs are generated and held by Netlify under its own privacy policy and retention schedule; we use them, if at all, only for security and diagnosing outages. We run no additional analytics on top of them — no page-view tracking, no session recording, no fingerprinting.
4.2 Pro license verification
If you activate MileStone Pro, the App contacts our license endpoint (a Netlify serverless function) which in turn checks your key with Lemon Squeezy. Specifically:
- What is sent: your license key, a device-instance identifier, and the label "MileStone". Nothing else — none of your goals or habits ever accompany the request.
- What comes back: whether the key is valid, its type (monthly / 3-month / lifetime), its expiry, and the purchase email Lemon Squeezy holds for it — which is displayed and stored only on your device.
- What we log: a masked version of the key (most characters removed) and the validation result. We deliberately do not log full license keys.
- What we store: if a purchase is refunded, disputed or a subscription lapses, Lemon Squeezy notifies our webhook and we record that key in a small "revoked licenses" list (key, reason, timestamp) so it stops unlocking Pro. This list contains no name, email or usage data.
4.3 Email signup ("Follow the build")
The Site previously offered an email-signup form; it was removed in July 2026. If you signed up while it existed, your address is stored by Netlify (Netlify Forms) and is used only for occasional product updates from the maker. Every email includes an unsubscribe link, and you can request deletion at any time (section 11). We never buy, sell, rent or share email lists.
4.4 Support email
If you email info.codemilestone@gmail.com, your message (and address) is processed by Google's Gmail service and kept as ordinary correspondence so we can help you and keep records of refund/billing issues.
4.5 Site analytics & advertising — none today
We currently run no analytics or advertising tools at all — not on the Site and not in the App. No Google Analytics, no Meta Pixel, no session recording, no fingerprinting, and therefore no cookie-consent banner (there is nothing to consent to). This is technically enforced as well as promised: the Site’s Content-Security-Policy blocks third-party scripts from loading.
If we ever introduce visitor measurement on the marketing Site, three commitments apply in advance: (1) it would run on marketing pages only — never inside the App, so it could never observe your goals or habits; (2) we would update this policy first, and where consent is legally required (for example in the EU/UK) such tools would load only after you accept them; (3) declining would keep the Site fully usable.
That is the entire list. If it is not in 4.1–4.5, it does not happen.
5. Payments — Lemon Squeezy is the merchant of record
All purchases are processed by Lemon Squeezy, LLC (USA), which acts as the merchant of record. That means Lemon Squeezy — not CodeMilestone — is the legal seller for payment purposes: it processes your payment, collects and remits applicable sales tax/VAT/GST, handles PCI compliance, issues receipts, and manages refunds and chargebacks through its payment processors (such as Stripe and PayPal).
- Lemon Squeezy collects from you: name, email address, billing address/country, tax information where applicable, and payment details. This is governed by the Lemon Squeezy Privacy Policy and Buyer Terms.
- We receive from Lemon Squeezy: order metadata — your purchase email, the product/variant bought, order status, and the license key it generated. We never receive or store your card number or payment credentials.
6. Third-party services we rely on
| Service | Role | Data involved | Their policy |
|---|---|---|---|
| Lemon Squeezy | Merchant of record — checkout, billing, tax, refunds, license keys | Name, email, billing address, payment details (held by them, not us) | lemonsqueezy.com/privacy |
| Netlify | Hosting, serverless license functions, form submissions, revoked-key store | Standard access logs (IP, user agent); form emails; masked license logs | netlify.com/privacy |
| Google Fonts | Typefaces on our marketing pages only (not inside the App) | Your IP address is disclosed to Google when the font files load | policies.google.com/privacy |
| Google (Gmail) | Our support mailbox | Emails you choose to send us | policies.google.com/privacy |
Each provider processes data under its own privacy policy and safeguards. We choose them deliberately for narrow roles; none of them receives your planning data, because it never leaves your device.
7. What we never do
- No selling, renting or trading of personal information — to anyone, ever.
- No data brokers, no selling of audiences, no ad code at all — the Site’s security policy technically blocks third-party scripts.
- Inside the App: no analytics of any kind, no session replay, no heatmaps, no fingerprinting, no advertising code — ever.
- No profiling or automated decision-making with legal or similar effects.
- No reading, mining or "improving our models" on your goals and habits — we cannot; we do not have them.
8. Cookies & local storage
Neither the App nor the Site sets any tracking or advertising cookies — there are none, so there is no cookie banner. The App uses your browser’s localStorage for strictly functional purposes — storing your planning data, settings, theme and license state so the App works. This data is not transmitted to us. Our Site may set strictly-necessary technical state (for example, remembering that you dismissed a banner, in sessionStorage). Clearing your browser's site data removes all of it — including, note well, your planning data (see section 15).
9. The AI planning feature — you choose what to share
MileStone's "Plan with AI" and "Update with AI" features work by copy and paste that you perform yourself: the App generates a prompt, you paste it into an AI assistant you choose and are logged into (such as ChatGPT, Claude or Gemini), and you paste the AI's reply back. MileStone never transmits anything to any AI provider. Whatever you choose to paste into a third-party AI service is shared by you, under that provider's privacy policy and terms — please review them. If your goals contain sensitive information, consider editing the prompt before pasting. We accept no responsibility for how a third-party AI service you choose to use handles data you give it.
10. Notifications
If you enable reminders, MileStone uses your browser's local notification permission. Reminder scheduling and content are computed and displayed on your device; no push-notification server of ours is involved, and your reminder settings are not sent to us. You can revoke the permission in your browser or device settings at any time.
11. Retention & deletion
- Your planning data: retained by you, on your device, for as long as you keep it. Delete it any time via Settings → Clear All Data, or by clearing your browser's site data. We hold no copy to delete.
- License records: order metadata and license keys (including the revoked-key list) are kept for as long as needed to operate license enforcement and to meet tax, accounting and fraud/chargeback obligations, then deleted. Lemon Squeezy retains its own transaction records under its policy and legal obligations.
- Email list: until you unsubscribe (one click in any email) or ask us to delete you, which we will do promptly.
- Support correspondence: kept as long as reasonably necessary for support history and billing-dispute records, then deleted on request where the law allows.
- Hosting logs: generated and rotated by Netlify on its standard schedule; we do not separately archive them.
To exercise any deletion request, email info.codemilestone@gmail.com from the relevant address. We will act within 30 days.
12. Your rights
Australia: we handle personal information consistently with the Australian Privacy Principles under the Privacy Act 1988 (Cth). You may request access to or correction of personal information we hold, and complain to us first; if unresolved, you may complain to the Office of the Australian Information Commissioner (oaic.gov.au).
EU/UK (GDPR/UK GDPR): you have the rights of access, rectification, erasure, restriction, portability and objection, and the right to withdraw consent at any time without affecting prior processing. You may lodge a complaint with your local supervisory authority. Note that for your planning data these rights are satisfied by design — you hold the only copy.
California (CCPA/CPRA): we do not sell or share personal information for money or cross-context behavioural advertising — we run no advertising tools at all. We collect only the limited categories described above (identifiers you volunteer; internet activity in routine server logs). You may exercise access/deletion rights via the contact below; we will not discriminate against you for doing so.
13. International transfers
Our service providers (Netlify, Lemon Squeezy, Google) are U.S.-based and may process data in the United States and other countries. Where required, transfers are protected by these providers' data processing agreements and recognised safeguards such as Standard Contractual Clauses. By using the Site or App you acknowledge this processing location.
14. Security
- All connections to the Site, App and license endpoint use HTTPS/TLS.
- Payment webhooks are cryptographically signed and verified (HMAC-SHA256) before we act on them.
- License keys are masked in our logs; we do not store full keys outside the narrow revocation list.
- The single most effective security measure is architectural: we minimise what exists to be breached. A compromise of our infrastructure cannot expose goals, habits or personal content that was never sent to us.
No method of transmission or storage is 100% secure, and we cannot guarantee absolute security of the limited data described in sections 4–5; we will comply with applicable data-breach notification laws (including the Australian Notifiable Data Breaches scheme) should an eligible breach of data we actually hold occur.
15. Data loss & your responsibilities — please read this one
The privacy benefit of on-device storage comes with a duty of care that sits with you, and — to the maximum extent permitted by applicable law — CodeMilestone is not liable for loss of, damage to, or disclosure of data that occurs on your device or through services we do not control. In particular:
- Clearing browser data, uninstalling, browser resets, OS "free up space" cleaners, private/incognito windows, or switching devices without exporting first will permanently destroy your planning data. We cannot restore it — we never had it. Use Settings → Export Data regularly and keep the file somewhere safe.
- Device security is yours: anyone with access to your unlocked device or browser profile can read your MileStone data. Use device locks; be careful on shared computers.
- Export files are yours: a backup file contains your full planning data in readable form. Store and share it as carefully as you would a diary.
- Third-party services (your browser vendor, your device manufacturer, Lemon Squeezy, Netlify, Google, any AI provider you paste content into) operate under their own policies; we are not responsible for their acts or omissions to the extent the law permits us to exclude such responsibility.
Nothing in this policy excludes, restricts or modifies rights or guarantees that cannot lawfully be excluded — including your rights as a consumer under the Australian Consumer Law and any non-waivable rights under the GDPR or other applicable law. Our Terms of Service contain the full liability provisions that apply to the App.
16. Children
The Site and App are not directed at children under 16, and we do not knowingly collect personal information from them. Since the App requires no account and stores content locally, we generally receive no information from any user regardless of age; if you believe a child has nonetheless provided us personal information (for example via email), contact us and we will delete it.
17. Changes to this policy
We may update this policy as MileStone evolves — for example if we add an email provider or new infrastructure. The "Last updated" date at the top will change, and for material changes we will post a notice on the Site. Continued use of the Site or App after changes take effect constitutes acceptance of the updated policy. Earlier versions are available on request.
18. Contact
Privacy questions, access/deletion requests, complaints:
CodeMilestone · Queensland, Australia
info.codemilestone@gmail.com
We aim to respond within 7 days and to resolve any privacy complaint within 30 days.