@saltnburnem
@saltnburnem
#DeveloperCommunity | #CodeMash

Thanks CodeMash!
@saltnburnem
#CodeMash
@saltnburnem
#DeveloperCommunity | #CodeMash
#DeveloperCommunity
@saltnburnem
#DeveloperCommunity | #CodeMash
Chris DeMars

@saltnburnem

@saltnburnem
@chrisdemars.net
🦋

Senior Developer Advocate II
#DeveloperCommunity | #CodeMash
- International Speaker
- Love spooky stuff
- Tattoo collector
- Competitive Bass Angler
- Competitive Paintball Player
About Me
#DeveloperCommunity | #CodeMash
@saltnburnem

The Power of Feature Flags in CSS Development
@saltnburnem
#DeveloperCommunity | #CodeMash
It's not that scary
trust me...
@saltnburnem
#DeveloperCommunity | #CodeMash
What is A/B testing?
@saltnburnem
#DeveloperCommunity | #CodeMash
What is A/B testing?
A/B testing, otherwise known as split testing, is the process of testing two different versions of a web page or product feature against the original, existing version.
- Talia Nassi
@saltnburnem
#DeveloperCommunity | #CodeMash
Username
Password
Login
provider
Create Account
A
@saltnburnem
#DeveloperCommunity | #CodeMash
Username
Password
Login
provider
Create Account
Username
Password
Login
provider
Create
A
B
@saltnburnem
#DeveloperCommunity | #CodeMash
Why?
@saltnburnem
#DeveloperCommunity | #CodeMash
⬇️ Answers ⬇️
- Awesome user experience
- Increase revenue
- Data correlation for better business decisions
- Fine grained control of code exposure
@saltnburnem
#DeveloperCommunity | #CodeMash
How?
@saltnburnem
#DeveloperCommunity | #CodeMash
Well set up an experiment of course!
@saltnburnem
#DeveloperCommunity | #CodeMash
That is what we call a moron.
That is not an experiment.

@saltnburnem
#DeveloperCommunity | #CodeMash
First
@saltnburnem
#DeveloperCommunity | #CodeMash
First
Gather that data!
@saltnburnem
#DeveloperCommunity | #CodeMash
❗️ Baseline before experiment! ❗️
@saltnburnem
#DeveloperCommunity | #CodeMash

@saltnburnem
#DeveloperCommunity | #CodeMash
Scientific Method
@saltnburnem
#DeveloperCommunity | #CodeMash
Scientific Method
- Ask a question
- Do research
- Construct a hypothesis
- Experiment
- Draw conclusion
@saltnburnem
#DeveloperCommunity | #CodeMash
Scientific Method
- Construct a hypothesis
- Experiment
@saltnburnem
#DeveloperCommunity | #CodeMash
If we ship this new button, our retention will increase by 20%.
Hypothesis
@saltnburnem
#DeveloperCommunity | #CodeMash
Experiment time!
@saltnburnem
#DeveloperCommunity | #CodeMash
Username
Password
Login
provider
Create Account
Username
Password
Login
provider
Create
A
B
Control
Treatment
@saltnburnem
#DeveloperCommunity | #CodeMash
Feature Flags
@saltnburnem
#DeveloperCommunity | #CodeMash
Segment Users
@saltnburnem
#DeveloperCommunity | #CodeMash
Username
Password
Login
provider
Create Account
Username
Password
Login
provider
Create
A
B
Control
Treatment
50%
50%
@saltnburnem
#DeveloperCommunity | #CodeMash
Flex that UI muscle!
@saltnburnem
#DeveloperCommunity | #CodeMash
You can be a CSS dev and use feature flags!
@saltnburnem
#DeveloperCommunity | #CodeMash
CSS...like CSS
IYKYK
@saltnburnem
#DeveloperCommunity | #CodeMash
// get treatment
let treatment = client.getTreatment('css_demo');
// get features to flip based upon CSS classes
const featureA = document.querySelectorAll('.a');
const featureB = document.querySelectorAll('.b');
if (treatment === 'on') {
featureB.forEach(element => {
element.classList.add('hide')
})
} else if (treatment === 'off') {
featureA.forEach(element => {
element.classList.add('hide')
})
} else {
console.error('Error connecting to Split')
// default rule here
featureA.forEach(element => {
element.classList.add('hide')
})
}
}); @saltnburnem
#DeveloperCommunity | #CodeMash

Demo
@saltnburnem
#DeveloperCommunity | #CodeMash
It's a happy cry!
Go Forth and Test in Production!

Chris DeMars
@saltnburnem
Resources
https://bit.ly/css-feature-flags
@saltnburnem

@chrisdemars.net
🦋
#DeveloperCommunity | #CodeMash
The Power of Feature Flags in CSS Development
By Chris DeMars
The Power of Feature Flags in CSS Development
- 239