Changelog

What we shipped, and when.

A running log of new features, improvements, and fixes across the GetFluxly platform: Console, SDK, and HTTP API.

June 16, 2026
Feature

Surfaces, project modes, and six SDKs.

GetFluxly v0.2

This release ships multi-surface project tracking, live/test project modes, a custom analytics time-range picker, smarter onboarding defaults, and official client libraries for six platforms.

Every item below is live in the Console and the HTTP API.

June 16, 2026
Feature

Plans and billing.

@getfluxly/console v0.19.0

GetFluxly now has paid plans. Subscribe via Dodo Payments, start a 14-day trial that grants Growth-level access with no credit card required, and manage everything from the new Plan and billing page in account settings. Live usage meters show your consumption against each plan limit as you go.

June 15, 2026
Feature

Surfaces: track multiple properties under one project.

@getfluxly/console v0.18.9

A project can now contain multiple surfaces. Each surface gets its own SDK API keys, its own scoped analytics view, and its own default event properties that the ingest pipeline merges automatically. A contextual switcher in the Console header lets you move between surfaces without leaving the page.

  • Per-surface API keys: generate and revoke keys scoped to a single surface without touching the keys for other surfaces.
  • Analytics filter: scope any dashboard to one surface or select All surfaces for a rolled-up project view.
  • Default event properties: set key/value pairs at the surface level and the ingest pipeline merges them into every event that arrives on that surface.
June 15, 2026
Fix

Security hardening.

@getfluxly/console v0.18.9

A focused security pass covering several surface areas identified during a pre-launch audit.

  • GDPR profile erasure: completed the right-to-erasure flow so all personal data is purged on request.
  • Closed a stored XSS vulnerability in the email template editor.
  • Added an OTP brute-force ceiling on passwordless sign-in to limit enumeration attempts.
  • Enforced per-IP edge rate limits on ingest and auth endpoints.
  • Shipped a Safari self-heal: a stale JS chunk after a deploy no longer strands open tabs in a crash loop.
June 14, 2026
Feature

Live vs. test project mode.

@getfluxly/console v0.18.8

Projects now carry an explicit mode: live or test. Switching modes requires confirming a modal dialog so accidental flips are prevented. Test-mode events are stored separately and do not affect live analytics or automation triggers.

June 14, 2026
Feature

Channel attribution.

@getfluxly/console v0.18.8

Break any funnel down by acquisition source and see revenue attributed by channel. Last-touch attribution is the default. Channel classification reuses the same classify_channel logic applied at ingest so the breakdown is consistent across every analytics view.

June 13, 2026
Improvement

Analytics: custom date-range picker.

@getfluxly/console v0.18.7

Every analytics dashboard now accepts a custom date range in addition to the built-in presets. Pick any start and end date to scope funnels, retention, and event counts to the window that matters for your analysis.

June 13, 2026
Feature

Product Analytics: funnels and retention.

@getfluxly/console v0.18.7

Build multi-step conversion funnels and track retention cohorts, now grouped together under a dedicated Product Analytics section. Define each funnel step by event name and optional property filters, then view drop-off at every stage. Retention cohorts show return rates by day and week for any anchor event.

June 12, 2026
Improvement

Smarter onboarding: default surface and first SDK key created automatically.

@getfluxly/console v0.18.6

New projects now seed a default surface during onboarding and bind the first SDK key to it automatically. You reach the Console with a working key already in place rather than needing to create the surface and key manually before your first event arrives.

June 12, 2026
Improvement

Email editor: compliance footer preview.

@getfluxly/console v0.18.6

The email editor now renders the auto-appended compliance footer inline so you see exactly what recipients will see before you send. Sender details, such as your company address and unsubscribe link text, can be configured without leaving the editor.

June 11, 2026
Feature

Cinematic onboarding.

@getfluxly/console v0.18.5

New accounts now go through a guided post-auth onboarding flow that captures intent and configures the project around it. An intent-aware setup hub in the Console surfaces the right next steps for your use case, and a sidebar setup-progress rail tracks completion of your first-run checklist.

June 11, 2026
Feature

Passwordless sign-in.

@getfluxly/console v0.18.5

GetFluxly now uses email-first magic-link sign-in by default. Enter your email, click the link, and you are in. The whole flow completes in the same browser tab with no password required. A one-time code option is available on request for environments where links are blocked.

