https://github.com/gnh1201/neverlost
A universal user tracking tool that can be used across various customer support scenarios.
https://github.com/gnh1201/neverlost
naver naver-blog naver-cafe tracking-api user-tracking
Last synced: 19 days ago
JSON representation
A universal user tracking tool that can be used across various customer support scenarios.
- Host: GitHub
- URL: https://github.com/gnh1201/neverlost
- Owner: gnh1201
- License: mit
- Created: 2026-02-25T08:47:40.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-03-09T01:32:17.000Z (about 2 months ago)
- Last Synced: 2026-03-09T06:47:45.354Z (about 2 months ago)
- Topics: naver, naver-blog, naver-cafe, tracking-api, user-tracking
- Language: TypeScript
- Homepage: https://catswords.social/@catswords_oss
- Size: 133 KB
- Stars: 25
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# neverlost
[](https://discord.gg/exPsSYpQfJ?utm_source=catswords)
A universal user tracking tool that can be used across various customer support scenarios.
[English](README.md) | [한국어](README_KO.md)
## Background
Originally implemented in 2020 and ported to Cloudflare Workers in February 2026, it has been expanded into a more versatile and broadly compatible user tracking tool. The following technologies are used:
* Cloudflare Workers (Serverless)
* Cloudflare D1 (Database)
* Cloudflare R2 (Object Storage)
The service is already deployed, so you can test it immediately using the `client.py` file without any additional installation process.
## How to Use
### Installation
Copy the tag below and paste it anywhere inside your HTML document.
```html
```
The filename without the extension (e.g., `anonymous`) becomes the tracking code.
You may replace it with other tags such as `img` if preferred.
---
### Checking Results
Run the `client.py` file and enter the tracking code (e.g., `anonymous`) to retrieve the results.
```cmd
>python client.py
Enter code (required): anonymous
=== Log Count ===
{
"ok": true,
"code": "anonymous",
"count": 1
}
=== Recent Logs ===
{
"ok": true,
"code": "anonymous",
"limit": 100,
"offset": 0,
"count": 1,
"items": [
{
"id": 16,
"ts_iso": "",
"ts_ms": "",
"method": "GET",
"url": "https://neverlost.catswords.org/marker/anonymous.png",
"pathname": "/marker/anonymous.png",
"code": "anonymous",
"ext": "png",
"client_ip": "",
"client_ip_hash": "",
"country": "KR",
"colo": "NRT",
"asn": 9318,
"city": "Seoul",
"region": "Seoul",
"timezone": "Asia/Seoul",
"http_protocol": "HTTP/3",
"tls_version": "TLSv1.3",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Edg/145.0.0.0",
"accept_language": "ko,en;q=0.9,en-US;q=0.8",
"referer": null,
"cf_json": "{\"httpProtocol\":\"HTTP/3\",\"clientAcceptEncoding\":\"gzip, deflate, br\",\"requestPriority\":\"\",\"edgeRequestKeepAliveStatus\":1,\"requestHeaderNames\":{},\"clientTcpRtt\":0,\"colo\":\"NRT\",\"asn\":9318,\"asOrganization\":\"\",\"country\":\"KR\",\"isEUCountry\":false,\"city\":\"Seoul\",\"continent\":\"AS\",\"region\":\"Seoul\",\"regionCode\":\"11\",\"timezone\":\"Asia/Seoul\",\"longitude\":\"\",\"latitude\":\"\",\"postalCode\":\"\",\"tlsVersion\":\"TLSv1.3\",\"tlsCipher\":\"AEAD-AES128-GCM-SHA256\",\"tlsClientRandom\":\"RZ6UiO0URug6YOABWyoxmU2Pq7xYrXTrKmoeOy2gT2A=\",\"tlsClientCiphersSha1\":\"3HTt3+R/6BL3zeALJDSq0pR1yOQ=\",\"tlsClientExtensionsSha1\":\"qtcZWa2tbiHlVolyrp1/rLClHAU=\",\"tlsClientExtensionsSha1Le\":\"\",\"tlsClientHelloLength\":\"1755\",\"tlsClientAuth\":{\"certPresented\":\"0\",\"certVerified\":\"NONE\",\"certRevoked\":\"0\",\"certIssuerDN\":\"\",\"certSubjectDN\":\"\",\"certIssuerDNRFC2253\":\"\",\"certSubjectDNRFC2253\":\"\",\"certIssuerDNLegacy\":\"\",\"certSubjectDNLegacy\":\"\",\"certSerial\":\"\",\"certIssuerSerial\":\"\",\"certSKI\":\"\",\"certIssuerSKI\":\"\",\"certFingerprintSHA1\":\"\",\"certFingerprintSHA256\":\"\",\"certNotBefore\":\"\",\"certNotAfter\":\"\"},\"verifiedBotCategory\":\"\"}",
"upstream_url": "",
"upstream_ok": 1,
"upstream_status": 200,
"upstream_error": null
}
]
}
```
## Using It on the blogs
### Using the Custom Widget
You can insert the tracking code using the custom widget.

---
After installation, a stamp-style image will appear as shown below, allowing you to track the visitor’s real external IP and web browser information.

## Using It on the forums
### Using the WYSIWYG editor
You can insert the tracking code using the HTML editing feature of the WYSIWYG editor.

---
After installation, a stamp-style image will appear as shown below, allowing you to track the visitor’s real external IP and web browser information.

## Notes
This content does not involve exploiting any vulnerabilities.
In cases used as examples, the related service providers have confirmed that the behavior is a feature, not a bug.
## Contact
* oss@catswords.re.kr
* https://discord.com/invite/exPsSYpQfJ