Re-inventing
js.com
InfoQ.com: News & Community Site
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
npmjscom
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon London
www.qconlondon.com
@katie_fenn
Hi, I’m
Katie
@katie_fenn
Hi, I’m
Katie
@katie_fenn
Hi, I’m
Katie
cw: animation
@katie_fenn
•work at
•make the npmjs.com website
•also support the registry
•from sheffield
@katie_fenn
disclaimer:this talk is not about performance
@katie_fenn
Let’s go back to the
beginning
@katie_fenn
june 2010
landing page
@katie_fenn
december 2010
becoming a portal
@katie_fenn
august 2012
community hub
@katie_fenn
february 2015
company homepage
@katie_fenn
september 2015
marketing pages
@katie_fenn
march 2018
what’s next?
???
@katie_fenn
services
• orgs
• private repos
• 2fa
• access tokens
• ???
@katie_fenn
identity crisis
harder
to develop
@katie_fenn
identity crisis
isolated
developers
@katie_fenn
technology crossroads
@katie_fenn
technology crossroads
@katie_fenn
technologyhumans
@katie_fenn
Humans
@katie_fenn
follow the lead
of the community
@katie_fenn
react
webpack • postcss
enzyme • vue
next.js
redux
jest
@katie_fenn
embrace
the frontend
@katie_fenn
node package manager
@katie_fenn
80%of users use npm
for frontend
development
@katie_fenn
@katie_fenn
@katie_fenn
we get it
you’re feeling pain
@katie_fenn
we hired more
frontend
developers
@katie_fenn
website developers are
reporting bugs in npm
client and registry
@katie_fenn
lines blurring
between registry and
website developers
@katie_fenn
generalists
are important to us
@katie_fenn
is 32 people
@katie_fenn
knowledge
sharing
• shared
ownership
• reuse code
across projects
@katie_fenn
Technology
@katie_fenn
so, what about
express?
cw: animation
@katie_fenn
nope.
@katie_fenn
nope.
@katie_fenn
there was a
better option:
spife
@katie_fenn cw: animation
“doesn’t that
make it hard
to hire spife
developers?”
- anonymous
npm employee
@katie_fenn cw: animation
“doesn’t that
make it hard
to hire spife
developers?”
- anonymous
npm employee
@katie_fenn cw: animation
“it’s good for
finding people
within npm”
- anonymous
npm employee
@katie_fenn cw: animation
“it’s good for
finding people
within npm”
- anonymous
npm employee
@katie_fenn
a
batteries-included
http framework
1. spife
icon: cutlery by Chanut is Industries from the Noun Project
@katie_fenn
a
batteries-included
http framework
1. spife
routing • db • orm
middleware
monitoring
logging
metrics • auth
@katie_fenn
opinionated
djavascript
1. spife
icon: cutlery by Chanut is Industries from the Noun Project
• familiar
• asynchronous
• structured
• comfortable
@katie_fenn
middleware
and
decorators
1. spife
@katie_fenn
middleware
and
decorators
1. spife
API data
@katie_fenn
middleware
and
decorators
1. spife
API data rate limit
@katie_fenn
middleware
and
decorators
1. spife
API data rate limit check csrf
@katie_fenn
middleware
and
decorators
1. spife
API data rate limit check csrf
auth
@katie_fenn
middleware
and
decorators
1. spife
API data rate limit check csrf
auth validate
@katie_fenn
middleware
and
decorators
1. spife
API data rate limit check csrf
auth validate schema
@katie_fenn
spife is
open
source
@katie_fenn
react components
with css modules
2. design system
@katie_fenn
2. design system
components
encapsulate
standards
@katie_fenn
2. design system
components
encapsulate
standards
@katie_fenn
3. spiferack
a react
framework
• built-in server-side-rendering
• built-in code splitting
• progressive enhancement
@katie_fenn
3. spiferack
server-side
rendering
• searchable content
• fast initial page renders
@katie_fenn
3. spiferack
code
splitting
• automatically split per-route
• spreads bundle loading evenly
@katie_fenn
3. spiferack
<Form action=“/login” method=“POST>
<InputText
name=“username”
label=“Username" />
<InputPassword
name=“password”
label=“Username" />
</Form>
progressive
enhancement
@katie_fenn
3. spiferack
progressive
enhancement
• enhances to XHR requests
when JS is enabled
• returns JSON response when
XHR request is received
@katie_fenn
3. spiferack
make doing the right thing easy
@katie_fenn
preview.npmjs.com
@katie_fenn
preview.npmjs.com
@katie_fenn
it’s much better
and we hope
you’ll love it
@katie_fenn
registry
cli
website
1.
2.
3.
@katie_fenn
Where are we going?
@katie_fenn
make doing the right thing easy
@katie_fenn
tooling that
embraces
short-range
sharing
@katie_fenn
a focus on making
tech work for people
rather than computers
cw: animation
@katie_fenn cw: animation
aesthetics
@katie_fenn cw: animation
accessibility
aesthetics
@katie_fenn cw: animation
new and shiny
@katie_fenn cw: animation
tried and trusted
new and shiny
@katie_fenn cw: animation
performance
@katie_fenn
resilience
performance
@katie_fenn
computers
do things
better
@katie_fenn
Jenn Schiffer
computers
do things
better
faster
cw: animation
@katie_fenn
@katie_fenn
@npmjs
preview.npmjs.com
Thank you
@katie_fenn
@katie_fenn
@npmjs
preview.npmjs.com
Thank you
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
npmjscom

Reinventing npmjs.com