Updated
Nov 02, 2026
Operator
Tran Hoang Nam

Privacy and cookie policy

What this site measures, who receives the data, and what rights you have.


1. Who collects the data

This website, hoangnam.dev, is run by Tran Hoang Nam. For questions about personal data, write to namtran.personal@gmail.com.

2. When you visit the website

The website is hosted and delivered by Vercel Inc. (USA). Like any web server, when you open a page, technical information is processed to return the content and keep the website secure and reliable, including your IP address, the time, the requested page address, your browser type and operating system. This happens even if you decline cookies. Vercel processes this data under Vercel's own terms and privacy policy. The operational logs visible to us are kept for only 1 hour; Vercel does not publish a specific retention period for technical data inside its infrastructure, and says only that it keeps data for the minimum period necessary.

Article content is stored in a Neon database hosted in Singapore (AWS ap-southeast-1). It holds the article content, the website's settings, running totals of the cookie choices and a short record of each consent decision (section 5). It does not hold the pages you view.

3. Visit measurement (only if you agree)

By default the website uses no measurement tool. Only if you agree does it use Google Analytics 4 to measure how you use the site. You choose each part separately:

  • Visits: turns on Google Analytics 4, which records the pages you view, where you came from, your device and browser type, and your country. According to Google, Google Analytics does not log or store IP addresses. Google sets two cookies, _ga and _ga_[measurement id], which distinguish visitors and sessions.
  • Reading: you scroll to 80% of a page, or read 80% of an article.
  • Interactions: you click share buttons, copy a URL, Markdown or code, click the table of contents, article links, contact links or outside links, or switch language.

"Reading" and "Interactions" only work when you also allow "Visits".

The basis for measurement is your consent. If you do not consent, no measurement tool is loaded and no measurement data is sent.

The website has no user accounts, so we do not link the _ga value or measurement data to any name, email address or account of yours. The only links are the consent record, which ties your _ga value to a random consent id (section 5), and the case where you send us your consent id or _ga value to use your rights (section 10).

4. Purposes

To improve the user experience, we use Google Analytics 4 to see which articles get read and how far, and which buttons and links are used. We then adjust the content and its presentation to make it easier to read and use.

Each purpose below is separate. You agree to or refuse each measurement group independently of the others.

PurposeData involvedWhen it happens, and basis
Return the page to you and keep the website secure and reliableIP address, time, page address, browser, operating system (section 2)Every time you open a page. Basis: needed to return the page to you
Know which pages are opened, where from, on which deviceData of the "Visits" group (section 3)Only if you allow "Visits". Basis: your consent
Know how far articles are readData of the "Reading" groupOnly if you allow "Reading". Basis: your consent
Know which buttons and links are usedData of the "Interactions" groupOnly if you allow "Interactions". Basis: your consent
Know how many people accept or decline cookiesOnly the choice you click, with no identifierWhen you click a choice in the banner. Basis: no personal data is stored, only one number is added
Be able to show what you chose and whenA random consent id, your choice, the time, the version of the banner text, the page language and, once Google Analytics has run, your Google Analytics client id (the number in the _ga cookie). No IP address and no browser signatureWhen you click a choice in the banner, and about once a month while your browser still holds a consent. Basis: so that we can show your choice if you or an authority ask

To run and secure the website, Vercel processes your IP address, the time, the page address, your browser and operating system every time you open a page (section 2). To know how many people accept or decline cookies, we count the choice you click, with no identifier. To be able to show your choice, we also keep a record of it under a random consent id (section 5).

We only use measurement data to improve the website. We commit not to use this data for advertising, not to sell it and not to build profiles of individuals.

To stay within that limit, we have turned off Google signals, have not linked Google Analytics to any advertising service, and have turned off the data sharing settings that let Google use the data for other purposes.

5. Cookies and browser storage

The website does not set cookies of its own. When you agree, Google Analytics sets two cookies, _ga and _ga_[id] (section 3).

The website stores the following in your browser (localStorage). They stay on your device, except the consent id and its receipt (second row), which are sent to our server with each decision:

KeyUsed toKept until
analytics-consentremember your choice in the banneryou clear browser data or change your choice
analytics-consent-idhold your random consent id and the receipt our server gave for it, so later decisions go into the same recordyou clear browser data or choose "delete data"
port:loader-seenremember you saw the loading screen on your first visit, so it is not shown againyou clear browser data

