Drizzle
Drizzle

Proxy & IP Handling Improvements

IP Detection X-Forwarded-For → fallback CF-Connecting-IP

Proxy Support Still evaluating ideal long-term solutions (not 100% happy yet).

Current basic version: proxy requests to collector via your domain/server. Serves as first-party traffic → bypasses most ad blockers. Keeps data accurate via forwarded headers.

Required headers (pass unchanged from client, via trusted proxy):

  • X-Forwarded-For – client IP (required for deduplication)

  • x-client-country – country code

  • x-client-region – region/state

  • x-client-city – city

  • User-Agent – browser/OS string

Billing & UI Update

Stripe to Paddle Migration

We’ve transitioned our payment infrastructure to Paddle for all new subscriptions while maintaining Stripe for our legacy users.

Why this matters: Global VAT and sales tax compliance is complex. Using Paddle as our Merchant of Record automates taxes and streamlines checkout for all users.

How it works

  • New Users: All subscriptions started from December 2025 onwards are processed via Paddle.

  • Legacy Users: If you joined before December 2025, your billing remains securely handled via Stripe.

Dark Mode Implementation

It’s finally here. Dark Mode is fully implemented and ready to roll. A dark interface reduces eye strain during late-night sessions and makes us richer. Yes, we also aware about tutorials online showing you how to "force dark mode". We see you. We respect the hustle.

HTML Attributes That Work Everywhere

We’ve standardized our tracker’s HTML attributes to improve compatibility across frameworks.

Why this matters

Previously, we used the data-s:event format — which worked fine in plain HTML, but caused issues in frameworks with JSX markup that don’t support colons in attribute names.

What changed

We’ve replaced data-s:event with a more universal data-s:event syntax.
It now works seamlessly across all major frameworks and continues to function the same way in plain HTML.

Setting up analytics just got easier

We’ve added a built-in Tracker Integration Check Modal that helps you verify everything is working correctly during local development. It’s available in both the NPM package and the CDN script.

Why this matters

Integrating the tracker used to be a bit of a guessing game — you’d install the script, trigger some events, and hope they were sent.
Now, you can confirm it instantly from your browser.

How it works
  • The modal appears only in local development.

  • It activates when you’re running on localhost and have either:

    • the trackLocalhostAs flag set (NPM package), or

    • the data-debug attribute on the CDN script.

  • It confirms when the tracker is successfully loaded.

  • It also shows all events being sent — so you can verify your setup in real time.