www.split.io Open in urlscan Pro
2a04:4e42:600::777  Public Scan

Submitted URL: https://go.split.io/MDUzLUpOWS0yMjUAAAGQLSq6GP5WyRzi3W6QTTGPScCeWvjQzKmhtVB8fN88ekN315P_SXc_DRFMjRpPnyknjcgfeHs=
Effective URL: https://www.split.io/blog/minimize-webpage-latency-with-split-flag-sets/?utm_campaign=holidaynewsletter&utm_medium=em...
Submission: On January 08 via api from LU — Scanned from DE

Form analysis 3 forms found in the DOM

GET https://www.split.io/

<form role="search" method="get" class="bricks-search-form" action="https://www.split.io/">
  <label for="search-input-oitfvc" class="screen-reader-text"><span>Search ...</span></label>
  <input type="search" placeholder="Search ..." value="" name="s" id="search-input-oitfvc">
</form>

GET https://www.split.io/

<form role="search" method="get" class="bricks-search-form" action="https://www.split.io/">
  <label for="search-input-aumvuh" class="screen-reader-text"><span>Search ...</span></label>
  <input type="search" placeholder="Search ..." value="" name="s" id="search-input-aumvuh">
  <button type="submit"><svg class="overlay-trigger" xmlns="http://www.w3.org/2000/svg" width="28" height="27" viewBox="0 0 28 27" fill="none">
      <circle cx="13.3455" cy="13.3455" r="7.45581" transform="rotate(-12.0625 13.3455 13.3455)" stroke="white" stroke-width="3"></circle>
      <line x1="19.8904" y1="17.3762" x2="25.2712" y2="21.6825" stroke="white" stroke-width="3"></line>
    </svg></button>
</form>

GET https://www.split.io/

<form role="search" method="get" class="bricks-search-form" action="https://www.split.io/">
  <label for="search-input-vwuyyb" class="screen-reader-text"><span>Search ...</span></label>
  <input type="search" placeholder="Search ..." value="" name="s" id="search-input-vwuyyb">
</form>

Text Content

THIS WEBSITE USES COOKIES

