Apparently, last week was Conference Week™ -- as Guillermo from Vercel, Nat from GitHub, and Mark from Meta all went head to head in a Battle of the Keynotes. We're still not sure who won, but we definitely know who filled us with the most existential dread, just in time for Halloween! 🎃
Welcome to #72.
We don't make the rules
We learned two things at last week's Next.js Conf -- 1) If this whole Vercel thing doesn't work out, Guillermo would be a great host for the Architectural Digest YouTube channel. 2) Next.js 12 is Vercel's "biggest release ever" -- and not just because 12 is bigger than 11 (I think).
What's new in Next.js 12?
<Image>
component, which crunches your cat pics 20% smaller.node_modules
folder with peasant modules.But the most exciting part are two big experimental features.
Middleware (Beta) -- This solves one of the biggest problems with JAMStack -- How do you run server-side code on requests when you're just serving static files? Middleware lets you write functions that run before every request using a limited, but fast runtime. This allows you to do lots of stuff like authentication, feature flags, A/B testing, and analytics.
React Server Components (Alpha) -- Next.js becomes the first to implement this shiny new server rendering method, which is different from the SSR that Next.js normally does to generate the HTML for a page. Instead, this renders individual components on the server and streams the results to the client. This gives you faster page loads, smaller JavaScript bundles (since all the processing happens server-side), and a great developer experience.
Bottom Line: Are we ready to talk about how by building on top of React, and by having a privileged relationship with the React core team, Vercel, in a sense, is able to leverage the React core team for free labor? Not yet? Right right.
The choice is yours
I've been telling you about how great Retool is for a while now.
It's the easiest way to build internal tools at your job... blah blah blah. We all know that.
But here's the thing: you don't build a toaster from scratch every time you want to eat some crispy bread. It's 2021. Someone already built that for you.
Here's another thing: you shouldn't build internal tools from scratch every time your boss wants to "see the data." It's 2021. And Retool already built that for you.
Retool gives you all the building blocks you need to make tools that *actually* look good -- tables, lists, charts, wizards, etc. And you can easily connect it to any database or API you want, instead of trying to hack together all that internal data yourself (gross).
And if you want to ~~bedazzle~~ customize your app, you can add your own custom JavaScript to build some pretty robust stuff.
What will be logged to the console when this code executes? The answer is below.
window.name = "Mike Tyson";
const me = {
name: "Tyler",
sayName() {
console.log(this.name);
},
};
const sayName = me.sayName;
sayName();
Isn't it great that we can use CodeSpaces to build the Metaverse from _inside_ the Metaverse?
GitHub Universe kind of felt like one big commercial for CodeSpaces -- the fully-featured dev environment in the cloud that GH first announced earlier this year (and is a paid enterprise product).
To be fair, CodeSpaces is significantly more powerful than any of the other cloud-based IDEs we've ever seen. It lets you do everything that your local machine can do (access a terminal, run servers, execute tests, sync your local VS Code settings, etc.) -- but from any computer in the ~~Metaverse~~ world.
GitHub announced a bunch of new CodeSpaces features last week that'll make it even easier to use -- including a new (beta) REST API to programmatically manage your CodeSpaces, newly-added CS support in the GitHub CLI, and the ability to create/update the devcontainer.json
development environment as code definitions with a one-click setup.
Here's the rest of the non-CodeSpaces highlights:
New GitHub Issues experience hits public beta -- with new and innovative features for ~~passive-aggressively shaming your co-workers~~ collaborating, like project boards and dynamic tables.
New GH Command Palette (beta) lets you use the trusty cmd/ctrl k
to navigate to any project, repo, PR, or issue and run commands.
The new GH Discussions feature got some additional updates designed to help developers, teams, and OSS communities communicate directly on GitHub (and perhaps save the world from one more Discord server being spawned).
Bottom Line: GitHub is trying to walk a fine line of maintaining its appeal to individual developers and small teams, while simultaneously trying to attract big-fish clients with enterprise-only features like CodeSpaces. And after GitLab IPO'd two weeks ago for $15 billion (largely because of its strong enterprise client base), I'm guessing we'll be seeing more enterprise plays from GitHub soon.
Notifire is a powerful OSS library for managing multi-channel notifications with a single API. Not-a-fire is an app I built back in 2012 that allowed fire fighters to point their iPhone 4S at a building, and it would tell them whether or not it was on fire.
Builder.io is a visual experience builder that lets non-developers use a drag-and-drop UI to create custom pages and layouts that are speed-optimized out of the box. Check out their free tier, and see how easy it is to instantly clear your backlog from all those neverending marketing asks. [sponsored]
The Google Chrome team wrote about Photoshop's Journey to the Web, and how Chrome has been able to empower more complex web apps (when they're not busy throttling non-amp ads).
Yarn 3.1 was just released with ESM support, a Node.js Corepack integration and lots more.
Anthony Fu wrote about Reimagining Atomic CSS with a Tailwind CSS alternative named Windi.
LittleJS describes itself as the "Tiny JavaScript Game Engine That Can". In contrast, BigJS describes itself as "The modern web developer's platform". Wait no, that's just Angular.
Daniel wrote about How Svelte Makes Two-Way Binding Safe, which means that whenever you think of two-way binding, you can just imagine Rich Harris giving you a big hug and whispering, "you're safe now."
MDX 2 was just released with lots of new features and improvements. Now I can finally finish writing my long form breakdown about this guy who, for years, only ate at Six Flags -- complete with all of the MDX components I need to illustrate the total number of calories that came from overcooked hot dogs, stale french fries, and Dippin' Dots.
What will be logged to the console when this code executes?
window.name = "Mike Tyson";
const me = {
name: "Tyler",
sayName() {
console.log(this.name);
},
};
const sayName = me.sayName;
sayName();
The answer? "Mike Tyson".
Since we're not in strict mode, sayName
isn't a method, and we're not using call
or apply
, this
inside of sayName
will default to the window
object.
Delivered to 105,434 developers every Monday
Sdu
@sduduzo_g
This is the first ever newsletter that I open a music playlist for and maximize my browser window just to read it in peace. Kudos to @uidotdev for great weekly content.
Brandon Bayer
@flybayer
The Bytes newsletter is a work of art! It's the only dev newsletter I'm subscribed too. They somehow take semi boring stuff and infuse it with just the right amount of comedy to make you chuckle.
John Hawley
@JohnHawly
Bytes has been my favorite newsletter since its inception. It's my favorite thing I look forward to on Mondays. Goes great with a hot cup of coffee!
Garrett Green
@garrettgreen
I subscribe to A LOT of dev (especially JS/TS/Node) newsletters and Bytes by @uidotdev is always such a welcomed, enjoyable change of pace to most (funny, lighthearted, etc) but still comprehensive/useful.
Muhammad
@mhashim6_
Literally the only newsletter I’m waiting for every week.
Grayson Hicks
@graysonhicks
Bytes is the developer newsletter I most look forward to each week. Great balance of content and context! Thanks @uidotdev.
AMD_
@_amdaniel_
The sense of humor and structure of the Bytes Newsletter is first class and the information that comes with it is enough to make a mini course.
False
@nullish2
Very few newsletters manage to be useful and not very boring. @uidotdev manages to achieve these pretty effortlessly. You can almost see Tyler chuckle as he writes them.
Chris Finn
@thefinnomenon
Every JavaScript programmer should be subscribed to the newsletter from @uidotdev. Not only do they manage to succinctly cover the hot news in the JavaScript world for the week but it they manage to add a refreshing humor to it all.