June 11, 2026
Feature

Official SDKs for six platforms.

@getfluxly/sdk v1.0.0

GetFluxly now ships official client libraries for six platforms. Every library wraps the same HTTP API, handles authentication via the x-gflux-key header, and exposes a consistent track/identify/page surface.

  • JavaScript (browser) via @getfluxly/browser: auto-captures page views, anonymous identity, and consent; exposes window.gflux.
  • React via @getfluxly/react: provider + hooks wrapping the browser SDK with first-class React lifecycle integration.
  • Next.js via @getfluxly/next: SSR-safe provider that handles client/server event routing and App Router compatibility.
  • Node.js via @getfluxly/node: server-side batch ingest with automatic retry and backoff.
  • Python via getfluxly on PyPI: sync and async clients for Django, FastAPI, and script use.
  • Ruby via getfluxly on RubyGems: thread-safe background flush with Rack middleware helpers.
June 10, 2026
Improvement

Workspace timezone.

@getfluxly/console v0.18.4

Dashboards and timestamps across the Console now render in your workspace timezone instead of raw UTC. Set your preferred timezone once in workspace settings and every chart label, event timestamp, and scheduled time reflects it.

June 10, 2026
Feature

Delete your account or a project.

@getfluxly/console v0.18.4

You can now permanently delete an individual project or your entire account from account settings. Before the operation runs, the Console shows a clear summary of which workspaces will be affected. A full cascade cleanup removes all underlying data once confirmed.

June 9, 2026
Feature

Outbound webhooks and Stripe source.

@getfluxly/console v0.18.3

An outbound webhook delivery pipeline lets you forward GetFluxly events to any HTTPS endpoint. Configure retry behavior, inspect delivery logs, and toggle endpoints on or off per event type. A companion Stripe inbound source connects your Stripe account and runs a one-shot historical backfill of customers, subscriptions, and charges so your profile data is complete from day one.

June 9, 2026
Improvement

Durable analytics rollups and write-side hygiene.

@getfluxly/console v0.18.3

Historical analytics queries now hit pre-computed daily rollups instead of scanning raw event rows, so dashboards for longer time windows load significantly faster. Write-side hygiene improvements apply bot detection, spam filtering, and consent-drop counters at ingest time, keeping rollup data clean without a backfill step.

June 9, 2026
Improvement

Active-now map shades by traffic.

@getfluxly/console v0.18.3

The live visitor map on the overview now renders as a choropleth: regions shade darker as active visitor count rises. At a glance you can see where traffic is concentrated right now without reading individual pin counts.

May 19, 2026
Launch

The GetFluxly private beta opens Monday, May 25.

GetFluxly v0.1 beta

After eight months of building in the dark, the GetFluxly private beta opens on Monday, May 25, 2026. Accepted teams get three months of full platform access at no cost, with no card on file. One platform for product events, unified profiles, behavioral segmentation, lifecycle automation, and email send, behind one SDK and one HTTP API.

Full details, FAQ, and the application link are in the launch announcement.

May 15, 2026
Improvement

Browser SDK: transport hardening and security tightening.

@getfluxly/browser v0.4.0

