vTilt
By roleFoundersKnow what to fix firstMarketersSee what happens after the clickCMOsSee what your budget really buys
By businessSaaSTurn signups into active usersEcommerceSee why shoppers abandon cartsAgenciesProve your work to clientsEnterpriseOne customer record for every team
MeasureWeb AnalyticsFind where buyers leaveSession ReplaySee why they left, not just that they didAdsKnow what paid visitors do nextIntegrationsOne snippet feeds your stack
ThinkPeopleOne profile per customerCustomer MemoryvTilt remembers every visitorSite KnowledgeAnswers and audits from your own pages
ActAsk AIAnswers from real behaviorAI ChatChat that knows the visitorEmail CampaignsEmail from real visits
PricingWhy vTiltDocs
Docs / Remote configuration
Getting Started
OverviewInstallInitializeIdentify usersTrack eventsLogout & resetVerify eventsCommon mistakes
Guides
Event forwardingReverse proxyRealtime dashboardSite knowledge
Frontend frameworks
Next.jsNuxt.jsVue.jsReactReact RouterRemixGatsbySvelte / SvelteKitAstroAngularTanStack StartDocusaurus
Backend frameworks
NestJSHonoCloudflare WorkersDjangoFlaskLaravelPhoenixRuby on Rails
Backend languages
PythonPHPRubyElixirGoJava.NET / C#Rust
Stack guides
Vue + PHP
API Reference
Browser SDK
Script bundlesAutocaptureWeb VitalsSession recordingChat widgetFeature readinessRemote configurationDebug logging
Node SDK
Install & setupCapture, identify & aliasContext & shutdownGlobal properties & opt-outError tracking
MCP server
Guides
OverviewAuthenticationOAuthAgent skills (prompts)AI intelligenceSite knowledgeGoogle AdsMeta Ads
Client setup
CursorClaude DesktopVS CodeCodex

Getting Started

OverviewInstallInitializeIdentify usersTrack eventsLogout & resetVerify eventsCommon mistakes

Guides

Event forwardingReverse proxyRealtime dashboardSite knowledge

API Reference

Script bundlesAutocaptureWeb VitalsSession recordingChat widgetFeature readinessRemote configurationDebug logging

MCP server

On this page

On this page

  • What's remotely configurable
  • Reload behaviour
  • When to use code config vs remote config
DocsAPI ReferenceBrowser SDKRemote configuration

Remote configuration

Last updated July 22, 2026

Toggle SDK features from the dashboard without code changes — autocapture, session recording, sample rates, destinations.

Control SDK features from the dashboard (Settings → SDK Defaults) without code changes. The SDK fetches config from /api/d (browser alias for decide) on every page load. When a fresh merge completes (or the fetch fails and the SDK unblocks), __remote_config_loaded is set — HTTP event ingest and Google Tag client forwarding both wait on that moment so analytics toggles and gateway settings line up with whatever you configured in the dashboard.

#What's remotely configurable

Anything that doesn't need a code change to take effect:

  • Autocapture allowlists / ignorelists
  • Session recording on/off, sample rate, masking
  • Web vitals on/off
  • Per-destination forwarding (Google Tag, Meta CAPI, PostHog)
  • Consent Mode v2 defaults and per-category mappings
  • Chat widget visibility and welcome behaviour
  • Sample rate for $autocapture and $rageclick

The SDK's init() config is the floor — it sets what the SDK can do. Remote config is the gate — it decides what the SDK will do, on a per-project basis. You cannot remotely enable a feature that wasn't compiled into the bundle (e.g. session recording requires the lazy chunk to be reachable from your api_host), but you can disable any feature without redeploying.

#Reload behaviour

Remote config is fetched every time init() runs, then cached in localStorage for the rest of the page. SPA route changes don't refetch. To force a refetch in a long-lived tab, call vt.updateConfig({}) — the empty merge re-fires the underlying request.

#When to use code config vs remote config

Use code (vt.init({...}))Use remote config (dashboard)
Token, api_host, persistence modeSample rates and rollout knobs
Bundle-affecting settings (chat enabled at all)Per-environment toggles you change without deploys
Feature defaults you ship with the buildOperator-tunable knobs you adjust during incidents
PreviousFeature readinessBrowser SDKNextDebug loggingBrowser SDK