Jammy eulogies, pattern matching magic, and the Venn diagram of Type nerds and coffee snobs.
Welcome to #210.
Every little div I do đľ
The headset microphone has always been an underrated power move.
So for last monthâs Tailwind Connect keynote, it was great to see Adam Wathan walk out on stage wearing his dadâs nicest blazer and a tastefully subtle headset mic that wouldâve made the NSYNC boys proud.
Adam talked about Tailwindâs history, shared some of its mind-blowing growth numbers (25 million downloads per month đ¤Ż), and demoed a new, âfully componentizedâ React UI Kit called Catalyst thatâs still a WIP.
But the most exciting part was when he introduced Oxide â the next evolution of the Tailwind CSS engine that will make the framework more of an âall-in-one CSS processing toolâ going forward.
It does this by integrating Lightning CSS, a Rust-based CSS parser, transformer, bundler, and minifier that was created by Devon Govett and the Parcel team. Oxide is set to come out soon with Tailwind v3.4, and it should immediately provide three noticeable benefits:
A more unified toolchain, so you wonât need to install additional tooling like postCSS or autoprefixer anymore. Things like vendor prefixing, syntax transforms, and importing other CSS files will just work.
Improved performance, because Lightning CSS is written in Rust and is super fast overall. Build times in real-world Tailwind projects using Oxide have already dropped by 50%.
Simpler configuration with automatic content detection, which means that you wonât need to configure the paths to your template files anymore.
Bottom Line: You donât typically see 200 people pay real money to go to a conference/meetup for a CSS framework, but Tailwind is an inspiring project â which is why I just put in the winning bid on this bad boy.
Dress for the job you want.
But they looked so good on paper!!
Using whiteboard interviews to hire developers is like trying to make your own fireworks â it might work, but youâll waste a lot of time and probably get burned eventually.
Thatâs why 4,000 engineering teams (including Netflix, Lyft, and Spotify) have ditched the algo questions and are using CoderPadâs collaborative IDE to actually code with candidates. (See the Sandbox.)
Their familiar, fully customizable IDE supports 40+ languages and frameworks (React, Angular, Node, etc), and it lets you:
Itâs a great way to pair program with candidates to see if their skills and communication style are a good fit for your team.
Try CoderPad for free â and code together before you work together.
Get SOC 2 compliant in weeks instead of months, so you can start selling to big enterprises ASAP. Book a free, personalized demo to learn how.
What gets logged?
function getPort(url) {
const { port } = new URL(url);
if(port === '80') {
console.log("You're using the default port");
}
if(port === '443') {
console.log("You're using the default secure port");
}
console.log(`You are running on port "${port}"`);
}
getPort(`http://example.com:80`)
getPort(`http://example.com:8080`)
getPort(`https://example.com:443`)
getPort(`https://example.com:3000`)
Andy Warfield wrote an in-depth article on Dr Wernerâs blog about what it was like Building and operating a pretty big storage system called S3.
Vercel just introduced react-tweet, which lets you embed tweets into any React app with a single line of code. It comes with RSC support, less client-side JavaScript, and it already needs to be renamed đ ââď¸.
Zero created an easy way to integrate 3rd-party API credentials into your project. Their SDK is available for TypeScript, Rust, Python, and Go. [sponsored]
Brian Rinaldi wrote this touching Jamstack Eulogy, which sparked some debate among all the pro-Jammies and anti-Jammies out there.
Remix-Dev-Tools makes it easier to monitor and manage page info, URL parameters, server responses, and more in your Remix apps.
In a classic case of âif you canât beat âem, join âemâ, Stack Overflow just released Overflow AI. Itâs kind of like ChatGPT, but it gives a different company money when you ask it questions.
Ready Layer 2 is a free, 3-day learn & pitch competition for developers. Youâll learn how to build applications on top of Bitcoin Layer 2, then get a chance to build a prototype and pitch it to judges for a chance to win over $15,000 in prizes. [sponsored]
Mathieu Acthernoene wrote an article called, Unraveling the magic of Pattern Matching, which made me think that I was reading a quilting blog for about 5 seconds.
Erik Devries created this Tailwind CSS Color Generator and made sure that we would see it on the exact same day we were writing a Tailwind CSS story. What a thoughtful and considerate friend.
ExpressoTS is a lightweight TypeScript framework for building scalable server-side applications. But donât worry coffee snobs, you can always refer to it as EspressoTS if it makes you feel better.
What gets logged?
function getPort(url) {
const { port } = new URL(url);
if(port === '80') {
console.log("You're using the default port");
}
if(port === '443') {
console.log("You're using the default secure port");
}
console.log(`You are running on port "${port}"`);
}
getPort(`http://example.com:80`) // You are running on port ""
getPort(`http://example.com:8080`) // You are running on port "8080"
getPort(`https://example.com:443`) // You are running on port ""
getPort(`https://example.com:3000`) // You are running on port "3000"
The URL
constructor function in JavaScript strips the default port even if itâs explicitly provided. Since port 80
is the default for http and port 443
is the default for https, the port is stripped from the URL resulting in an empty string. File this one away under JavaScript quirks that you probably donât need to know, but could save future you hours of debugging.