the following is my conversation with
adam argyle who is css developer
advocate for google chrome
the conversation covers quite a few
topics that are relevant in the web dev
and web design industries ui complexity
clips
developer experience versus user
experience which we call dx versus ux
self disruption and what web design
tooling could be
along the way we touch on what open ui
is adam's deferred inputs proposal the
four jobs of developer experience
thought leading for good or thought
leading for fun and profit from emily
freeman elia grigorik and dionne meyer
who inspire each of us individually and
adobe versus figma vs webflow
i hope you enjoy these long-form
conversations that i have with amazing
developers i haven't been as regular as
i would like but i'm investing into
youtube in 2022 and i'm keen on
producing more high quality
conversations if you like this share
with a friend if you have requests for
other guests tag them on social media
i'd like to basically make this a space
where passionate builders and doers can
talk about their craft and where things
are going
all right so the first thing we're
talking about is ui complexity clips um
what's on your mind why is this
first on your on your list
yeah you had a tweet the other day that
was um
i'm at my fourth startup or something
like this and we're discussing buttons
again like how is it 2021 and buttons
are popping up is needing refactored or
something like how are they not solved
and um i'm sure you had threads of
people that have their ideas there and
mine was it's a complexity cliff it's
the first introduction where you as a
front-end ui person who actually is like
going to go build out all this matrix of
states that a button needs that it lands
on you it's like you've been in the car
using a shifter this whole time using a
steering wheel this whole time and then
someone said hey go change the steering
wheel out and you're like oh that's just
a component it's just a single use like
that thing has totally only got like one
attachment right and then you walk up to
it and you start working on it like this
thing is like really integrated into the
system and or whatever right you have
these like discovery moments with it and
you realize it's much more complex than
it is and a button just does that a
button's like yeah well let's allow an
icon to be on our button and you're like
okay left and right
yeah how about both sides can you i can
have both sides because you could have a
shopping cart with a little drop down
arrow oh man okay and you have to have
dark mode you better have this and that
and the the matrix like i was saying of
states is what i mean by this complexity
cliff like it's just not visible from
the surface it looks all innocent um and
then you go map it like if you mapped
out everything you need it's it's a lot
like the css alone that it takes to have
like a custom button and a design system
is absurd it's absurd but at the same
time
i love it uh anyway
so this is the tweet in question um and
honestly like this is this is genuine
because
uh yeah i had it at uh two sigma where i
where i had my first uh front-end job
and then netlify and now at the world
same stuff again
and oh did you handle disabled oh is it
a link or is it a button
um
and what's interesting was also just the
replies like
nicole from google so uh what does she
do she like needs that i work with her
directly these days
she was on frameworks and she's now
shifted to um ui and sort of like how
did she empower people to build flexible
and fluid interfaces on the web and
that's why she points to open ui this is
like a community for that but anyway i'm
part of her team because i'm
i work on similar things
okay yeah and so like you know first of
all i didn't i didn't expect this to
reach uh anyone at google
but then also like the the
web components people reached out to me
and they're like how come web components
have installed this for you and i'm like
it's not about the tech
um it's more about like understanding
the specs of what people want and people
not agreeing what a button should do
yeah yeah google cloud had
had um
too many they had them in multiple
frameworks in the same repo right being
like just because they grew so fast or
whatever like your project always gets
out of hand and all of a sudden yeah you
have more than one button which some
people have enough time wrangling one
how are they going to wrangle two or
three and built in different frameworks
right you've got your island's
architecture with buttons you're just
like oh snap does that just mean any
button from any framework just shows up
in an island i don't know
um
that's an interesting discussion is is
that a big uh
is the island's architecture a big
discussion within
google or because i always have heart i
have trouble separating jason from jason
miller who wrote the island's article
architecture blog post when is he
talking in his own personal capacity or
when is he saying like
no this is something we're thinking
about at google
oh in my opinion jason and i are pretty
straight shooters about our own stuff
like we work for
google and chrome and we love our job
and we want to represent chrome well and
um do all the things our job want us to
do but we have this like
i don't know our own personal opinion
like jake archibald does this too he
he's working on a lot of his own stuff
we kind of balance both i mean jason
definitely does things internally that
he might not have chosen to go do if he
just could choose whatever he wants to
do but that doesn't mean that's what
he's going to go pitch outside of google
and the islands architecture is yeah
this is just sort of the micro
front-ends evolution into let's
eventually dockerize every component and
then manage them with kubernetes in the
front end right we'll get there i don't
know
um
yeah
so the this discussion of the reusable
button and the ui complexity cliff
makes me wonder because there's a lot of
discussion about how dry is overrated
you know um we should we should write
everything twice
and sometimes if you're just customizing
it so often and you're reusing it so
much maybe just don't reuse code just
just copy and paste
and and then that makes it easy to
delete easy to modify
the only thing that
that goes wrong with that is whenever
you need to do a global update
um then you'd run into trouble but
how often do you really need to do that
right is that what the super rad
typescript refactor button is for like
that's why you typed your whole thing so
that you could refactor across something
globally i mean this is a value prop of
typescript right
if you are
you know employing it that way on your
project but
um yeah i think that's a really good
point though is that sometimes you don't
need to build a mega button yeah mega
buttons get built and then mega buttons
fall down
and i also wonder if it's like
uh
if it should be gated by a number of
people working on the project
so we had at my first company
um
three front end developers and we were
building both the design system and the
app
and i was just like maybe we should just
build the app and forget the design
system
okay this is actually something i've
said multiple times is that
projects and people are in phases a
startup is in a phase and in your first
phase where you're in the creation state
you should not be in typescript you
should not be hardening all of your
stuff with 100 test coverage and you
should be not be making a design system
what you need to do is build a really
good experience that's messy and
expressive and then go harden all the
things that are tried and true because
you can't predict it all and if you try
to sit down and predict it all and and
build this like perfect thing from the
start you're just never going to get to
the point at which it should have as
fast as you can it's weird we think we
move faster with all of these rules and
all this stuff but we end up moving way
slower and so yeah i'd say phase two of
your company let's say you have success
and you're sustainable and it's time to
like rethink something because you need
to grow the team by 10 or 50 or whatever
go ahead and spend a few months and
refactor and harden and create the
components that are obvious like and
don't go micromanage your design system
oh okay wait i'm getting ramped up sorry
okay anyway
no i think look like you have this uh
i've seen you do this rant a couple
times um
i think you need to slap a fancy label
on it and then put it put into a nice
graphic and go like this is the way
that you should do things because uh
have you seen emily freeman
at aws
she did she
basically had some issues with the
software the traditional software
development life cycle where it's like a
very waterfall approach and shows she
reshaped it into like a
like a circular concentric circle grid
with six dimensions and it made a lot of
sense for some people um but that at
least encoded her opinion and she could
give it a name and and she she said like
this is the way you do things now and
she had a whole spiel on it but like
sometimes it's better to sell an idea or
like a workflow if you give it a name
and you put put some diagrams on it and
make it a thing rather than uh repeating
the rant every time
yeah and so yeah this is the phases
range you're mentioning like yeah
yeah
catchy acronym or like you know whatever
um
and and yeah i mean you know i see
island's architecture was a catchy
catchy name for it you know sure was
yeah people could visualize that name he
had for um oh holotypes right it was
holotypes holotypes i never heard that
word before
that was so cool yeah
oh that's that's what jason called it in
an article he was oh no he was saying
your app is one of these holotypes and
if you were a certain holotype it could
lead well to you know an island's
architecture or whatever
yeah yeah very good so basically this is
like uh part of my long-running study on
how the thought lead or thought leading
for fun and profit you know there's like
sort of the cynical thought leading
which is like hey i want you to buy my
ebook
but then there you can also thought lead
for for benefit if like you really have
a cause that you just really want to
align people on um you have to com
package it in a message that that people
can spread for you instead of you having
to do all the work
totally yeah i think you're doing a good
job with that being a thought leader by
the way i very much enjoy your thoughts
i don't know what i'm meeting people too
i mean i think that's what's fun is
you're on an exploration constantly
digging and going through all these
archives and you're just kind of
shooting it out as it happens and
honestly that's kind of all i do with my
css tips i'm building stuff every day
almost all day and so i'm like but
here's it i just did this thing this is
cool i think anyway maybe someone else
willing i would say like um the thing
about css like no one ever feels like
they know all of it
do you think that's a problem
no i think that's how every language
feels
so
i've been trying to uh
push back on this a little because i
think being able to say
this is the entire map like okay you
know there is a spec right
and it's not an infinite list it's a
finite list
and you can you can at least kind of
draw like here's the world map you will
never visit
the entire world but at least you know
like okay here's a continent here
there's a continent there
um i haven't gone there yet but it's
there when i need it
at least like having boundaries around
like okay the world ends ends here
and um
i think that that's an interesting way
to think about like learning or
evangelizing something and this is
relevant for me because at my job uh we
have a fairly complex system
and no one had ever enumerated the
features until i went through and just
went like okay we have 30 features
and once you know these 30 features
that's about it for the system and being
able to say that's it
and and having an end to your learning i
think it's a really interesting concept
to have
yeah docs kind of give you that sense
right you land on docs and you're like i
have the world in my hands every api
call and every function is
articulated here with every parameter um
yeah and i definitely see where you're
going i think that can help someone um
get perspective of the language that
they're jumping into but there's like
surprises right like you learned
javascript for uh who cares how long and
then all of a sudden someone goes you
heard a functional programming go and
then you're like what and then you go
look at it you're like what are you
doing with javascript and then it
doesn't stop you're bringing it to
infinity right and then like
typescript's the same way you're like i
thought i was like i liked or knew like
javascript and typescript just tells me
all day that i have no idea what i know
and you know like
yeah css is the same way i've been
studying and building things in it for a
long time and i
i'd also i'm a human you know some of
these things are so big that i can't
memorize every map in territory so i
revisit and so i think what happens uh
with experience is that um you know like
okay
every programming language has a moment
where you're banging your head against
it you know whether it's flexbox or it's
um you know some extends in typescript
or something that's extending extend
extend and you're just like lost in the
extension world like
in these scenarios you eventually emerge
right you bust out
and your head comes popping out you get
a breath of air and you're like i have
defeated it like and what i think
professional developers are they're just
seasoned at defeating all the little
things in so much that they're now in a
perspective where they they expect
things to pop up that they're not going
to know but b they've if they run into
things that they run into before they
don't have the same hour or four hours
or two days that it takes to solve it
they just walk right over it because
they're like oh that was in that
territory over here i remember like two
years ago when i had to go there like
i'll just go there i don't remember
everything about it but i'll go read it
and study it and be like oh yeah that
was it okay and i'll put that back in
this happens like every time i use
intersection observer i'm like i know
intersection observer and then i'm like
i don't remember this syntax i gotta go
look it up um it's so funky um
anyway yeah
and basically i just want to copy and
paste intersection observer code and
just give me like the three or four
design patterns that work and
that's about it that's that's all people
want out of in section observer i mean i
think people want the matrix i think
they want to stick a thing in the back
of their neck and just be like css i
know it i will now command every box in
the way that i've ever desired you know
um yeah briefly though before we get off
of complexity cliffs um one of the first
components that reminded me of
complexity clips was the tabs component
um and we've been talking about that so
we talked about nicole already and so
one of the things we're trying to do is
make tabs on the web easier and in my
studies um i have found
that
it's a massive complexity cliff like
there's a hundred variants of what tabs
are more than that over the years we've
seen thousands of variants of tabs
and they all have little niche features
some little niche features make tabs
feel like a carousel
some tabs kind of feel like an accordion
some tabs feel like those paper tabs you
had in a binder and they all have this
like little thing and they all have
different accessibility implications and
usually
um that that's like the deciding factor
at least i like open ui they're like
okay here's what tabs are tabs are
basically this accessibility ux as a
foundation like the skeleton of the
thing works like this but i go look in
the wild and i see all of these
different tabs and i'm excited by it and
it kind of frustrates other people
because they want to go hard in the
pattern right this is what um
the button is trying to do it's like
hard in a pattern and so people want to
harden these patterns they they look so
obvious to harden and then i go research
and i basically call them keratabs now
i'm like oh tabata cells you mean oh
keratabs they're like no tabs i'm like
keratabs
um because the variations are so fun and
exciting and i actually think that's
what the web is excelling at is this
weirdness is that um
anyway so but the complexity cliff is
very clear in tabs where there is really
no single way to build one that would
fulfill every tabs component need that's
out there
like a lot of tabs have nothing to do
with swiping when i think that's
mandatory on like mobile you got to be
able to swipe between tabs
we've been trained that way for like
five years
but they would disagree like the um
open ui organization because that's just
not part of the float anyway so what i'm
getting at is these complexity clips
make it really hard to harden things and
um i'm at a point where i'm trying to
study which ones are on which side of
the cliff sean that's what i want to
know
uh because the ones that are on the side
that it just goes steep downhill i think
it's okay to let those be free ship
primitives and let people be weird let
people build all these fun different
exciting tabs like i don't i'm not that
interested in that but
uh we could move into deferred inputs if
you want as that's that next topic
i i've had two things to ask you before
you do this so one
you seem to have a image in your head
about complexity clips have you
visualized this because i feel like it's
an analogy that is right for
visualization
no i mean it be an iceberg you're
looking at a button and it looks like a
simple button on top and then you look
under the water and you're like holy
this thing has like request animation
frame loops in it or something you're
like i just did not predict that
yeah i think i think some visuals would
be nice to for people to really
instantly get it um and then secondly
could you introduce uh for those who
would like i've dug around open ui it
seems like um basically it tries to be a
browser a vendor agnostic
spec of here's how here's extensions to
standard html
how about you how about you help me
define like what is open ui um who runs
it
uh what is the near term like should
people pay attention to this now is this
just an r d phase like what what's uh
what phase is it is it
sure yeah and you know you should have a
unit on because she's a member of the
open ui
cabinet i have no idea anyway it's a
community group it operates like a
community group
um
it's led by i think greg whitworth um
maybe brian cardell also
um
dave rupert is on it also he does a lot
of presentations dave rupert is a he's
pro tabs uh not pro tabisell he has a
spicy accordion that he's made that is
basically tabs but it's it's not tabs
it's a spicy accordion anyway okay so
that's the sort of things that sometimes
get talked about at open ui but their
goal is to
move faster as an agnostic
implementation team
than what browsers would do and how can
they operate like how the community
groups do for css but do it for
components and so they have one that's
like a recent success um i think and
it's taken a long time to get there
which is the popover component have you
heard about the popover component no if
i can pull it up you can tell me about
it awesome it's it's classic you mouse
or you focus into a link and you get a
pop-up right is it this one
yeah
and so this took a long time to um get
through it has tons of you can see that
they are very oh look it's an editor's
draft oh they have three in editor's
draft interesting so the select element
is also there i know they've been
working on that one so something that's
a styleable select
and i bet you that depended on the
pop-up
anyway so i'm not a super pro here about
um how they operate but i do know that
their goals are to make
um accessible well-defined open source
community group driven
web com components i think they're web
components
um and yeah and eventually i think their
goal is to have those things accepted
into browser specs and have browsers
implement them natively maybe i'm not
really sure
where that goes from there oh look you
can see masonry down there for pop-up
he's the googler who's doing a lot of
the implementation and he's on the group
there too melanie richards awesome
uh yeah it's got a great crew of cats
that are like hacking on it um they
they're diligent they seem passionate
um
i'm not a member
because i'm kind of
i don't know if we need more primitives
sean i want to it is a hot take i know
i've talked to brian and a couple other
people about it but like like i'm
actually um
so this is why deferred inputs is an
interesting conversation i like to swing
for the fences i like to swing a lot
bigger okay so for example let's say um
open ui or someone else and open ui i
seriously
i admire them so much i think they're
it's a really important and
impressive thing that they're doing so i
think i'm also just intimidated but
anyway um what i would like to suggest
is okay consider the calendar so maybe a
calendar component
gets you know standardized so you could
customize it you don't just get the 20
year old dinky one that's in your
browser right now right
i hate that one it drives me nuts i'm
like geez louise there's no one here
well there's anything there's one that's
worse than that it's the number number
input you know with the small tiny
arrows
oh my god seriously
i don't know someone on a netbook with
like one of those minnie mouses or
something anyway um
okay so imagine this sean this is my
crazy idea called deferred input so you
put an input in there type equals date
and you put an attribute called deferred
on it and what the browser does when the
user taps that input is they broker a
relationship between that web page and a
third-party widget and a third-party
experience because what i want when i
click on a calendar widget is not just a
stupid calendar sean i want my events on
there i want to know if what i'm picking
is going to interrupt or something if
i'm booking dinner i need to know all of
these different cases i want to know my
stuff in there but i don't want the web
page to know anything about it so
imagine for a second that we went to the
app store on mac os and we installed um
a calendar component called google
calendar who cares or maybe it's ical
right icon makes sense for safari to
prompt so you get these deferred inputs
where the broker sends the request to
this app and says this user is
requesting a date all we want is a
string formatted like this give them an
experience that's rich and set and has a
session and you're logged into
um and let them pick a date and then
we'll just get the date back so the date
input is still just a static text input
but it the browser brokered a
relationship to third-party um
developers who can create specific and
robust experiences for these inputs so
i'm not talking we just you know as a
group come up with a cool date picker
that people can pass custom properties
to to style it i think that's a great
stopgap but i'd love to see us like make
a rich ex dude picking a date is a rich
experience moment it's something that
people can excel at and show you how
beautiful it is like imagine sunrise
like that app that made the calendar
thing that just like disrupted every one
time they made one and then imagine
someone else now you had choices sean
you had choices for your date input as a
user that's what i want to see i want to
see users having the ability and i want
developers to be able to compete for the
uh creation of those widget experiences
i think browsers have been sitting on it
and it drives me nuts they're crappy and
it looks like they don't care so just
open it up just broker the relationship
to a bunch of other developers that want
to get a two dollar component so that
you can have a session logged in
calendar picker like
and anyway so a lot of these inputs that
are a lot of these components that we're
waiting for
that are more robust that we need more
out of like some of our primitives i'm
like don't just give us some new crappy
primitive that looks like crap we i just
i'm tired of those like give us an
opportunity and and open up the uh open
up the industry to a new monetization
flow like you're basically creating
third-party developer anyway whatever
sean i think i've pitched it enough what
do you think is that crazy so i need to
clarify one more thing uh so first of
all have you written this up anywhere
this is in slides i have like a little
presentation i've given it to people
it's just um it's pretty much can we
find it somewhere
just just so people can follow up if
they want
i think i could it's just a random idea
i have so i assume i could open i mean i
if you know if you you believe in this
so what this this kind of conversation
always reminds me of the cathedral
versus the bazaar
you know that nice
that uh
fred brooks
this is this is old school software
development right like how do you design
an ecosystem do you want do you want to
say like i do it for you because i know
best or do you want to say i don't know
best and let everyone just have it out
um and so open ui is kind of the
cathedral and they're like okay we'll
research everything and then we'll we'll
pick the best way that is the superset
of everything and then the bazaar is
kind of like this deferred input
approach where it's just like i don't
know and i'll just give you a single
extension point and you guys go nuts
yep that's exactly what it's uh and yeah
basically just be a um what did i call
them um
because they have them in android it's
an intent the input basically emits an
intent and it says who can handle the
intent right and all these developers
now have apps living on your operating
system that the browser can broker the
intent with it says it's just like how
intense it's actually extremely modeled
after the
mobile experience of intense because i
love that experience it's really nice
you're just like yeah look at all my fun
custom stuff i have that can handle
where my image goes like that's really
nice
um and yeah we should have a color
picker like that like give me the
opportunity to click on a color input
and i bring my own color picker to the
table chrome
you know so i don't like yours
yeah anyway is this the user so there's
a few personas here
app developer and then the user viewing
the site so each viewer has like their
own experience
of this thing
okay
they bring like a utility built of
personalized widgets in their browser so
anywhere their browser is logged in and
how many of these are there i mean apart
from i've labeled a few here um yes
calendar autofill payment photo picker
and file picker oh photo picker and file
picker already done is what this says in
my deck i haven't looked at my deck in
like a year um because yeah if you think
about photo picker um
well i guess on mobile it's deferred but
on desktop it's not right on mobile when
you click on a file uploader or you
click on something that allows you to
upload you get to fulfill it with your
own choice of an app your phone your
personal stuff just needs to return an
image right and then the browser doesn't
have to know to care about the whole
experience that it took you to find it
because you went back three years on
june 24th to find the hamburger that you
were looking for right like
anyway yeah so autofill would be an
awesome one and payment like why can't i
just install a third-party payment
installation thing and when i
pay yeah it invokes my own experience
uh
well
what about security like if it's a
third-party widget
and it's payment like i'm giving you my
card details
user installed it and so they're
hopefully they're trusting what they
installed and the the page itself is
only getting results back so it's like
the same static results they would have
got before so the page doesn't get to
know anything about the third-party
experience there's like a very
it's just a message that's going to get
passed back and forth yeah
and do you think so uh one example of
this that is
done in userland is essentially password
managers
um like uh
right they override all the password
fields and then they give in their own
little things why can't it just be done
like that
oh so like an extension model
sounds good to me so yeah you could as a
developer go build a whole bunch of
really awesome you know extensions built
on the extension version 3 manifest and
deploy them across all the browsers and
deliver a unique logged in
experience for color picking and sure
yeah maybe you could intercept those
clicks and invoke your own overlay ui
that actually makes sense to me
okay got it i so it sounds like you know
of those things that you listed those
are inputs
um
there are a lot of things there are a
lot of components that are not inputs
and
uh i guess open ui would be
involved yeah like tabs carousels
popovers yeah
so you're not in con conflicts um you
know i don't think so yeah yeah okay and
both can coexist they could create a new
date picker and that should be the
default we need better date pickers so i
really need better default components
anyway so yeah i'm like
this isn't me trying to stop them it's
like i just think there's a whole
opportunity
for competition like yeah and it could
be cool yeah
uh one one last thing that comes up when
uh whenever you talk about image pickers
um
did you ever see that talk by ilya
grigorik about um
the
image picker up like file up size
optimizer
i don't think so tell me all about it so
he had a fantastic talk which like
really shaped the way i think about so
okay uh oh god
i i'm okay give me a sec to pull this up
okay uh because yeah i don't i don't
think i'm gonna do this justice unless i
literally have it up
rick
um what is his twitter head no he's not
super active on twitter
uh i think it's ilya some igorik
oh i was wrong
sorry
okay all right um
all right here we go
so
uh this is where this is where i shouted
it out um he had this concept of the
the head the torso and the tail
um
and
it was like how do we solve
um how do you solve image performance
forever
right like you can do some fancy stuff
with like
your image optimizing cdn you can do all
these like source set things no one's
gonna do it it's just it's too complex
like yeah it's cool and you should feel
bad
if you don't do it right but also
there's just too much to learn serving
images is very hard yeah it's super hard
so like he was he fantastically
broke it down to like okay so he's at
this performance.now conference right
and he said um
okay yeah here we go
i like i just i just love how clearly he
stated this if you want to solve the
image problem once and for all the cost
should be free the number of choices
should be zero the tools must do the
work not require work right now the
tools that we're being given require
more work hey the default sucks but just
be backward compatible here's the source
set thing with like five different
options and hey you gotta do image
processing on your own good luck um
that requires work so people don't do it
right so
the kind of person that goes to a
performance.now conference that watches
performance videos in their free time
that is what he calls the head
um
uh that
i'm not i'm not finding the right slide
but essentially like there's a there's
an adoption curve right there's there's
the really like performance oriented
performance minded people
who are going to adopt all the best
practices they're going to listen to
your talks they're going to read your
blog post then the torso they're like
they're just you know following whatever
the the
the body says and then and then there's
a long tail that just will never read
anything they will just do whatever this
is easiest
so you see if you want real impact you
have to address the torso and the tail
not just the head because the head
um
has the time to list to learn all your
stuff but that's not the problem the
problem is the rest of like everyone
else
um
sorry i i don't think i'm like doing
doing they're doing a good job of no i
think i'm following yeah so so his
proposal by the end of his talk uh and
this is like in 2019 was that
okay all right uh image optimizing cdn
too complicated source set to
complicated um
never just never upload a giant file
that you never giant photo that you
never need so he was like let's
introduce an image uploader component
that has image optimization built into
that
that point of upload so all points down
the chain just never get there
i i thought that was like the this i
thought that was where you were going i
don't know if you talked to him before
about this
yeah okay i have not
um but that kind of reminds me of ink
uploader which i used i don't know five
years ago or so it was kind of like an
early imagex server but yeah you'd
upload the biggest image you had and
then request it with one url um and
maybe some parameters on the url and you
get you could get a whole dynamic set of
images back yeah so you only had to deal
with the one image tag and yeah
yeah well good stuff i think that's the
way forward
yeah that's an image optimizing cdn
so you have to pay money for that um and
of course like you know that that
caused some engineering and resources um
so he wanted to go a little bit more
than that i don't know how practical it
was but it was very convincing at the
time
uh
and uh you know i hope he i don't know
if he's still at google or not but uh
you know he is yeah
he gets some sway in the design of this
thing
nice yeah i like that uh analogy though
i think that works really good
which is yeah i mean it's which i so in
the broader context of dev developer
tools and like designing
for ux versus dx which is our next topic
uh
yeah
um
i think about this a lot which is that
whenever we appear at conferences and we
like drop a new
blog post a new feature and we just
expect people to like
know about it and learn about it and
adopt it like within a year otherwise
it's their fault not yours
and i'm just like no people don't have
time
most people just want to know like what
the best practice is they'll go do that
and then they'll move on with their day
and that's about all the time that they
have for you
um and and so if we want to
you know improve user experience like we
have to make it
basically bring this for for people to
adopt
um the best practice
yeah so we can
yeah do you want to start there like
yeah that's the the goal of the phrase
or like that's like the
uh the the heartfelt meaningful good
side of the phrase that dx can lead to
good ux is
the intent is there which is that people
want to deliver good ux
and they're not wrong that
good dx can't deliver a portion or maybe
a lot of ux
um
but i think that the phrase is kind of
not doing itself a favor um like it's
it's kind of a short-sighted view of
what dx is versus a short-sighted view
of ux and i'm like i don't even know why
we're
so okay so first off let's just say that
to have dx that even could facilitate
good ux someone had to teach the dx what
good ux was like ux had to start it in
order like be the initial cause for dx
to exist that it was knowledgeable to
give you good ux so i'm like how does
people think that dx just magically
gives good ux it had to be written by
somebody like the good ux was created
and someone spent valuable time thinking
about good ux in order to bake it into
something that could be shared better
that then helped facilitate a workflow
which is just like how like a bakery
would work right you just got like okay
we've got all these processes they're
working like this
and now we're going to always use this
flower instead of have random flowers
and we're always going to use this scoop
or something like that you just start to
like harden these things over time so
that when new people join they don't
have to go learn there's three scoops
there's just one scoop now to choose
from
and every time those decisions get made
like they're made in a good faith i
guess like the bakers are trying to make
more
um
you know muffins or something for
everybody like the ux is eating a muffin
um okay
that
essentially you can overdo it just like
in a design system you can overdo it so
where eventually maybe you make a
factory maybe you've got you know this
happens all the time in code we build
tons of factories to stamp out web pages
to stamp this out to stand we love our
automation
and sometimes automation
all it does is harden one good ux choice
and it might make subsequent ux choices
harder
um
in any way so okay so then here i want
to go back to like the
like dx is so much more
than
providing good ux
like there's so much more to it like you
can have an entire
day's worth of dx that never touches ux
and that should be fine like you should
be happy with that because what you're
trying to do is empower everyone after
you um
or whatever it is like i think it's
valuable time so basically i think it's
short-sighting dx to think that it can
only be valuable if it's affecting ux i
don't think that even needs to
anyway and then um
right i think dx is like you could do
anyway so dx can be entirely in a whole
other sector of the organization and
never change the ux and i don't think
that's bad i think sometimes it can
inconsequently change ux and that's
awesome sometimes it can intentionally
do it you know maybe data the data
center team over here they switch to a
different cluster system and now they're
you know shaved 50 milliseconds off a
request or whatever you're like cool the
user might
feel that or whatever um
but then also ux it's short-sighting
what ux is
if you've ever met a ux designer
to them the user experience isn't how
fast the milliseconds went down the wire
even though this is part of the user
experience is how fast you got it to
them they spend
weeks and months researching users
to make
informed decisions about ux
so to think that dx can just magically
have all of that i mean unless the
designers are baking and they're the
ones creating the dx maybe dx is
directly affecting ux but really i think
ux starts with research it doesn't start
with good dx you have to you have to
know what good ux is spend time on it
and actually create it before you can
then go harden it and make it like
repeatable and shareable or whatever it
is and also ux is just so much more than
that moment the button downloaded and
you pressed it so it's like belittling
the whole concept of ux and dx at the
same time making a comparison that
doesn't even really matter like here's
another thing dude is you can have the
worst dx in the world let's say you can
only ssh into this one server you have
no tools you're just with vim and it's
like a insane react project you don't
even have webpack you have to go edit
the output of a bundle let's say that
who knows dude a determined ux person
will do whatever it takes to make the ux
good they'll go hack that code it
doesn't matter the dx won't matter what
matters is the desire that someone had
and you know conversely uh you could
have like the best dx in the entire
world and deliver a button that says
fart
because the text in a button bro is part
of ux man there's ux writers that's all
they do is provide text so maybe if your
dx or your button was so rad that you
could like a new button and then you
drop it in and it has a whole suggestion
of ux written content in it like i don't
think you're really getting the
full-fledged
delivery of ux because it's so
contextual it's so subjective it's so
human
that
all you get from dx in terms of ux is
anything that's on rails and anything
you get from dx that can lead to good ux
usually came because good ux sourced
into the dx that then changed to the ux
so i just don't
it's just like i'm like i'm not sure
what everyone's trying to say other than
i think you know which is i said at the
beginning i'm like i see the initial
goal here which is like hey if you have
um really great tools it can make it
easier to slice some bread and put
butter on it and then now you have
sliced butter way faster you know like
look at us and we made a process for it
and now we can do 10 breads and 10
butters in a parallel right we're gatsby
and now we're doing parallel bread uh
buttered stuff right until the designer
says oh we're not using butter or we
need new butter and peanut butter and
everyone's like oh we made a factory for
that last process and you're like dude
users want peanut butter now too so
sorry you're gonna have to update all
the dx to match the new ux so
that's kind of what i see i think it's
almost like ux is equal to dx which
could trickle down to ux again
at least that's the intent and so i just
don't know why we don't talk about the
full cycle and i don't know why we want
to belittle the two concepts like ux is
more than just developers building
buttons and
forms and flows and stuff like that
there's a whole team of ux designers
that they are literally fighting your
company to have good ux
and i just that's why i think a lot of
designers don't retweet that dx is
better than ux or that dx will lead to
good ux designers just know that they're
at the table every day arguing with
somebody that they need to refactor this
because it's not good user experience
and the person over there is going
no i see all your research and i see you
did user studies
i just can't allocate the resources and
meanwhile they've got a team of 10
people increasing the dx of the back end
system over here right and they're just
not funding the ux so anyway
i can just see like all these different
sides to it and i'm i'm just not it just
doesn't do anyone to favorite it's not
doing dx a favor like it's not if
anything it kind of like makes dx look
like the hero too i think that's my
biggest issue with it it makes dx look
like it's the thing that led to good ux
i'm like no it doesn't
there's no
it never anyway so i'm like it's not the
hero the hero here is having good ux
like that's what everyone wants is good
ux but dx steals the show and that
phrasing
and it's just so anyway i'm mostly
annoyed with it and i'm like it's just
it's based on like these couple of paths
like people will look at this dx led
like that's one path of a thousand that
you'll take in building a product that
has good ux
sure your dx led to good ux there
congratulations just don't praise that
phrase like it's going to solve all of
your ux problems it is not the
responsible party for good choices ux
focused individuals are the ones that
make the good ux choices and can funnel
those through dx and back around or
whatever so anyway i just think it's
missing the point in a lot of ways how
do you feel about you know why
you know why we hear so much about it
it's because
the ux people have nothing to sell you
whereas the dx people have something to
sell you
economic incentive to drive things
yeah dx is the hottest phrase to get
your product recognized right now that's
for sure huh
do you think so
do you think the term is tarnished now
do you think it's so
no
it's tarnished to me but no it's still
hot as ever are you kidding
it's my it's in my it's my job title by
the way so my job title is literally
have a developer experience
and i don't know if i want to associate
myself so closely with this thing
oh really oh dick i mean hey dude i
associate myself with css how many
people want to do that
i i think it's amazing have i told you
that i think that you and yoona are like
my like i i idolize you guys so much
because oh no way being able to advocate
for css hello like
um
it's just it's just
so first of all you have to be good you
have to be like really good at it and
both of you are actually really great uh
but also just you're advocating for
something that everyone can use so
there's nothing to sell you it's just
like you already have this and
like 90 of you are terrible at it or
like you could be better you know let's
put it politically correctly so i mean i
think it's great i i css will be around
longer than both of us will be around
and i think it's
no one can i i don't know everyone can
always use a bit more css in their life
i need a css shirt by the way
oh i could probably figure that out i'll
send you a link uh later it's which is
funny right like you know they're uh
they're like 100 different js comps and
like maybe i don't know if i've ever
seen the css conf
there is yeah and i think it uh there
was one a really popular one for five
years in europe and it spread there was
like ones happening in other conflict uh
continents but it's i think kind of i
don't know the conference scene is
shaking up recently but yeah css is
definitely underdog in all this stuff
huh
i mean i yeah so i mean i i was i was
really encouraged when you joined um and
and then you started putting out really
good stuff and i was i just i think
google does something right when you
when you hire
uh developer relations i don't know what
it is but
um every every person i see is just
stellar talk to dion
dion has um i have an emotion was he
responsible for
yeah he's the one who saw me um like i
anyway yeah he pretty much pulled me out
of the team i was at and google and was
like hey you want to do this over here
in chrome and i was like i idolized you
all i couldn't do that and he's like
you're one of us would you like to be i
was like okay and he totally believed in
me and um gave me lots of chances and
was and yeah i'm and i think there's
lots of so he left recently a couple
months yeah shopify
shopify and um you could tell
um he shattered
people like there were people that were
like dion was like
a different person he was someone i was
emotionally um
engaged with he has this amazing ability
to listen and anyway what if
what a great leader and manager he was
um and he had he has some sort of skill
i don't you have to ask him how he knows
i was asking someone um and how he can
judge people but yeah he's got a talent
there
you know i had so i went to boulder
recently and i think he is like kind of
just just outside boulder or something
and i had lunch with him and he never
he's so humble he never brings this up
he's just like yeah i like tech like you
know i think shopify is cool you know he
never talks about like how he runs
his org and how he how he thinks about
hiring um
interesting guy
interesting guy interesting guy and he
just carries his candor so well
um yeah um but back to dx as like a job
title i do think it's still important i
just uh and that's what i'm saying i
don't think the phrase does your job
justice like it's making dx sound like
it's only valuable if it is impacting ux
and i'm like that's not the case you can
empower developers to save hundreds of
hours a week and it maybe never touches
the ux and who cares you just still
saved hundreds of hours like why is the
value of dx somehow hinging on its
ability to start getting more ranty
again why is yeah this doesn't i'm like
it's not doing it justice like it wants
dx to be respected unlike it already is
so why push that this is like its best
moment like
yeah whatever
so um i think you know just just because
you're you're interested in this uh i've
been defining it in
in
maybe like four ways
so the first is api design
uh because
um that is that
everything is downstream of like did you
did you design the right abstraction
right like the same thing that you're
you're doing with deferred inputs and
stuff like that
uh and then second of all docs for for
that api right you have to
um be able to find it first of all it
needs to have full coverage everything
that
is in your api should be locatable
uh and then it should be anticipatory
like tell me what i'm going to need
before i know about it
uh which is a high bar i mean
but like no i like that that's like
visiting a docs page and it's already
got my um keys in it like i don't have
to go find my keys it knows i'm like and
looking at the docs and it autofills
them but yeah to me that's just like
templating it's like templated docs i
mean everyone can do that you know like
it's uh it is it is it is good people do
do enjoy that but i always want to have
an opinion like uh okay you know you
have like two required options and five
not required options but this is
recommended in these situations and this
is only for power users tell me that
in the docs before before letting me go
on uh and figure it out on my own
so that's what i'm trying to do with our
docs and then the last part is um
have i done four yet uh the last part is
community three yeah right
okay so so there's there's developer
relations which is like traditional
content creation like teach me how to do
stuff do tutorials do meet my meetups
yes
hype it up pipeline yeah and then the
last part is community um which uh
basically like do you have a place to go
to ask questions and how how much you
know um like can you get a job in this
is there like a training is there like
career progression do i see myself
identifying with this technology as a
career like there are lots of
technologies in our lives there's only
certain technologies that we choose to
call to like say like i am a x developer
i am a react developer that that means
something that is over and above
just
the the particular library and framework
that you that you use um
i don't know if i should do that i don't
know if i should be so expensive and say
like oh yeah community is part of this
too
but also it kind of is
so it definitely is um it's something
that i tried and i still try to focus on
by having open office hours doing the
amas um i try to reach out and yeah
that's why i do conferences i like to
dude i don't think i can effectively do
my job if i'm not connecting to the
community because otherwise i'm living
in a bubble and i'm not putting shoes on
that are uncomfortable for me like i
need to be constantly putting on shoes
of other people to have my own
perspective
uh shaped well and then it makes me a
better educator it makes me better at
all these other roles yeah
yeah i think it's very healthy that it's
included
that's my that's my map of developer
experience so far and i'm trying to
implement that
awesome uh that sounds very amicable and
it sounds like you have four pillars and
everything at google ends up being in
four pillars so congratulations on
google i like things to come in
i like things to come in threes i don't
know yeah threes is a little more catchy
huh yeah
wait wait so what's an example of the
thing that that's four killers at google
oh let's see if i can i don't know if i
could remember one right now but it's
like any time a leader is presenting
like slides
there's always one slide that's got like
four pillars of our beliefs or whatever
and you're just like come on this is
just a template slide everyone slaps and
they go i can fill this with some crap
anyway so we teased it every time we see
it we're like there's the pillars
[Laughter]
i mean
this is the whole thing about draw the
map right like like i want to know like
where do i end because if you just say
it's all the things i i don't know i
don't know how to deal with that but if
i've covered like the the big macros
it's kind of like your your meal right
like when you're when you're eating you
want to make sure you're taking care of
your big macros and and you you're
roughly like you're gonna survive
[Laughter]
so nice
yeah that's kind of how i think about it
uh should we talk about self-disruption
yeah
um all right so tell me about what this
what this is and what prompted it
actually
okay let's see what prompted it
um it's just something about
like not innovating or was it that was
just me making a comparison yeah it was
apple and their new machines it was um
chris coyer sharing a css tricks article
about alternative browsers based on
chromium that are offering unique and
expressive experiences it was me
reflecting on opera when they tried to
do this with opera next as like a
self-disrupting um browser
implementation it was really cool um
it's like bubbles every time it was all
anyway it was pretty neat um
and i just was like start i just started
to think about it i was like in tech
okay it's like a as a naive implementer
right because i'm pretty much swinging
the hammer on the engine every day like
i'm constantly in the house making sure
the door handles are shiny and open easy
like this is what i mean by like being a
ux developer like i'm just going around
making sure
that it all flows and i'm like in my
head i'm like if we had tons of money
and this thing was just so successful
you know what i would do is i would roll
that all into like a labs team that made
it so that i made the next generation of
house like let's quit hacking on these
same houses we all have okay we have a
great process and it's all hunky-dory
but at the same time like we're
outputting a factory looking thing
um and and we seem to be happy and proud
about it we are but i'm like okay so for
me i got really confused i'm like i
would if i had all this money and
success
roll it entirely into disrupting myself
into the next coolest thing because now
i don't have to have the same stress as
i did the first time the first time when
i made my product i was fighting right
and you were pushing you had this ideal
and this mentality
and i'd want to live that again
and what i don't see happening is
companies do that i see chrome browser
what is it 10 or 15 years old it looks
kind of the same it has a ton of new
features under the hood but i'm like
this is a very unexciting user
experience but that's probably fine
that's fine for a mainstream application
and yeah you don't want to go to so
anyway like i understand why
um
it's risky to try to self-disrupt but at
the same time i made the adobe
comparison with you because i'm like
20 years of success of photoshop um and
yet there's still like every three years
a new design tool popping up that turns
everyone's head away and is almost it
always feels next-gen when it shows up
sketch showed up everyone freaked out
three years later we all freaked out
over figma three years later we freaked
out over xd
um and what and yeah they're like
they're disrupting photoshop but
photoshop's not disrupting itself like
why can't they just sit back and be like
we've got hundreds of thousands of
dollars and lots of developers let's
pivot everything into like
v2 of this thing and just rock it into
the future you know like let's do what
everyone actually wants instead of just
repeating anyway so that that was the
thought process and i was like why like
sean why don't more people roll their
success okay because they do this in
business right if you get a big fat
success in your bitcoin output or what i
don't know like you roll your money back
into a bigger investment and you roll it
again
but they don't seem to do that with
their products it's almost like it gets
big they get
rich they get
not inspired anymore and their focus has
changed and they're no longer in that
mindset of
building the best product they're now on
them they're just in a new phase right
and i'm like yeah but you can be in the
new face and invest in like another
disruptive phase right like now you have
the funds for it and anyway that's what
it's all coming from yeah
um
a lot of thoughts on that first of all
wasn't so wasn't xd doesn't xd count
because it's also from adobe
um
i would argue it's of
this is so rude of me to say it's pretty
much a figma clone
yeah and it's great i love xd and in
fact i like it better than figaro you
want them to innovate at the end of the
day
i want them to okay here's what i want
photoshop to do with all their money and
all their fantastic developers is make
an actual web design tool like a real
web design tool and stop messing around
with 20 year old style gradient makers
and all this old crap that you've been
carrying around like shed all that
baggage go something straight up web
focused and just
chew that crap off and just
spec centric design tool something that
actually like has html elements and it
helps designers facilitate something
that is like
more oriented towards a real thing
um instead of
continuing to
yeah so webflow like i mean
yes sure yeah so like so webflow tried
to disrupt the design market by building
like a web centric and web focused and
spec focused design tool um and yeah i'm
like why doesn't adobe look at that and
go okay we need to do the same we need
to have uh our own version of this with
our name on it we've got the funds we've
got the people like they have see like
from the outside they have everything
they need to do it like i look at google
the same way i'm like look at chrome
like they have all the money and all the
people they need to make another version
that's just incredible
um and just does something fresh
but yet they're not and so yeah i was
mentioning too it's like egos just like
to polish turds apparently so i think
that's just kind of what happens is your
ego grows and you're like you you're
smeagle i think i think what happens is
his success turns a lot of teams into
smeagles and they sit and go
yeah and they just they just stroke the
ring um and don't do anything new with
it or whatever and i guess that doesn't
make sense because they're not sitting
on a pile of money but anyway you got
what i'm saying what adobe's sitting on
a pile of money i
i'll definitely vouch for them for doing
that i think they're like a 200 when i
last looked at them like five years ago
they're like uh like 60 billion like
like decent size and now they're like
240 billion and i'm just well
uh it's a great like these
you you think you think you know these
companies and then they they just blow
past any any form of expectations um
okay so wait uh a couple couple things
on this um so one is
you know i had a i had a app that i
updated you know there's a i have 200
apps probably on my phone that i do not
update
you know why i don't update them because
they may they may change
and i'm scared to change they work fine
for me right now
um and i updated one of them and yeah
now like the old ux is gone and i can't
get it back
yeah
so sometimes like don't fix my aim broke
you know like if i rely on this for my
living and my business tools like
it just makes sense to just keep it
for the users who were like very used to
it
that that means something you know what
i mean like that yeah that lack of
change
actually is a feature sometimes but yeah
i mean obviously innovation is is
helpful um you did not want them to
produce a thigma clone i get it um
they're probably looking at building a
webflow or buying woodflow uh it's both
are both totally possible but i don't
think it's proven itself yet i don't
think like designers have like flocked
to
webflow like they have to figma
they've been distracted with um yeah
design systems and components their
design tools are competing competing
in that space to you know make an api
for all your tokens if you make your
artboards like this put your squares
like this and give them a name and
you'll output an api blah blah blah yeah
yeah they're over there churning their
wheels hard uh
digging holes in my opinion yeah well so
okay and then there's also the fact that
like um
it i think it takes
a few years for a product to season um
yeah and
and like photoshop just uh you know i
think it's now like there's like the web
version or like creative cloud or
whatever like that hasn't been that been
around that long and it takes a long
time to reach like the mass population
again this is the whole concept of like
you're in the head you evaluated all
these tools when they came out you're
like you know the difference between
them most people don't
and most people like hear about them
like five years after they're out
because like that's that's how long it
takes to like hear about things you know
from your friends and stuff
um
so you're wanting innovation at a pace
that like
most of the country or most of the most
of the industry doesn't operate on
so i just want you to norm yourself on
like
um
because you're at the cutting edge of a
lot of things
like and maybe it feels like the
companies are not keeping up to where
you are but also like
there's two things like one it makes
business sense because like you you
wrote the software it's super expensive
to write the software you have to kind
of milk it for a while
uh second it takes a while for software
to get out there and get get known by
people get used and then people build
their careers on top of this thing and
then and then you don't want to change
it because like now you know this thing
and you're you're working on it just
fine like don't don't take it away from
me so um there's a uh so base camp uh do
you are you familiar with base camp um
yeah i was an early user uh art anyway
yeah
yeah they're one of those companies so i
think they probably closest model your
approach where they're every new version
they throw away the old code base and
they just rebuild from scratch on the
first principles um the old code base
still runs
and any customer that still wants to
stay on it can stay on it for for
eternity
so i think that that's a really nice
balance
of
disrupt yourself
but don't break the workflows of your
people who rely i definitely don't want
i don't want you know chrome to stop
making chrome or photoshop yeah
that's not what i'm suggesting i'm
suggesting roll your roll your excess
money that's apparent like obviously
covering your bills and
come up with something new
and yeah what do you think fix all fix
all the things that you noticed uh are
wrong after you've built this product
because naturally after you're done
hardening a tool and building it v2
looks so clear and after you build v2 v3
looks so clear and so that's also the
other thing because
okay like we have frameworks that update
all the time and they kind yeah i guess
the old one always works like you just
go get the old code but
um yeah i definitely don't want to see
old versions breaking i just want to see
the um the original fire and spark of a
team
just trying new stuff with this
excess funds it's just like i don't know
that's just what i would do i guess um
there's a there's an old money effect
you know once you've made your
major reputation major wealth whatever
you're not as hungry anymore
that's what i mean yeah that's what i
was saying yes earlier i was like yeah
i just imagine i would still have the
hunger and that's when i'm like how come
other people lose the hunger
okay so
one more thing so you
uh you're just focusing on web design
you st you work on your own tool
uh
would you ever spend that out i mean it
sounds like you you feel like there's a
there's a need here
oh visbog this book is more like
firebug and devtools than it is a
creation tool um like creating in the
browser
okay really is something different than
creating a design tool and it would need
to facilitate some really different
flows so yeah vis bug just
can inspect whatever is built anywhere
it's just like oh is there a
web page here i'll tell you everything i
can about it just put me on the page um
but and it will allow you to copy and
paste you can hit command d and
duplicate so if you want to see what
your layout looks like with nine cards
instead of three just click on hit
command d seven times uh so it can help
you like
edit text and do this like chaos testing
and you know stress testing it can also
change colors and delete i don't know it
does all sorts of things but it does not
start from blank and begin although you
can kind of cheat like if someone really
wanted to flex fizzbug they could
definitely do that because visbo can
copy styles off of anything you select
so you could go to a page
uh copy the styles paste them somewhere
else like i have a tweet where i go to a
web page i go to web download oh yeah
here let me see if i can find it i like
bringing things up on screen so that
people can follow along yeah that's cool
um and also like you know some people
your way but also i think um
yeah you know i wanted to
publish to nutify and i never figured
out the apis because like basically i
had oh yeah we did we were hacking on
that together huh yeah i had to do file
upload from extensions and i could not
figure out how to do that i don't think
i had the ability to do that
and the on the notify thing only only
allowed file upload
um
so yeah i kind of left it i didn't i
didn't figure out how to do it
i just sent you one there's a couple you
did more
okay got it
um
the codepen ones because i just
literally like in the codepen when i
literally just like take html and css go
to codepen and i paste them and it just
works
i love it
that that makes like
that makes the web like remixable you
know there's this whole
yes
term
um
here okay i don't see anyone anything
else that you sent me so if you if you
did i haven't sent it yet i'm trying to
find the code this is the one
so
facebook lifts and shift inline svg
you click on the thing
and then
go to codepen oh yeah you paste it oh
this is the codepen one oh well i just
started a new codepen oh here it is
great
boom
oh that one just does the svg though
okay so yeah so that's one thing visible
can do you don't have to wait for like a
um a copy button on inline svg you could
go to netlify or tailwind and all their
rad svg they have there you can just go
copy it just
it's mine yeah
yeah um i don't see either one but yeah
i went to web.dev and lifted a button oh
yeah i stole all of the button off of
the page i just took the html i pasted
it i took the styles and i pasted it and
i had the exact same button just in not
the font because i didn't have the font
imported
you see that's a reusable button
that's actually what i'm trying to tell
designers to do is i'm just basically
like stop recreating the button in a
design tool go use your production
website as an artboard you don't need to
recreate the page anymore go to the
product you work on and edit it and
express yourself in a familiar way that
you're doing a design tool take a
screenshot and tell the developers
that's what i want
yeah yeah that that would be
that'd be next level
yeah
um cool man uh i mean that was that was
about the the list of topics that we
prepared uh you know and i wanted you to
plug this back a bit so i kind of oh
thanks i was like oh this is nice that's
coming up i know right um but is there
anything else you want you want people
to you want to plug you want people to
uh like you know what's your what's your
message to to people that you wish uh if
you could wave a magic wand everyone
would do
oh um
this which is um the next time
you're in typescript or in javascript
and um
you're banging your head again or maybe
you're in rust maybe whatever language
you're in
and you're banging your head against it
and you're stuck
um i want you to remember how you feel
and then next time it happens to you in
css
don't be so frustrated
just know that every language you work
in you're not perfect and you will plunk
around like a bowling ball between the
rails until you hit the end and it
doesn't matter what language you're in
you do the same thing
in all of them so
css is hard um and maybe people think
it's below them because it's just boxes
but some you know maybe you think your
math functions on the you know your
server
functions running on the edge are so
cool but it's all just a place where
you're trying to get a task done and
you're not a superhero so you don't do
it right the first time and it's okay
it's very bob ross of you
it's like yeah you may make some
mistakes it's okay it's happy little
accident uh and also but also uh i would
do on a feature that cs has just got a
whole bunch of math functions right you
can do some really sciency things yeah
cosine and all that good stuff yeah i'm
not i'm never using it but it's cool
yeah i don't think i'll use much of it
either maybe if i'm like doing a
rotation and i'm trying to be fancy
usually i have to google all the math
stuff i'm like the math stuff is solved
you know i want an arc okay who's got
the arc math i'll go take it
um
yeah nice i do have two shows to pitch
though if i want to plug i have plugs
which is gooey challenges on youtube on
youtube um
every month i release a blog post and a
youtube video that i explain and break
down
um
a component that i build and i build it
in an agnostic to any framework i just
sort of
um build it in html css and javascript
i'm like here you can take this anywhere
you want any framework go make it fit
into your architecture but here's the
goals you know the goals are it needs to
be interactive this way and it needs to
have this feature and i talk about
accessibility and how i do it and then i
open source the code and yeah i have a
blog post that goes in really deep about
it um and i like that show it's a good
way for
people to see that it's just thinking on
ways to solve things like i don't think
i don't think people would be happy if
there was only one way to do stuff
i think that's why the web is succeeding
is it's weird and it's quirky a url
could be anything at the end of it when
an app you load an app and you're like
oh i'm probably going to see bottom tabs
and probably see this
and i think that's exciting and so it's
trying to empower people to um
just
be okay with being expressive about how
you want to do stuff like there's a lot
of style that even goes into
accessibility um and people don't talk
about that they make accessibility sound
like there's one way to do it i'm like i
don't know every time i do it there's
different things and different smart
little so anyway i bake a lot of that
information into that show and then the
css css podcast
really makes
it illuminates the computer science
behind css where we break down you know
uh the functions that we they're pretty
much all pure functions we talk about
the functions that run client-side
and take parameters they're just like
javascript um
and they're typed css is typed you know
we go into the color as a type and sizes
and links or types and
um
and anyway i think it will help anyone
with their perspective of css and feel
more comfortable just sort of
um being in that world so yeah those are
my plugs uh thanks you've really let me
share those hang on you said you had a
second show
you had two shows what's the css podcast
oh yeah okay got it yeah i enjoy that
i love i love how uh salvi hao is a
friend of mine from singapore and he
does
uh the whole pick up what you put down
thing that i preach which is essentially
he goes over and actually
demonstrates show notes and so he's
learning it along but everyone else can
learn with him so i really like it um i
have to admit it's hard to follow when
you mouth blog but
uh
at least at least i know like you see
this is a map right like here are all
the things that you know the the two css
developer advocates at chrome uh thought
it was worth knowing and you covered the
the topics and you you called out the
things that
you took for granted or maybe you like
found out as you as you covered the spec
again like this is super valuable
thanks sean and that's definitely what
we do that's a good description of a map
that's mapping territories um and we
have more territories that are sort of
un
undocumented right now and we'll get
those out sometime next year but
um yeah we've got a pretty good coverage
of the core css in that show
yeah it's really it's really great um
all right perfect um thanks for thanks
for doing this i know it's like kind of
like an awkward thing and i know i
really wanted to do an in-person thing
and let's see
dogs coming around and you see all the
kids toys everywhere and all my plants i
have a lot of plants um but you'll see
them later
yeah i'll come over sometime we have to
do this um seattle meetup um but hey
thanks thanks for uh thanks for chatting
alright i'm gonna