Config-less. Server-less. Effort-less
Mission
Make the Cloud Accessible to Everyone in the World
Accessible = Global + Easy to Use
Stripe : Payments :: ZEIT : Cloud Deployment
This talk is about doing less and achieving more
It's very important to do less!
Civilization advances by extending the number of important operations which we can perform without thinking about them
β Alfred Whitehead
In two yearsβ¦
51th most popular Organization on GitHub





Identifying opportunities to do less
Realtime communication: socketio/socket.io
React: zeit/next.js
Cloud: zeit/now
The Problem
Transport implementation details hard to figure out
Reconnection had to be re-implemented for every app
Browser support unstable and inconsistent
A lot of code had to be written
π‘ Make the "Hello World" really compelling
The Solution: socket.io
Transport agnostic
Two modules: one for the server, one script for the client
Universal, lightweight, compliant
An entire realtime chat server:
const app = require('socket.io')(3000)
app.on('connection', s => {
s.on('msg', msg => {
s.broadcast.emit('chat', msg)
})
})
The result?
One of the most popular frameworks in the world
Used by:
- Office 365
- Skype Web
- Lots of Chat Roulette clones
π¨
The Problem
Webpack
Babel
Combining Webpack and Babel
Upgrading Webpack and Babel
Downloading Webpack and Babel
Styling
Pre-rendering / Server-rendering
Code-splitting
Routing
Getting β
β
β
β
β
on Lighthouse
Tweeting about it
Let's talk about PHP for a second π€«
Why was that so much easier and why did we ruin it?
The Solution: Next.js
Embrace the filesystem
Embrace conventions
Make it lightweight and flexible, obsessively
One command to develop: next
One command to build: next build
One command to export statically: next export
One command to server-render: next start
My simple website (pages/index.js
)
export default () => <div>
Welcome to my website
</div>
Now with a link (adding pages/about.js
)
import Link from 'next/link'
export default () => <div>
Welcome to my website
<nav>
<Link href="/about"><a>About</a></Link>
</nav>
</div>
The results?
Fastest-growing OSS project we've had
Used by:
- EuroVision πͺπΊ
- EuroStar Hotels πͺπΊ
- STV (Scotland) πͺπΊ
- Deliveroo πͺπΊ
(Slaps roof of framework⦠This bad boy can fit a lot of GDPR modals)
- Hulu
- Marvel
- Nike
- Jet.com (Walmart)
The Problem
Powerful, yet hard to use and expensive
SSL, DNS, Domain Acquisition are painful
Building, testing and hosting are all set up independently
Enterprises become good at deploying only one type of app
Teams should be able to deploy every minute, not every quarter
The Solution: Now
Serverless: make the entire cloud work like a CDN
Stressless: no state, no monitoring, no restarts, no pages
Regionless: scale everywhere in the globe, across cloud providers
Deploy a website
$ echo "<h1>hi</h1>" > index.html
$ now
Deploy a pre-rendered website (e.g.: this deck)
$ echo -e "FROM alpine\nRUN date > /public/index.html" > Dockerfile
$ now
Deploy a serverless function
$ echo -e "FROM node\nCMD node -e \"require('http').Server((req,res)=>res.end('Hello'))\"" > Dockerfile
$ now
Buy a domain
$ now domain buy webexpo-deck.com
Point my deployment to my domain
$ now alias webexpo-deck-ldihkpchuy.now.sh webexpo-deck.com
Deploy with every push
gif of github
The Olden Days
Just a folder π€¦ββοΈ

Emergent Insight π‘
1. Take that same model
2. Put it on the edge
3. Put it everywhere
4. Win
The Method
Folder β GitHub / GitLab / BitBucket Repository
Single-command deployment `now`
/ Push-to-deploy / Single API Call
Leverage massive existing infrastructure investments
The results
Used by
- O'Reilly
- GitHub
- EventBrite
- Stripe
- Twilio
- Vice
- A+E Networks
- Cloudflare
- Auth0
- Coinbase
Now, go and use The Secret
The Caveats to The Secret π©
Heuristic to check the heuristic
How well will this survive?
Socket.IO
π‘ Event-driven architecture will outlive transports
Next.js
π‘ Pages + Hyperlinks will outlive engines
Now
π‘ Network protocols and apps outlive everything
Many great things start looking like toys