We use cookies to personalize content and ads, to provide social media features
and to analyze our traffic. We also share information about your use of our site
with our social media, advertising and analytics partners who may combine it
with other information that you’ve provided to them or that they’ve collected
from your use of their services.
Do not sell or share my personal information
Use necessary cookies only OK Show details
OK
Use necessary cookies only Allow selection Allow all cookies
Necessary
Preferences
Statistics
Marketing
Show details
Cookie declaration [#IABV2SETTINGS#] About
 Necessary (25)  Preferences (0)  Statistics (26)  Marketing (62)  Unclassified
(22)
Necessary cookies help make a website usable by enabling basic functions like
page navigation and access to secure areas of the website. The website cannot
function properly without these cookies.

NameProviderPurposeExpiryTypedebugSplitThis cookie is used to detect errors on
the website - this information is sent to the website's support staff in order
to optimize the visitor's experience on the
website.PersistentHTML__cf_bm [x5]Calendly
G2Crowd
Split
Vimeo
zoominfo.comThis cookie is used to distinguish between humans and bots. This is
beneficial for the website, in order to make valid reports on the use of their
website.1 dayHTTPobject(#-#-##:#:#.#)cdn.amplitude.comHolds the users
timezone.PersistentHTMLtest_cookieGoogleUsed to check if the user's browser
supports cookies.1 dayHTTPBIGipServer#SplitUsed to distribute traffic to the
website on several servers in order to optimise response
times.SessionHTTPCookieConsent [x2]Split
CookiebotStores the user's cookie consent state for the current domain1
yearHTTPrc::ajs.partnerpage.ioThis cookie is used to distinguish between humans
and bots. This is beneficial for the website, in order to make valid reports on
the use of their website.PersistentHTMLrc::cjs.partnerpage.ioThis cookie is used
to distinguish between humans and bots. SessionHTML1.gifCookiebotUsed to count
the number of sessions to the website, necessary for optimizing CMP product
delivery. SessionPixelli_gcLinkedInStores the user's cookie consent state for
the current domain180 daysHTTPJSESSIONIDNew RelicPreserves users states across
page requests.SessionHTTP#.#-#-#-#-#.ackperfalytics.comUsed to contain user’s
survey and quiz answers in Local
Storage.PersistentHTML#.#-#-#-#-#.inProgressperfalytics.comUsed to contain
user’s survey and quiz answers in Local
Storage.PersistentHTML#.#-#-#-#-#.queueperfalytics.comUsed to contain user’s
survey and quiz answers in Local
Storage.PersistentHTML#.#-#-#-#-#.reclaimEndperfalytics.comUsed to contain
user’s survey and quiz answers in Local
Storage.PersistentHTML#.#-#-#-#-#.reclaimStartperfalytics.comUsed to contain
user’s survey and quiz answers in Local
Storage.PersistentHTMLbscookieLinkedInThis cookie is used to identify the
visitor through an application. This allows the visitor to login to a website
through their LinkedIn application for example.1 yearHTTPtestcookieSplitThis
cookie determines whether the browser accepts
cookies.SessionHTTPCONSENTYouTubeUsed to detect if the visitor has accepted the
marketing category in the cookie banner. This cookie is necessary for
GDPR-compliance of the website. 2 yearsHTTP_cfuvidzoominfo.comThis cookie is a
part of the services provided by Cloudflare - Including load-balancing,
deliverance of website content and serving DNS connection for website operators.
SessionHTTP

Preference cookies enable a website to remember information that changes the way
the website behaves or looks, like your preferred language or the region that
you are in.

We do not use cookies of this type.

Statistic cookies help website owners to understand how visitors interact with
websites by collecting and reporting information anonymously.

NameProviderPurposeExpiryType_fs_uidSplitThis cookie contains an ID string on
the current session. This contains non-personal information on what subpages the
visitor enters – this information is used to optimize the visitor's
experience.PersistentHTMLziwsSessionSplitCollects statistics on the user's
visits to the website, such as the number of visits, average time spent on the
website and what pages have been read.SessionHTMLziwsSessionIdSplitCollects
statistics on the user's visits to the website, such as the number of visits,
average time spent on the website and what pages have been
read.SessionHTMLc.gifMicrosoftCollects data on the user’s navigation and
behavior on the website. This is used to compile statistical reports and
heatmaps for the website
owner.SessionPixelamplitude_unsent_#cdn.amplitude.comRegisters data on visitors'
website-behaviour. This is used for internal analysis and website optimization.
PersistentHTMLamplitude_unsent_identify_#cdn.amplitude.comRegisters data on
visitors' website-behaviour. This is used for internal analysis and website
optimization. PersistentHTMLNRBA_SESSIONNew RelicCollects data on the user’s
navigation and behavior on the website. This is used to compile statistical
reports and heatmaps for the website
owner.PersistentHTMLAnalyticsSyncHistoryLinkedInUsed in connection with
data-synchronization with third-party analysis service. 30
daysHTTPajs_anonymous_idperfalytics.comThis cookie is used to count how many
times a website has been visited by different visitors - this is done by
assigning the visitor an ID, so the visitor does not get registered
twice.PersistentHTML_clckMicrosoftCollects data on the user’s navigation and
behavior on the website. This is used to compile statistical reports and
heatmaps for the website owner.1 yearHTTP_clskMicrosoftRegisters statistical
data on users' behaviour on the website. Used for internal analytics by the
website operator. 1 dayHTTP_gaGoogleRegisters a unique ID that is used to
generate statistical data on how the visitor uses the website.2
yearsHTTP_ga_#GoogleUsed by Google Analytics to collect data on the number of
times a user has visited the website as well as dates for the first and most
recent visit. 2 yearsHTTPajs_anonymous_idperfalytics.comThis cookie is used to
identify a specific visitor - this information is used to identify the number of
specific visitors on a website.1 yearHTTPamplitude_#cdn.amplitude.comRegisters
statistical data on users' behaviour on the website. Used for internal analytics
by the website operator. 10 yearsHTTPamplitude_id_#cdn.amplitude.comRegisters
data on visitors' website-behaviour. This is used for internal analysis and
website optimization. 10 yearsHTTPfs_luaedge.fullstory.comCollects data on the
user’s navigation and behavior on the website. This is used to compile
statistical reports and heatmaps for the website owner.1
dayHTTPfs_uidedge.fullstory.comThis cookie contains an ID string on the current
session. This contains non-personal information on what subpages the visitor
enters – this information is used to optimize the visitor's experience.1
yearHTTPpersonalization_idTwitter Inc.This cookie is set by Twitter - The cookie
allows the visitor to share content from the website onto their Twitter profile.
400 daysHTTPvuidVimeoCollects data on the user's visits to the website, such as
which pages have been read.2 yearsHTTP_cltkMicrosoftRegisters statistical data
on users' behaviour on the website. Used for internal analytics by the website
operator. SessionHTMLCLIDMicrosoftCollects data on the user’s navigation and
behavior on the website. This is used to compile statistical reports and
heatmaps for the website owner.1 yearHTTPtdGoogleRegisters statistical data on
users' behaviour on the website. Used for internal analytics by the website
operator. SessionPixelamplitude_cookie_testcdn.amplitude.comRegisters data on
visitors' website-behaviour. This is used for internal analysis and website
optimization. SessionHTTPsliguidSalesLoftContains an visitor ID - This is used
to track visitors' navigation and interaction on the website for internal
website-optimization. 1 yearHTTPslirequestedSalesLoftContains an visitor ID -
This is used to track visitors' navigation and interaction on the website for
internal website-optimization. 1 yearHTTP

Marketing cookies are used to track visitors across websites. The intention is
to display ads that are relevant and engaging for the individual user and
thereby more valuable for publishers and third party advertisers.

NameProviderPurposeExpiryTypeMR [x2]MicrosoftUsed to track visitors on multiple
websites, in order to present relevant advertisement based on the visitor's
preferences. 7 daysHTTPMUID [x2]MicrosoftUsed widely by Microsoft as a unique
user ID. The cookie enables user tracking by synchronising the ID across many
Microsoft domains.1 yearHTTPSRM_BMicrosoftTracks the user’s interaction with the
website’s search-bar-function. This data can be used to present the user with
relevant products or services. 1 yearHTTPANONCHKMicrosoftRegisters data on
visitors from multiple visits and on multiple websites. This information is used
to measure the efficiency of advertisement on websites. 1
dayHTTPSMMicrosoftRegisters a unique ID that identifies the user's device during
return visits across websites that use the same ad network. The ID is used to
allow targeted ads.SessionHTTPCMIDCasale MediaCollects visitor data related to
the user's visits to the website, such as the number of visits, average time
spent on the website and what pages have been loaded, with the purpose of
displaying targeted ads.1 yearHTTPCMPROCasale MediaCollects data on visitor
behaviour from multiple websites, in order to present more relevant
advertisement - This also allows the website to limit the number of times that
they are shown the same advertisement. 3 monthsHTTPCMPSCasale MediaCollects
visitor data related to the user's visits to the website, such as the number of
visits, average time spent on the website and what pages have been loaded, with
the purpose of displaying targeted ads.3 monthsHTTPrumCasale MediaCollects data
related to the user's visits to the website, such as the number of visits,
average time spent on the website and what pages have been loaded, with the
purpose of displaying targeted ads.SessionPixeltuuidDemandBaseCollects visitor
data related to the user's visits to the website, such as the number of visits,
average time spent on the website and what pages have been loaded, with the
purpose of displaying targeted ads.400 daysHTTPtuuid_luDemandBaseContains a
unique visitor ID, which allows Bidswitch.com to track the visitor across
multiple websites. This allows Bidswitch to optimize advertisement relevance and
ensure that the visitor does not see the same ads multiple times. 400
daysHTTPlastExternalReferrer Meta Platforms, Inc.Detects how the user reached
the website by registering their last
URL-address.PersistentHTMLlastExternalReferrerTime Meta Platforms, Inc.Detects
how the user reached the website by registering their last
URL-address.PersistentHTMLIDEGoogleUsed by Google DoubleClick to register and
report the website user's actions after viewing or clicking one of the
advertiser's ads with the purpose of measuring the efficacy of an ad and to
present targeted ads to the user.1 yearHTTPpagead/landingGoogleCollects data on
visitor behaviour from multiple websites, in order to present more relevant
advertisement - This also allows the website to limit the number of times that
they are shown the same advertisement.
SessionPixel_fs_tab_idedge.fullstory.comTracks the individual sessions on the
website, allowing the website to compile statistical data from multiple visits.
This data can also be used to create leads for marketing
purposes.SessionHTMLads/ga-audiencesGoogleUsed by Google AdWords to re-engage
visitors that are likely to convert to customers based on the visitor's online
behaviour across websites.SessionPixelpagead/1p-user-list/#GoogleTracks if the
user has shown interest in specific products or events across multiple websites
and detects how the user navigates between sites. This is used for measurement
of advertisement efforts and facilitates payment of referral-fees between
websites.SessionPixel#,#GoogleCollects data on user behaviour and interaction in
order to optimize the website and make advertisement on the website more
relevant. PersistentHTML#,#_expiresAtGoogleCollects data on user behaviour and
interaction in order to optimize the website and make advertisement on the
website more relevant. PersistentHTMLbcookieLinkedInUsed by the social
networking service, LinkedIn, for tracking the use of embedded services.1
yearHTTPli_sugrLinkedInCollects data on user behaviour and interaction in order
to optimize the website and make advertisement on the website more relevant. 3
monthsHTTPlidcLinkedInUsed by the social networking service, LinkedIn, for
tracking the use of embedded services.1 dayHTTPUserMatchHistoryLinkedInUsed to
track visitors on multiple websites, in order to present relevant advertisement
based on the visitor's preferences. 30 daysHTTPsite_identitySalesloftCollects
data on user behaviour and interaction in order to optimize the website and make
advertisement on the website more relevant. 1 yearHTTP__tld__perfalytics.comUsed
to track visitors on multiple websites, in order to present relevant
advertisement based on the visitor's preferences. SessionHTTP_fbp Meta
Platforms, Inc.Used by Facebook to deliver a series of advertisement products
such as real time bidding from third party advertisers.3
monthsHTTP_gcl_auGoogleUsed by Google AdSense for experimenting with
advertisement efficiency across websites using their services. 3
monthsHTTPajs%3Acookiesperfalytics.comCollects data on visitors. This
information is used to assign visitors into segments, making website
advertisement more efficient. 1 yearHTTPajs%3Atestperfalytics.comCollects data
on visitors. This information is used to assign visitors into segments, making
website advertisement more efficient. 1 yearHTTPi/adsct [x2]Twitter Inc.The
cookie is used by Twitter.com in order to determine the number of visitors
accessing the website through Twitter advertisement content.
SessionPixelmuc_adsTwitter Inc.Collects data on user behaviour and interaction
in order to optimize the website and make advertisement on the website more
relevant. 400 daysHTTP_session_idG2CrowdStores visitors' navigation by
registering landing pages - This allows the website to present relevant products
and/or measure their advertisement efficiency on other websites. 14
daysHTTPtv_UIDMTelariaPending400 daysHTTPtvidTelariaPresents the user with
relevant content and advertisement. The service is provided by third-party
advertisement hubs, which facilitate real-time bidding for advertisers.1
yearHTTPi/jot/embedsTwitter Inc.Sets a unique ID for the visitor, that allows
third party advertisers to target the visitor with relevant advertisement. This
pairing service is provided by third party advertisement hubs, which facilitates
real-time bidding for advertisers.SessionPixelRichHistoryTwitter Inc.Collects
data on visitors' preferences and behaviour on the website - This information is
used make content and advertisement more relevant to the specific visitor.
SessionHTML_mkto_trkMarketoContains data on visitor behaviour and website
interaction. This is used in context with the email marketing service
Marketo.com, which allows the website to target visitors via email. 2
yearsHTTPsliregSalesLoftRegisters user behaviour and navigation on the website,
and any interaction with active campaigns. This is used for optimizing
advertisement and for efficient retargeting. 7
daysHTTPLAST_RESULT_ENTRY_KEYYouTubeUsed to track user’s interaction with
embedded
content.SessionHTTPLogsDatabaseV2:V#||LogsRequestsStoreYouTubePendingPersistentIDBnextIdYouTubeUsed
to track user’s interaction with embedded
content.SessionHTTPremote_sidYouTubeNecessary for the implementation and
functionality of YouTube video-content on the website.
SessionHTTPrequestsYouTubeUsed to track user’s interaction with embedded
content.SessionHTTPServiceWorkerLogsDatabase#SWHealthLogYouTubeNecessary for the
implementation and functionality of YouTube video-content on the website.
PersistentIDBTESTCOOKIESENABLEDYouTubeUsed to track user’s interaction with
embedded content.1 dayHTTPVISITOR_INFO1_LIVEYouTubeTries to estimate the users'
bandwidth on pages with integrated YouTube videos.180
daysHTTPVISITOR_PRIVACY_METADATAYouTubeStores the user's cookie consent state
for the current domain180 daysHTTPYSCYouTubeRegisters a unique ID to keep
statistics of what videos from YouTube the user has
seen.SessionHTTPyt.innertube::nextIdYouTubeRegisters a unique ID to keep
statistics of what videos from YouTube the user has
seen.PersistentHTMLytidb::LAST_RESULT_ENTRY_KEYYouTubeStores the user's video
player preferences using embedded YouTube
videoPersistentHTMLYtIdbMeta#databasesYouTubeUsed to track user’s interaction
with embedded content.PersistentIDByt-remote-cast-availableYouTubeStores the
user's video player preferences using embedded YouTube
videoSessionHTMLyt-remote-cast-installedYouTubeStores the user's video player
preferences using embedded YouTube
videoSessionHTMLyt-remote-connected-devicesYouTubeStores the user's video player
preferences using embedded YouTube
videoPersistentHTMLyt-remote-device-idYouTubeStores the user's video player
preferences using embedded YouTube
videoPersistentHTMLyt-remote-fast-check-periodYouTubeStores the user's video
player preferences using embedded YouTube
videoSessionHTMLyt-remote-session-appYouTubeStores the user's video player
preferences using embedded YouTube
videoSessionHTMLyt-remote-session-nameYouTubeStores the user's video player
preferences using embedded YouTube videoSessionHTML

Unclassified cookies are cookies that we are in the process of classifying,
together with the providers of individual cookies.

NameProviderPurposeExpiryType_fs_luaSplitPendingPersistentHTMLunifiedScriptVerifiedSplitPendingSessionHTMLhb_actionsassets.adoberesources.netPendingPersistentHTMLhb_sessionIdassets.adoberesources.netPendingPersistentHTMLhb_tsassets.adoberesources.netPendingSessionHTMLfpjs_group_idperfalytics.comPendingPersistentHTMLfpjs_group_propertiesperfalytics.comPendingPersistentHTMLfpjs_user_idperfalytics.comPendingPersistentHTMLfpjs_user_traitsperfalytics.comPendingPersistentHTMLmp_eventQueueperfalytics.comPendingPersistentHTML__mp_opt_in_out_5cb8cc91-e409-41c2-af0d-b337e1d966a7perfalytics.comPendingSessionHTTPfpjs_group_idperfalytics.comPendingSessionHTTPfpjs_user_idperfalytics.comPendingSessionHTTPmp_5cb8cc91-e409-41c2-af0d-b337e1d966a7_perfalytics [x2]perfalytics.comPending1
yearHTTPmp_eventQueue [x2]perfalytics.comPendingSessionHTTP_zitokjs.zi-scripts.comPending1
yearHTTPdomain_tracker/roi-calculator-experience-1-2-1/index.htmlSplitPendingPersistentHTMLexperience_tracker/roi-calculator-experience-1-2-1/index.htmlSplitPendingPersistentHTMLmobile-help-overlaySplitPendingSessionHTTPstorageUrlSplitPendingPersistentHTML

 [#IABV2_LABEL_PURPOSES#]  [#IABV2_LABEL_FEATURES#]  [#IABV2_LABEL_PARTNERS#]
[#IABV2_BODY_PURPOSES#]
[#IABV2_BODY_FEATURES#]
[#IABV2_BODY_PARTNERS#]
Cookies are small text files that can be used by websites to make a user's
experience more efficient.

The law states that we can store cookies on your device if they are strictly
necessary for the operation of this site. For all other types of cookies we need
your permission.

This site uses different types of cookies. Some cookies are placed by third
party services that appear on our pages.
Cookie declaration last updated on 05.01.24 by Cookiebot
 * Why Split
 * Product
   
   
   * FEATURE DELIVERY & CONTROL
     
     Feature FlagsTargeting RulesDynamic ConfigurationCollaboration & Workflows
   
   
   * FEATURE MEASUREMENT & LEARNING
     
     Automated Rollout MonitoringAlerts & ActionsFeature Experimentation
   
   
   * ENTERPRISE READINESS
     
     Enterprise Capabilities
   * ArchitectureIntegrationsSupported SDKsAPI DocumentationRelease Notes
 * Use Cases
   
   
   * BY NEED
     
     Release FasterTriage InstantlyTest & Iterate QuicklyImprove Dev Happiness
   
   
   * BY INDUSTRY
     
     Financial ServicesHealthcareMedia & EntertainmentRetailSoftwareTravel &
     Transport
 * Resources
   
   
   * DEVELOPER RESOURCES
     
     Developer HubRelease NotesDocumentationAPI DocumentationSDK Documentation
   
   
   * CONTENT HUB
     
     All ResourcesCustomer StoriesBlogWebinar / Video
   
   
   * SUCCESS
     
     Customer SuccessSupportTraining & CertificationSlack CommunityHelp Center
   * Guide to Feature FlagsGuide to Product MetricsFeature Delivery Glossary
 * Pricing
 * Company
   
   
   * COMPANY
     
     About UsCareersContact UsPartnersTrust & Security
 * 

Book DemoFree Account

SEARCH SITE

Search ...
×
Login


WHY SPLIT


PRODUCTS


FEATURE DELIVERY & CONTROL

Feature FlagsTargeting RulesDynamic ConfigurationCollaboration & Workflows


FEATURE MEASUREMENT & LEARNING

Automated Rollout MonitoringAlerts & ActionsFeature Experimentation


ENTERPRISE READINESS

Enterprise Capabilities


RELATED LINKS

ArchitectureIntegrationsSupported SDKsAPI DocumentationRelease Notes


USE CASES


BY NEED

Release FasterTriage InstantlyTest & Iterate ConfidentlyImprove Dev Happiness


BY INDUSTRY

Financial ServicesHealthcareMedia & EntertainmentRetailSoftwareTravel &
Transport


RESOURCES


DEVELOPER RESOURCES

Developer HubRelease NotesDocumentationAPI DocumentationSDK Documentation


CONTENT HUB

All ResourcesCustomer StoriesBlogWebinar / Video


SUCCESS

SupportTraining & CertificationSlack CommunityHelp Center


RELATED LINKS

Guide to Feature FlagsGuide to Product MetricsFeature Delivery Glossary


PRICING


COMPANY

About UsCareersContact UsPartnersTrust & Security
Search ...
Book DemoFree Account

SEARCH SITE

Search ...
×


MINIMIZE WEBPAGE LATENCY WITH SPLIT FLAG SETS


CONTENTS

 * Define Your Feature Flags
 * Set Up Your Flag Sets
 * Take Away

Blog > Features
By Magdalena Sano —
6 min read
December 11, 2023
 * 
 * 

Think of all you can do with a feature flag. You can achieve a/b/n testing in
production, gradual rollouts, instant rollbacks, gated releases, safe
incremental releases on your schedule, and more. Feature flags lift you to
soaring heights.

Now think of thousands—no tens of thousands—of feature flags. Alarming? If you
are a web developer, do you picture your blazing website grinding to a halt,
server rapidly paging out memory and crashing, click through rates nose-diving,
conversion rates destroyed, and users bouncing? How can such a catastrophe be
averted?

In the past we would say, you could pick out your needed feature flags by name
one by one. Not a savory thought.

Now, you can use flag sets! Sweet. Divide up your flags as server-client,
web-mobile, campaigns, releases—as you like. Only the flag sets you specify are
loaded, and you can flexibly add and remove flags from different flag sets.
Groupings can even overlap. (Remember good ol’ subsets and intersection of sets
from Algebra?)

In this blog, we’ll show you how to make use of flag sets and share a taste of
the performance benefits that can result. You’ll find the complete code example
on github.

To run the code, you will need:

 * A Split account (with the Measurement and Learning add-on) or switch on a
   free account today.
 * Visual Studio Code
 * The NPM package manager
 * curl on the command line

Let’s begin.


DEFINE YOUR FEATURE FLAGS

In Split UI, you’ll need to set up the following Split feature flags:

 * One feature flag named image_size, with treatment values h, l (the lowercase
   letter ‘L’), m, t, s, and b, serving h

 * A second feature flag named network_speed, with treatment values Regular3G,
   Good3G, Regular4G, and WiFi, serving Regular3G

 * The last feature flag named optimize_with_flagsets, with treatment values on
   and off, distributing treatments 50% on and 50% off

Be sure that the feature flags are created with the same traffic type and
defined for the same Split environment. To evaluate these flags in your code,
you’ll need to copy the server-side and client-side API keys retrieved from your
Admin settings page in Split UI (as shown below) to your .env file.


SET UP YOUR FLAG SETS

Use Split API to create a flag set by using the following curl command:

curl --location --request POST "https://app.split.io/internal/api/v3/flag-sets"
--header "Authorization: Bearer <YOUR_GLOBAL_ADMIN_API_KEY>" --header
"Content-Type: application/json" --data-raw "{ \"name\": \"frontend\",
\"description\": \"The feature flags that are downloaded to the web client\",
\"workspace\": { \"id\": \"<YOUR_SPLIT_WORKSPACE_ID>\", \"type\": \"workspace\"
} }"

We’ll need to substitute some credentials. On your Admin settings page in Split
UI, you can create your Admin API key (set Permissions as All Environments), and
your workspace ID can be found in the page URL, as shown below.

Now we can run the curl command, which creates a flag set called frontend that
we can associate with a flag definition in Split UI, as shown below.

When our javascript code runs in the web client, SplitSuite requests the Split
feature flag definitions from Split cloud. In our code, we specify the subset of
the Split feature flag definitions that we want to download. We do this by
configuring the SplitSuite object with the name of the flag set frontend, as
shown below.



import { SplitSuite } from '@splitsoftware/browser-suite';

const client = SplitSuite({
    core: {
      authorizationKey: process.env.CLIENT_SIDE_SDK_KEY,
 
      // In this example, we get the user key from URL query parameter `id`
      key: new URLSearchParams(window.location.search).get('id'),
      // Specifying the traffic type for the user key is optional, the value is 'user' by default
      trafficType: 'user'
    },
    sync: {
      splitFilters: [{
        type: 'bySet',
        values: ['frontend']
      }]
    }
  }).client();

  client.on(client.Event.SDK_READY, function() {
    // Evaluate a feature flag
    let imageSize = client.getTreatment(process.env.FEATURE_FLAG_IMAGE_SIZE);
   
    // Use the feature flag’s returned value... code omitted for simplicity 
  }


When we run the site, we can see the Split definitions as they are retrieved
from Split cloud in DevTools as shown below.

If we put this optimization behind the feature flag called
‘optimize_with_flagsets’, we can measure the impact of using our flag set, as
shown below. (No need to comment on the brilliantly imaginative flag name. Yeah,
thanks.)

We can see an average 43.37% improvement when we limit the flags fetched from
Split by using a flag set (rather than downloading 700 flag definitions in the
off treatment). In our case this is an average latency decrease of 257 ms.


TAKE AWAY

With Split flag sets, you can keep your client smart but lightweight by loading
only the subset of feature flags you need. Kiss latency goodbye and see your app
performance really take off.

So then, what will you do with your feature flags? Especially, what will you do
with your flag sets?

A few words of appreciation: For convincing us of the browsing latency reduction
possibilities of flag sets, rather than hosting-costs savings, security
improvements, or other (also interesting but less relevant) benefits that we
were considering writing about, credit goes to Johannes Liegl at Split. (To
celebrate flag sets’ success, Johannes did a high five and secret handshake with
his counterpart on this project Nicolas Zelaya.) Thanks always to Krishna
Ramisetty for much appreciated and seldom mentioned solid guidance on all my
blogs.


SWITCH IT ON WITH SPLIT

Split gives product development teams the confidence to release features that
matter faster. It’s the only feature management and experimentation solution
that automatically attributes data-driven insight and metrics to every feature
that’s released—all while enabling astoundingly easy deployment, profound risk
reduction, and better visibility across teams. Split offers more than a
platform: It offers partnership. By sticking with customers every step of the
way, Split illuminates the path toward continuous improvement and timely
innovation. Switch on a trial account, schedule a demo, or contact us for
further questions.


GET SPLIT CERTIFIED

Split Arcade includes product explainer videos, clickable product tutorials,
manipulatable code examples, and interactive challenges.


WANT TO DIVE DEEPER?

We have a lot to explore that can help you understand feature flags. Learn more
about benefits, use cases, and real world applications that you can try.

Blog
Features
From featured category recommended content


INTRODUCING SWITCH, SPLIT’S NEW AI DEVELOPER ASSISTANT

6 minute read
View Blog
Blog
Experimentation
From featured category recommended content


EXPERIMENTING WITH STATISTICAL RIGOR TO MAKE DATA-DRIVEN TACO DECISIONS

6 minute read
View Blog
Blog
Industry Trends
From featured category recommended content


RETHINKING DORA: MEAN TIME TO RESTORE

6 minute read
View Blog
Webinar
Features
From recent category recommended content


HOW TO A/B TEST EVERY FEATURE RELEASE

6 minute read
View Webinar
Blog
Features
From recent category recommended content


REDUCING RISK BY TESTING EVERY CHANGE IN PRODUCTION

6 minute read
View Blog
Blog
Features
From recent category recommended content


SPLIT AND JIRA: SUPPORTING PROGRESSIVE DELIVERY

6 minute read
View Blog


RELEASE NEW FEATURES FASTER

We’re excited to accompany you on your journey as you build faster, release
safer, and launch impactful products.

Free AccountContact Us


WANT TO DIVE DEEPER?

We have a lot to explore that can help you understand feature flags. Learn more
about benefits, use cases, and real world applications that you can try.

Blog
Features
From featured category recommended content


NOT ALL CONNECTIONS ARE CREATED EQUAL: INTRODUCING STREAMING ARCHITECTURE

6 minute read
View Blog
Blog
Code
From featured category recommended content


MOCKING REQUEST BODIES FOR API DEBUGGING

6 minute read
View Blog
Webinar
Company
From featured category recommended content


FLAGSHIP 2022: DARK LAUNCHES – DEPLOY OFTEN WITHOUT THE RISK

6 minute read
View Webinar


CREATE IMPACT WITH EVERYTHING YOU BUILD

We’re excited to accompany you on your journey as you build faster, release
safer, and launch impactful products.

Free AccountContact Us
PricingWhy Split?Free AccountBook a Demo


PRODUCT

Feature FlagsTargeting & SegmentationDynamic ConfigurationCollaboration and
WorkflowsAutomated Rollout MonitoringAlerts & ActionsFeature
ExperimentationArchitectureEnterprise CapabilitiesIntegrationsSupported SDKsAPI
DocumentationRelease Notes


USE CASES

Release FasterTriage InstantlyTest & Iterate ConfidentlyImprove Dev
HappinessFinancial ServicesHealthcareMedia & EntertainmentRetailSoftwareTravel &
Transport


RESOURCES

Content HubDeveloper HubSlack CommunityCustomer SuccessDocumentationSDK
DocumentationHelp CenterTraining & Certification


COMPANY

About UsCareersContact UsSupportPartnersTrustPress & Media
Copyright © 2024 Split Software, Inc.
Your Privacy RightsCookie StatementTerms of ServicePrivacy PolicyDPA