Separately, the fact that someone accepted, declined or saved a custom choice is added to a running total on our server, only to know how many people choose what. This count sets no cookie and sends no identifier.

Consent record. Each time you accept, decline, save, withdraw or delete, our server also adds the decision to a record kept under a random consent id (created in your browser, not derived from you). The record holds: the decision, what you allowed, the time, the version of the banner text, the page language and, once Google Analytics has run, your Google Analytics client id, so that the measurement data can be traced to the choice that allowed it. It holds no IP address and no browser signature. The record is deleted 2 months after it was last written (the same period as Google Analytics data); while your browser still holds a consent it is refreshed about once a month. The consent id is shown in the "cookie" panel so that you can quote it.

The website also uses a service worker, which keeps a copy of its images, code and fonts in your browser cache so later visits load faster. This uses the browser cache (fonts, next-static) and a small browser database (serwist-expiration) to know when to delete old copies. They hold no personal data and there is no offline mode.

If you decline or turn off:

  • "Visits" off: no measurement tool is loaded. The website works as normal.
  • "Reading" or "Interactions" off: the matching events are not sent. The website works as normal.
  • Clearing analytics-consent: the banner asks you again.
  • Clearing port:loader-seen: the loading screen shows again on your next visit.
  • Blocking browser storage: your choice only applies to the page view you are on.

If you decline or have not answered, the banner shows again every time you open the website. Once you agree, the banner shrinks to a small "cookie" button at the bottom right of the page. Click it to change your choices, withdraw your consent, or delete the data on this device (the Google Analytics cookies, your saved choices and the loading-screen flag). Withdrawing consent does not affect processing carried out before. Deleting data on the device does not delete the data already sent to Google, nor the consent record on our server (it expires after 2 months); if you want to ask for either, note the consent id and the _ga value before you delete and see section 10.

6. Who receives the data and transfers abroad

  • Google LLC (USA): receives Google Analytics 4 data, only if you allow it. According to Google, Google Analytics processes data on behalf of its customers and following their instructions.
  • Vercel Inc. (USA): hosts and delivers the website (section 2).

The data in sections 2 and 3 is therefore transferred outside Vietnam. For Google Analytics, the transfer only happens when you consent. For hosting, Vercel processes your IP address to return the page to you.

We may disclose data where required by law.

The website links to outside services, such as LinkedIn, Facebook and Telegram (the share buttons and contact links). When you follow a link, that provider processes your data under its own policy. Please read that policy before using the service.

8. Children

The website is not aimed at children and does not knowingly collect their data. If you are a parent or guardian and believe your child allowed measurement, delete the data on the child's device with the "cookie" button (section 5) and email namtran.personal@gmail.com so we can help.

9. How long we keep it, and how long we process it

Your consent is valid until you change it. Measurement runs while you allow it and stops when you withdraw.

  • Google Analytics 4 event-level and user-level data: 2 months; Google deletes expired data in a monthly process. Aggregated figures in standard reports are not affected by this setting and may be kept longer.
  • Cookie _ga: 2 years. _ga_[id]: 2 years. (Default expiration per Google's documentation.)
  • Operational logs visible to us on Vercel: 1 hour. Other technical data in Vercel's infrastructure: per Vercel's policy, no number of days published.
  • Banner choice and loading-screen flag: stored in your browser until you clear site data.
  • Accept/decline counts: kept as totals, not linked to anyone.
  • Consent record (section 5): 2 months after it was last written.

10. Your rights and how to use them

Under Article 4 of the Law on Personal Data Protection No. 91/2025/QH15 (unofficial English rendering of the Vietnamese text), you have the right to:

  • be informed about the processing of your personal data;
  • agree or disagree, and to request withdrawal of consent;
  • view, correct or request correction of your personal data;
  • request provision, deletion or restriction of processing, and to object to processing.

How to use them:

  • Withdraw consent or delete data on your device: click the "cookie" button at the bottom right of the page (section 5).
  • Other rights: email namtran.personal@gmail.com, saying which right you want to use and for which data. Because we do not identify you by name or email, include your consent id (shown in the "cookie" panel) or the _ga value in your browser so we can find your data. We may ask you to confirm that the value belongs to your browser before we act.

11. Changes

When this text changes, the date at the top changes.

12. Sources

The sources below are published by the state or by the providers. Date read: 2 November 2026.