It's party time for PartyKit

Issue #227.October 2, 2023.2 Minute read.
Bytes

Today’s issue: The Angular Renaissance fair, React’s tastefully hidden layers, and my favorite pair of Evan You footie pajamas.

Welcome to #227.


Eyeballs logo

The Main Thing

A girl crying and singing into a microphone with a bunch of other kids around

Brothers and sisters, let us party.

It’s party time for PartyKit

That’s because the open-source platform for building real-time, multiplayer apps just raised $2.5m from Sequoia Capital and is now publicly available for anyone to use.

In the announcement post, PartyKit founder and Bytes friend, Sunil Pai wrote about how, “The future of the Internet is collaborative.” But historically, building and scaling multiplayer apps like Figma or Google Docs has been super expensive and technically difficult to pull off.

Thankfully, edge computing has made it much cheaper to run these collaborative apps, and now PartyKit provides a batteries-included way to easily build and deploy them with JavaScript — it’s kind of like Next.js/Vercel for real-time, multiplayer apps.

Let’s take a closer look:

  • You bring the fun parts (your JavaScript or Wasm code), PartyKit brings the boring parts (infra, edge deployments, and a familiar programming model).

  • You get helpful platform goodies like environment variables, preview URLs, admin APIs, and more. PartyKit openly admits to stealing lots of good ideas from Cloudflare Pages, Vercel, and Heroku — and I appreciate that honesty.

  • It uses web standards like WebSockets, Fetch, and Request-Response, and it integrates well with popular collaboration libraries like Y.js and Automerge.

PartyKit also makes it easier to build multiplayer apps where you can collaborate in real time with an LLM, instead of with other humans. And that’s great news if you’re like me and you fear human contact and can’t wait until we’re all replaced by the machines.

Bottom Line: Now that PartyKit’s an official business, they’ll have to figure out all the boring stuff like hiring, payroll, performance reviews, and HR policies — but for tonight they can party like it’s 1999.

        

Nitric logo

Our Friends
(With Benefits)

James the Red Tank Engine making a disgusted face

When you take a look at your app's build times

Nitric helps you ship cloud applications fast

Building a cloud app always sounds like a great idea — until you’re stuck with tons of new complexity and painfully slow build/deploy times ☠️.

But don’t worry, Nitric can save you.

Their open-source cloud app framework lets you handle all your infrastructure needs within your code, so you get all the power of the cloud, while shipping faster and avoiding vendor lock-in.

One health tech company said that Nitric made their build and deploy times “magnitudes faster.” Here’s how:

  • Ship faster by running your cloud apps locally with infrastructure included

  • Define infrastructure requirements in your code and easily bind code to APIs, events, and triggers

  • Build and deploy with your language for your cloud

Try Nitric for free — it’s by far the easiest way to build on the cloud.


Spot the Bug logo

Spot the Bug

Sponsored by Snyk

Improper CORS implementation can expose your Node application to various security risks. Learn how to protect your app from these vulnerabilities with Snyk’s guide on secure implementation of CORS in Node.js.

class User {
  async constructor(userId) {
    const user = await getUser(userId)
    this.id = user.id;
    this.name = user.name;
    this.email = user.email;
  }
  ...
}

Cool Bits logo

Cool Bits

  1. ViteConf is happening online this week on Oct 5-6th. So grab your free ticket now and get ready to put on your favorite pair of Evan You footie pajamas for 48 hours straight.

  2. TkDodo wrote about The Uphill Battle of Memoization, which is nothing compared to my uphill battle of trying not to eat a pumpkin-shaped Reese’s Cup for lunch every day of October.

  3. Debugging distributed systems shouldn’t feel like chasing ghosts 👻. Join Sentry’s free workshop to learn how distributed tracing can help you uncover those elusive bugs and performance problems. Sign up early to have your questions answered in the live Q&A. [sponsored]

  4. We initially had this link about a “deep dive into React’s virtual DOM and reconciliation” – but that page now appears to be down “due to ending availability of Gatsby Cloud” – lol. So here’s our take on a similar article.

  5. Astro 3.2 just dropped with a bunch of new improvements to view transitions.

  6. Christina Martinez created babel-plugin-glowup-vibes, which transpiles Gen-Z slang into valid JavaScript. Yes, it will make you cringe. But in a fun way.

  7. CarbonQA’s high-quality QA services for dev teams gives you a team of dedicated, US-based QA testers who make sure you’ll never get stuck QA testing your own apps again. 🙏 [sponsored]

  8. Adam Argyle wrote about CSS Subgrid on the Chrome blog and how it allows nested grids to align to ancestors and siblings. It’s nice to see the family coming together right before the holidays.

  9. Andrei Taranchenko wrote an article called, Death by a Thousand Microservices. It’s not quite as catchy as the Taylor Swift song, but it may still make you want to cry a little bit.

  10. Loraine Lawson wrote about The Angular Renaissance and why frontend devs should consider revisiting it. So that’s why everyone at ng-conf was wearing codpieces this year. I was really confused (and underdressed).


Spot the Bug logo

Spot the Bug: Solution

Sponsored by Snyk

JavaScript doesn’t allow class constructors to be async. We have to do any async actions outside of a constructor. Static class methods can help with this.

class User {
  static async init(userId) {
    const user = await getUser(userId);
    return new User(user);
  }
  constructor(user) {
    this.id = user.id;
    this.name = user.name;
    this.email = user.email;
  }
}

const me = await User.init(1)