►
From YouTube: Magento PWA Community Meeting, 8 February 2019
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
All
right,
so
thanks
everyone
for
joining
again.
So
this
is
a
weekly
weekly
update
on
February,
February
8th.
So
today
we
have
some
some
topics
that
we
didn't
get
to
last
week
for
a
demo.
Some
new
work
that
the
team
has
been
kind
of
pushing
through
as
we
work
towards
this
big
2.0
release
your
PWA
studio,
so
we'll
go
through
some
of
those
demo
topics
and
some
updates
around
that
we'll
do
kind
of
maybe
some
general
discussion
on
the
upcoming
release
from
the
mind
of
mr.
A
A
D
C
E
C
Okay,
so,
on
the
upward
front,
I
think
we've
been
talking
a
lot
about
another
necessity
for
this
new
server
middleware
built
off
of
the
same
spec
as
upper
jeaious.
So
this
is
kind
of
just
a
demonstration
of
this
is
kind
of
three
things.
This
is
a
Magento
2.3
dotto
instance.
This
is
upward
PHP
and
then
this
is
also
Vidya,
and
this
is
all
being
served
on
the
same
server.
So
this
is
kind
of
like
a
Magento
cloud-enabled
solution
that
allows
you
to
host
vineya
without
having
that
no
dependency
in.
C
C
We
ran
lighthouse
against
it
and
it
still
has
reasonably
awesome
scores
and
for
the
most
part
we
haven't
found
any
major
bugs
that
don't
allow
the
app
to
work.
So
beyond
kind
of
reading,
Onan
someplace
to
work,
there's
also
some
documentation
in
the
process
here
on
how
to
do
this
yourself.
So
if
there
are
any,
if
there's
anybody
with
a
Magento
cloud
instance
that
kind
of
wants
to
try
out
Vinnie
on
the
front
end,
we
have
instructions
that
you
can
step
through
to
get
that
working.
C
One
weird
caveat:
is
you
may
notice
in
our
URL
here
kind
of
the
the
root
URL
goes
straight
to
vineya,
and
what
that
means
is
the
entire
Magento.
Front-End
is
gone,
so
we
can
go
to
admin
and
the
Magento
very
tiny.
Magento
admin
is
served.
They'll
notice
that
the
front
end
is
completely
replaced
and
that
was
kind
of
just
a
business
decision
we
made
for
this
initial
iteration.
That
kind
of
PWA
is
the
front
end
of
the
future.
C
B
C
Well,
that
maybe
would
be
better
answered
by
Andrew
from
a
business
perspective,
but
it's
kind
of
just
us
being
a
a
cloud
focused
company,
so
one
of
our
big
initiatives
is
to
make
sure
that
everything
that
we
make
and
distribute
also
works
in
our
cloud
environment.
So,
given
the
pressures
we
had
with
our
existing
cloud
infrastructure,
we
couldn't
host
a
note
application
in
our
magenta
Club.
So
this
is
kind
of
a
requirement
out
of
necessity,
because
we
had
a
great
spec
and
a
great
reference
implementation
in
JavaScript.
So
it
was
kind
of
easy
to
go.
C
Take
that
apply
it
in
PHP
and
it
kind
of
just
worked.
That
was
after
every
feature
we
implemented
we're
like
wow.
It
just
works,
so
it
was
kind
of
nice
to
see
that
that
spec
was
fully
fleshed
out.
We
had
enough
detail
in
it
that
somebody
could
go
out
and
write
a
up
word
implementation
in
Python
or
C
or
go
it's
really
like
nothing.
Stopping
you
from
writing
your
own
way
to
serve
this
content.
B
That's
exactly
right
and
it's
fantastic
upwards
was
originally
proposed
for
exactly
this
use
case.
If
we
knew
we
only
had
to
do
a
JavaScript
back-end,
we
wouldn't
have
even
bothered
to
write
something
like
that.
We
would
have
just
written
it.
You
know
so
doing
this,
making
a
PHP
server,
for
it
is
a
full
realization
that
this
spec
is,
to
some
extent
workable,
an
executable
today
and
maybe
from
the
community.
We
might
see
implementations
of
upward
on
things
like
Python
or
Java,
and
that's
super
exciting.
So
thank
you.
Oh.
A
C
A
F
F
And
then
we
updated
all
the
docs
as
well,
but
this
was
this
was
a
major
effort
to
really
improve
the
way
that
you
go
about
setting
up
the
dependencies
of
the
project
and
to
actually
set
the
dependencies
up
as
a
proper
mono
Olivo,
which
is
where
we
have
several
packages
within
the
main
repository
PWA
studio
right.
We
have
Bennie
a
concept
with
Peregrine.
F
We
have
UWA
build
pack
without
word
Jas
and
they
all
have
their
own
dependencies,
but
whether
you're
using
NPM
or
yarn,
you
need
to
hoist
these
dependencies
into
the
root
or
else
you're
gonna
have
a
lot
of
duplicates
and
you're
going
to
things
going
to
be
a
lot
slower.
So
fortunately,
yarn
has
a
feature
called
workspaces
that
makes
this
kind
of
hoisting
a
lot
smoother
and
allows
us
to
just
use
the
individual
package.
Json
files.
F
To
coordinate
that
so
ordinarily
there's
kind
of
a
just
kind
of
a
cycle
you
have
to
go
through
when
you're,
when
you're
developing
on
this
project,
which
is
that
people
are
changing
dependencies.
You
have
to
clean
the
build
clean.
The
node
modules
folder
you
have
to
install
new
depend
all
that
all
the
dependencies
listed
in
the
various
package
based
on
files
and
then
you
have
to
build
the
code
and
that
process
under
npm
was
taking
a
very
long
time
because
we're
using
a
project
called
lerna
to
do
that,
but
with
the
arne.
F
F
F
F
F
And
then
the
other
thing
that
this
allows
us
to
do
is
manipulate
individual
packages,
so
if
we
can
run
anything
on
any
any
command
on
any
one
of
these
projects
from
the
route
by
targeting
it
with
your
workspace
command,
we
can
run
a
script
from
there.
So
if
you
go
to
leave
any
a
package.json,
see
a
script.
F
And
then
we
can
also
add
dependencies
from
here.
We
could
say
we
don't
add.
These
memo
has
dependency
by
targeting
it
specifically
from
here
and
then
this
will.
This
will
add
a
dependency
directly
to
Vinnie
and
concept
listed
in
dependencies
under
its
package.json
and
then
install
it
to
the
root
node
modules
directory
right.
So
there's
none
of
the
things
before
where
you
have
to
add
it
to
multiple
package,
JSON
files
or
put
it
in
the
wrong
place
like
a
dev
dependency
or
anything
like
that.
F
In
the
root
of
the
project
would
act
which
acts
as
sort
of
the
base,
Babel
config
and
then
in
any
one
of
the
projects.
You
can
also
specify
a
Babel
rcj
s
at
any
level
and
do
specific,
targeted
overrides
so
for
build
pack.
We
strike
out
some
of
the
react
stuff
that
we're
doing
and
then
in
one
of
our
extensions
right.
We
actually.
F
F
Okay,
so-
and
that's
that's
largely
that's
largely
it-
this
should
be.
This
should
be
much
faster
than
it
was
before
a
lot
of
the
a
lot
of
the
benefits
to
demoing.
This
have
disappeared
as
we've
added
image,
optimization
to
the
project,
which
really
slows
down
the
build,
but
overall,
this
is
believe
it
or
not
much
faster
than
that.
It
was,
though,
continued
improvements,
rolling
into
build
process.
B
Jimmy
correct
me:
if
I'm
wrong,
I,
actually
don't
because
I
know
I'm,
not
we
got
a
question
or
we
got
an
observation
on
Twitter
a
while
back
saying
that.
Well,
we
switched
to
yarn.
So
now,
if
you're
gonna
use
PWA
studio,
you
have
to
have
yarn,
and
while
that
may
be
true,
if
you
are
working
on
the
quarter,
posit
ory
contributing
along
with
the
rest
of
us,
that's
not
true.
If
you're
just
consuming
the
dependencies
right,
you
can
use
NPM
to
to
install
a
dependency
on
Benia,
for
instance,
right
right.
F
F
A
G
One
of
them
is
the
modular
components
topic
and
this
one
talks
about
our
approach
to
the
venya
modularity,
using
with
them
venya
components
and
how
you
can
use
them
in
your
own
projects.
We
I
talked
about
how
you
can
import
them
and
it
also
talks
about
how
to
use
them
properly,
using
either
a
driver
or
live
modifying
the
drivers
or
the
using
the
menu
an
adapter
itself.
G
H
E
Cool,
so
I
gave
an
update
not
so
long
ago
about
some
docker
work
that
I
was
doing
and
some
of
the
feedback
was
okay
cool.
He
got
it
working,
but
we
still
need
HTTPS.
So
I
was
like
all
right
still
need
to
fix
that
thing.
So
I
think
that
was
the
last
update
that
I
gave
him
so
when
I
was
out
for
a
week
and
I
came
back
and
Jimmy's
PR
was
merged
without
the
babble
yarn
updates
and
I
was
like
okay
cool
and
my
stuff's
break-in.
E
So
some
of
the
stuff
that
I
did
was
to
update
the
docker,
build
to
incorporate
all
of
our
yarn
built
now
so
converted
from
MPs
over
to
yarn
here
and
are
using
the
yarn
workspaces
now
to
run
docker
tasks
just
to
demo
also
a
simple
setup.
So
I
was
working
also
on
a
simple
setup
script.
Just
for
folks
who
aren't
super
familiar
with
docker
I
didn't
want
you
to
have
to
like
understand
a
lot
of
to
get
this
thing
up
and
running.
So
I
ended
up
writing
this
script
here.
E
That
will
do
a
lot
of
the
heavy
lifting
for
you.
There's
this
M
docker
file
that
has
a
lot
of
functionality
for
setting
up
a
unique
domain
that
you
would
want
to
use.
So
by
running
this
script,
it
sets
up
all
of
the
host
mapping
that
you
need,
as
well
as
generating
secure
SSL
certificate.
Tls
certificate
were
you
on
the
fly
each
time
and
then
we'll
start
the
docker
process
for
you.
So
that's
all
in
docker
file
by
chakra
folder,
rather
increases.
E
E
That
requires
your
password.
Then
it
creates
a
certificates
and
will
start
running
the
build
process
on
containers
which
takes
in
the
docker
file
build
process,
so
anything
that
she
wants
to
build
to
me.
I
had
to
add
a
number
of
different
dependencies
for
the
image.
Optimization
though
I
know,
that's
still
a
conversation
and
happening,
but
in
order
to
get
the
image
optimization
working
within
docker,
you
have
to
add
a
couple
of
other
dependencies
here.
So
that's
what
that
is
what
the
script
also
does
is.
E
It
creates
the
cert
directory
which
is
not
stored
up
in
github,
so
they
get
ignored,
but
it
has
the
key
as
well
as
the
config,
for
setting
up
the
key
in
the
cert
or
for
setting
up
the
cert
rather
stored
in
here.
You
can
always
just
delete
these
and
so
they'll
be
fine,
it'll,
just
restart
a
new
one,
and
it
adds
the
PW
a
local
docker
local
certificate
to
your
local
key
chain
for
you.
So
once
its
done
building
everything
so
just
go
up
here
in
the
process
all
right.
E
This
is
your
eyes,
but
also
the
build
is
using
a
lot
of
cash.
So
the
first
time
you
build
it,
it's
going
to
you
know,
take
the
full
amount
of
the
build
time,
but
as
you
continue
to
build
afterwards,
if
we
don't
change
any
of
the
package.json
sore
anything,
then
it's
gonna
take
everything
from
cash
and
it's
gonna
be
a
pretty
quick
build
on
that
part.
Then,
once
it's
done,
you
have
an
HTTP
running
with
water.
E
Yeah
I
think
that's
the
basic
stuff
of
this
just
kind
of
helping
you
to
get
started
with
with
some
docker
stuff.
So
this
is
just
gonna
work
on
Mac
for
right
now,
just
with
how
the
keychain
is
working
and
some
of
the
ways
that
the
script
is
running,
and
so
next
steps
would
be
to
get
something
that
would
help
the
file
with
a
Windows
setup
with
Windows
docker.
Some
of
the
tweaks
that
you
need
for
that
and
I'm
continuing
to
work
towards
getting.
This
is
still
pointing
towards.
E
D
E
E
D
A
What
does
that
mean
in
terms
of
where
effort
has
been
right,
any
other
general
updates,
and
then
we
can
kind
of
turn
then
do
it
to
close
things
out,
do
just
an
open
floor
for
anybody.
That's
on
the
call
that
might
have
any
questions
or
want
to
demo
anything
or
as
a
I
saw
a
pull
request
and
what's
to
talk
about
gosh
well,.
B
The
venía
door
front
itself,
which
obviously
is
the
thing
that
is
maybe
the
most
significant
to
people
is
the
place
with
the
least
test
coverage,
but
it's
also
as
a
sample
storefront,
something
that
is
meant
to
be
consumed
as
individual
components.
That's
not
an
excuse
for
not
coming
with
tests,
but
the
stuff
that
you're
obligated
to
use
when
doing
development
such
as
build
pack
and
peregrin,
and
up
or
j/s
those
all
have
really
fantastic
test
coverage
and
I.
Guess
it's
probably
worth
checking
that
out
I'm
going
to
go
ahead
and
share
my
screen?
B
So,
quite
recently,
in
the
overall
lifetime
of
the
project,
we
made
an
adjustment
that
started
reflecting
the
coverage
accurately.
That's
the
big
jump
from
that
back
there.
That
gets
us
up
to
58%,
but
that's
not
really
what
I'm
talking
about.
We
have
builds
in
progress
and
bug
fixes
in
progress
that
are
increasing
our
test
coverage.
You
might
see
that
most
of
the
currently
building
branches
are
increasing
that
coverage
and,
as
we
add
tests
or
the
venía
components,
we're
going
to
see
that
improving
it
more.
You
want
to
look
at
a
little
breakdown.
B
Featherman
is
94%
covered,
build
pack
and
upward
ER
and
the
mid-80s
and
its
venía,
that's
down
to
40%.
Benia
has
improved,
but
there's
still
quite
a
ways
to
go.
Now
we
have
three
talented
engineers
on
the
core
team
working
nearly
full
time
to
do
that,
and
so
that's
kind
of
the
main
quality
effort
that
were
engaged
in
another
thing
that
we're
working
on
that
I.
Don't
entirely
have
ready
to
show,
but
I
suppose
I
could
mess
around.
Is
that
we're
working
on
a
way
to
catch
errors?
B
Gonna
take
a
minute
to
go,
and
then
those
of
you
who
have
messed
around
with
venya
a
lot
might
have
noticed
that
under
some
circumstances
the
cart
does
not
really
properly
render
and
when
you
make
a
change
or
make
a
try
to
add
two
carts.
When
there
is
a
network
issue
or
you
have
the
proper
configuration
the
UI
can
sometimes
it
just
frees
up
and
not
report
to
you
what
exactly
took
place.
So
we
noticed
is
that
in
general,
throughout
the
Redux
portion
of
our
code,
people
have
been
very
good
about
handling
errors
directly.
B
B
There
we
go
so
this
file,
which
happens
to
be
implemented
by
one
of
our
friends
at
bargaining.
Jonathan
stein,
so
really
well
done
jonathan.
This
is
an
set
of
async
actions
for
the
user
for
creating
an
account
for
signing
into
an
account,
and
you
might
notice
that
every
call
to
the
rest
api,
which
might
result
in
a
server-side
network
error,
is
put
in
a
try-catch
block
and
then
caught
at
which
point
there
is
an
action
dispatch
which,
inside
the
user,
reducer.
B
To
the
local
state
store
slice
so
that
the
UI
can
appropriately
render
it,
we
want
to
maintain
that
pattern
throughout
the
venía
storefronts,
dumb
errors
that
for
our
own
or
problems
that
return
you
I,
should
handle
in
a
specific
way
like
for
form,
validation
or
or
it's
something
interior
to
a
specific
checkout
step.
But
there
always
be
the
case
both
just
during
quality
efforts
and
in
newly
implemented
functionality,
where
an
error
occurs
that
somebody
has
not
been
diligent
enough
to
write
this
kind
of
code
for
and
in
the
card
actions.
B
But
all
it
does
is
dispatch
to
the
remove
item,
receive
action,
the
error
itself
and
then
tries
to
reconstitute
a
card
if
the
guest
I'd
get
a
card.
Id
was
the
problem.
Now,
let's
look
at
reducers
cart
and
see
that
if
there's
an
error,
it
just
returns
the
initial
state.
So
the
error
is
not
being
handled.
In
this
case
the
UI
recovers.
It
is
still
responsive
and
it
doesn't
really
tell
you
what
happened
exactly
so.
Here's
what
I'll
go
ahead
and
do
I'm
gonna
make
a
small
change
to
part
async
actions.
B
B
B
B
When
I
try
adding
it
to
the
cart
and
what
we've
implemented
here
is
hard
to
see
and
unfortunately
in
the
mobile
device
context.
It's
not
really.
Let's
see
it's
a
little
bigger
here,
so
you
can
see
here
that
there
is
a
real
error
that
gets
dispatched.
It
happens
to
have
debug
information
we're
in
debug
mode.
We
might
retain
this
debug
information
in
production,
so
that
people
who
have
these
issues
can
report
them
to
support
in
a
way
that's
informative
to
us.
B
But
these
errors
get
thrown
by
subsystem,
which
expects
certain
things
out
of
the
store,
slices
and
I'll.
Explain
it
very
briefly
again.
This
stuff
is
all
opening
a
pull
request,
but
not
yet
merged.
It's
investigative
effort
to
see
how
we
can
make
sure
we
handle
there
is
a
little
bit
better
when
you
touch
these
things
that
get
dismissed
so
the
reason
that
it
fired.
That
was
because
we
now
have
a
basic
aspect
of
our
route.
Reducer
old
error,
handler.
It's
documented
in
this
file
that
replaces
combine
reducers.
So
originally
we
had
a
store.
B
B
What
it
does
basically,
is
it
wraps
the
route
reducer
and
it
still
calls
redux
combined
reducers.
You
can
kind
of
see
that
here,
but
then
it
wraps
the
resulting
route.
Reducer
function
with
something
that
handles
route
properties,
call
a
root
property
called
unhandled
errors.
It
hides
this
from
redux
reducers,
so
that
we
got
doesn't
complain
about
an
unrecognized
property,
but
then
in
the
error,
reducer
that
we
it
takes
those
unhandled
errors
and
it
checks
for
a
particular
thing.
B
B
They
get
set
as
a
property
in
the
user
store
slice
as
a
root
property.
We
went
ahead
and
made
this
into
a
convention
so
that
in
combined
reducers
with
error
handling,
it
looks
through
each
store
slice
to
see
if
that
error
has
been
assigned
to
a
property
with
any
name,
and
it
assumes
that
that
means
that
the
store
slice
has
handled
the
error
and
the
UI
that's
connected
to
that
store
slice
has
displayed
something
appropriate.
If
that's
not
the
case,
then
it
produces
an
array
of
errors.
B
Usually
this
will
just
be
one,
but
we
want
to
make
it
support
multiple
errors
that
may
occur
at
once,
and
it
returns
the
state
with
that
unhandled
errors,
collection
and
where
is
that
consumed
that
is
consumed
in
a
pas
in
the
outer
app
and
there's
some
there's
some
changes
that
I
made.
But
you
can
see
here
that
the
app
now
displays
an
error
notifications
block
with
a
set
of
unhandled
errors
to
which
it
is
bound
and
then
it'll
handle
the
error
which
dispatches
to
the
underlying
error.
B
Reducer,
an
action
which
lets
the
error
get
pulled
out
of
the
gun,
handle
there's
array
so
that
you
can
dismiss
it
and
move
on.
So
this
is
a
general-purpose
solution
and
it's
something
that
deserves
documentation
and
perhaps
even
some
convenience
functions
so
that
when
you
implement
a
store
slice
you
can
you
can
do
it
in
a
way
that
interacts
properly
with
this
system.
B
But
the
underlying
result
is
that
if
there
is
some
Redux
stuff
that
is
not
properly
handled
errors,
but
it
dispatches
them
into
the
payload
which
do
then
you'll
get
a
proper
error
message
and
it
will
even
scroll
to
the
top
to
show
to
you.
So
this
is
basically
submitted
for
your
consideration
and
we
are
just
at
a
time.
A
Okay,
50
minutes
I
did
a
deep
dive,
hey
it's
still
under
time,
one
minute,
so
any
questions
for
James,
alright.
So
just
in
this
last
minute,
if
there's
anything
I
guess
we
can
go
quickly
around
the
virtual
room
if
there's
anything
that
you
have
for
him
as
a
question,
as
James
pointed
out,
feel
free
like
either
use
this
last
minute
data
to
voice
that
question
a
warm
posting,
the
community
slack
email
us,
whatever
the
case
might
be.