The browser SDK's 0.4.0 release is a focused hardening pass on the pieces that send events and store identity. The headline fix is in the transport: the old delivery path treated any HTTP response as success so long as the network call resolved, which meant 4xx and 5xx responses were silently dropped and never retried. The transport now inspects response.ok and response.status, retries 408/425/429/5xx with jittered exponential backoff, and surfaces non-retryable rejections through a pluggable logger config. No code changes required; affected workspaces will see ingest completeness climb on the next deploy.

  • Keepalive scoped to sendBeacon only. Regular interval flushes used to share the 64KB per-origin keepalive budget and threw under real volume. Standard flushes now use a regular fetch; keepalive is reserved for page-leave delivery via sendBeacon, where it actually matters.
  • Remote config response is validated and clamped. /v1/sdk-config responses are no longer trusted blindly. Unknown fields are dropped, invalid enums are rejected, and sampling is clamped to [0, 100]. A compromised or misconfigured config endpoint cannot flip the SDK's privacy defaults out from under the customer.
  • Anonymous-id cookie is Secure-flagged on HTTPS. The cookie fallback used by the identity layer now sets the Secure attribute whenever the page is served over HTTPS, so it cannot leak over plain HTTP.
  • apiHost validated with new URL(). Non-http(s) protocols are rejected; URLs that already include a path are preserved as-is rather than having endpoint segments concatenated naively. Misconfiguration fails loudly at init instead of corrupting URLs in production.
  • Consent banner now respects strict CSPs. Pass consentBanner.nonce or set <meta name="gflux-csp-nonce"> and the injected <style> tag runs under your CSP without needing style-src: unsafe-inline.
  • SPA navigation deduplicated. pageview and page-leave previously detected route changes independently and raced; both now subscribe to a single shared SPA router notifier. page-leave fires on SPA navigation in addition to visibility and unload.
  • UTM parameters attached to every page_view. Not just session_start.
  • Event buffer is now O(1) on push and eviction. A 10,000 event burst into a 200-cap buffer used to balloon CPU; the new ring buffer keeps both operations constant time.
  • SDK ships with SECURITY.md and a bundle size budget. Vulnerability disclosure path is now documented and the build fails CI if the published bundle drifts past its agreed ceiling.
  • Breaking: gflux.destroy() is now async. Returns a Promise<void>. Fire-and-forget callers still work; callers that need delivery guarantees on teardown can await it to wait for the transport to drain.
May 6, 2026
Feature

Replay automations against any historical profile.

@getfluxly/console v0.18.0

You can now select any profile in the Console, pick an automation, and run it against that user's full event history as if today were a different date. Useful for debugging "why didn't this fire?" and for testing new flows against real cohorts before they go live.

  • New Replay tab on every automation, with simulate mode (no real sends).
  • Diffs the run against what actually happened in production.
  • Replays write to a separate audit log and can be exported as JSON.
POST /v1/automations/auto_8a2/replay { "profile_id": "usr_847", "as_of": "2026-04-01", "mode": "simulate" } → 200 { "would_send": 2, "would_skip": 1, "branches_taken": [...] }
Apr 28, 2026
Improvement

Segment counts now update live as you build.

@getfluxly/console v0.17.4

The segment builder used to recompute counts on save. It now streams an estimated count as you add each filter, with the full count finalising in < 2s for most workspaces. Caching is per-workspace, scoped to the current event window.

  • Estimated count appears in < 200ms for < 10M-event workspaces.
  • Switched the underlying engine from per-query scans to a Bloom-filtered preflight.
  • Existing saved segments unchanged, only the build experience is faster.
Apr 14, 2026
Fix

Identity stitching: fixed a race when identify() runs before init.

@getfluxly/browser v1.4.2

If your app called window.gflux.identify() in the same tick as the SDK boot, the identify could land before the SDK had read its anonymous ID from storage, producing an orphan profile. The SDK now buffers identify calls until init has fully resolved.

  • No code changes required. Affected workspaces will see orphan-rate drop to ~0.
  • If you hit this previously, the Console's Identity links → Resolve tool can merge the orphans.
Apr 7, 2026
Feature

Live event stream in the Console.

@getfluxly/console v0.17.0

The Events page now has a tail-mode that streams new events as they arrive over a long-lived SSE connection. Default page-load still shows the last 24 hours; press L to switch to live tail.

  • Stream is filtered by your current Events filters (event name, profile, anonymous ID, time range).
  • Backpressure-safe: pauses the stream automatically if rendering can't keep up.
  • Keyboard: L tail, P pause, Esc exit.
Mar 31, 2026
Improvement

HTTP Events API: retry guidance is now explicit.

@getfluxly/api v2026-03-31

The HTTP Events API docs now call out that ingest is at-least-once. Server callers should retry 5xx responses with backoff and tolerate duplicate events after unknown network outcomes.

  • Backwards compatible. The event payload shape stays the same.
  • Recommended pattern: use stable event names and keep backend handlers safe to run more than once.
  • Server examples now show short timeouts and background delivery instead of blocking user-facing requests.
Mar 24, 2026
Breaking

API: /v0 endpoints retired.

@getfluxly/api v2026-03-24

The /v0 namespace, which has been deprecated since November, is now removed. All endpoints live under /v1. Beta workspaces have already been migrated automatically; if you have client code calling /v0/track, swap the path to /v1/track. The request and response shapes are identical.