![]() This week we’ve got brand new Ramen flavors, a brand new feeling of superiority, and some Valentine’s Day inspiration. Welcome to #161. ![]() The Main Thing![]() The Vue 3 Ecosystem New Year’s Reso-Vue-tionsBecause time is a cruel mistress that only dances in one direction, this year is already somehow 10% complete. And I hate to brag, but I’ve already made some really good progress on my one and only 2023 resolution: mass producing a new official Top Ramen flavor called, Flamin’ Hot Chili Limón Creamy Cool Ranch Beef. And I’m not the only one with big plans. Evan You just gave a talk where he laid out Vue’s goals and objectives for 2023 — which mostly fall into two main categories. Category #1: Sharing is caring. Two years ago, the Vue team shared Vite with the world by extracting it from the Vue core and making it framework agnostic. That was a huge success that transformed Vite into one of the web’s most loved build tools, with over 3.2 million weekly downloads today. Now, they’re looking to run the same playbook with Volar.js — a framework for building language tools for embedded languages. It was initially designed for the specific needs of Vue single-file components, but they just extracted it into a framework-agnostic base that can support any file format involving embedded languages — including Astro, Svelte, and Angular. Category #2: The best ability is stability. The Vue ecosystem is still carrying some pretty fresh battle scars from the Vue 2 ➡ Vue 3 migration, so the core team is focused on improving stability and reducing fragmentation in 2023. This “no Bottom Line: It’s good to see that me and Vue are both doubling down on the things we’re best at in 2023.
![]() Our Friends |
![]() | Senior Full Stack Engineer | |||
| ||||
Motion is looking for experienced TypeScript engineers to build the next generation of productivity tools. You'll inform key frontend architectural decisions that help Motion scale the next 2 order of magnitudes, create delightful user-facing features, and improve application performance. We are an ambitious team of 15 people distributed remotely across North America. |
Building applications just got delightful! With a ChatGPT integration and Courier’s API, every notification can be synthesized, with a side of automated fun! #ChatGPTwrotethis
const Animal = (name, type) => {
this.name = name
this.type = type
this.age = 0
}
Animal.prototype.birthday = function () {
this.age++
}
const leo = new Animal('Leo', 'Lion')
Veracode’s State of Software Security report for 2023 found that JavaScript Applications Have Fewer Security Flaws Than Java and .NET Applications. It turns out that my unearned sense of superiority has actually been *earned* all along.
CarbonQA provides QA services for dev teams, so you’ll never have to do it yourself again. They work in your tools, talk with your team on Slack, and let your devs be devs — so you never have to waste engineering time on testing again 🙏. [sponsored]
Shopify wrote about how they’re Bringing Javascript to WebAssembly for Shopify Functions. Much like this recent surge in UFO sightings — I don’t fully understand what’s going on, but I fully support it.
Mojtaba Seyedi wrote this practical guide to building faster websites with Astro.
The Chrome 111 beta just came out and includes lots of fancy new CSS features. Safe to say, it went much better than Google’s other beta demonstration last week.
Laurie Voss wrote an article called The Case for Frameworks in response to another article that compared JS framework authors to oil companies intentionally covering up climate change. (Not a joke.)
In “Something subtle in your browser”, Zainab breaks down a pattern that might become a new trend when building web apps – spinning up a SQLite DB via WASM in your browser. What a time to be alive.
In A Love Letter to React, Chris from the fly.io team breaks down why he loves React and what makes it special. We figured this will be a good template to follow for that Valentine’s day card you have to write later today.
const Animal = (name, type) => {
this.name = name
this.type = type
this.age = 0
}
Animal.prototype.birthday = function () {
this.age++
}
const leo = new Animal('Leo', 'Lion')
Arrow functions don’t have their own this
. This leads to three errors in our code.
First, we’re adding properties to this
in the constructor function. Again, because Arrow Functions don’t have their own this
, you can’t do that.
Second, we can’t use the new
keyword with an Arrow Function. This will throw a X is not a constructor
error.
Third, we can’t add a property on a function’s prototype if that function is an arrow function, again, because there’s no this
.
Here’s the solution -
function Animal (name, type) {
this.name = name
this.type = type
this.age = 0
}
Animal.prototype.birthday = function () {
this.age++
}
const leo = new Animal('Leo', 'Lion')