Hacker News new | past | comments | ask | show | jobs | submit login
Cloudflare acquires PartyKit to allow developers to build real-time multi-user (cloudflare.com)
202 points by jgrahamc on April 5, 2024 | hide | past | favorite | 74 comments



Partykit confused me. They hired two people, then laid them off (https://twitter.com/threepointone/status/1724159621382754738) after raising 2.5 million, with nothing but a vague message about "the tech landscape is moving changing incredibly fast". That seems kind of callous?


Wow, that didn't last long! This can only be an acquihire given Sunil worked at Cloudflare before.


Trying to improve EBITDA (profitability) in advance of an acquisition perhaps?

Or the company knew the deal was going forward and Cloudflare was unlikely to retain new employees?


I think it's a classic example of landing in that space of being a feature vs a product. I know from my part, I'm really fatigued on the SaaS model of spinning up so many different products from so many different providers for one freakin' project. So Partykit, while interesting tech, may have just struggled as independent infrastructure.

Partykit is actually powered by Cloudflare Workers, so it's a compatible acquisition that adds realtime to the workers platform. Plus like you said they had recently and unfortunately "stripped PartyKit way back" with some layoffs, so I'd imagine the acquisition was fairly cheap for Cloudflare.


A lot of folks on here complain about companies making long layoff announcements shrouded in "nice" speech. Finding the right balance seems to be hard for a lot of PR folks.


Problem is the layoff, not the PR balance.


I don't know anything about what happened here, but I know Sunil is a good person and wouldn't have done this on a whim. Sometimes there are internal problems forcing painful decisions but you just can't go and tweet the details.


[flagged]


> How can you call someone a good person

I know the guy.

> if they literally hired then fired people?

If hiring and firing is inherently wrong then I guess all founders are bad?


Good people make mistakes. Maybe the fired employees got really good severance packages? Maybe they were given introductions that led to immediate employment offers? I have no idea, but judging some one based on a tweet where they announced they had made a mistake that may have hurt two individuals is hardly fair.


I mean I think it's very telling since there was an acquisition nearly 6 months later by his previous company. That's quite an incestuous relationship, but hey he got his payday after removing two core contributors that were employees.

Why are you assuming they got severance? He wouldn't be legally complied to do so, and if he did he would have mentioned it.


I didn't assume anything, I suggested it may have happened. You seem to be the one assuming things and making accusations on another persons character. Its okay to ask questions, but we should do it nicely.


I know the people involved. It's not my business to publish their business, but I'm confident there's no malintent or hard feelings.

As Kenton mentioned above, Sunil is a good dude.


I think it’s an exaggeration to say ”Building experiences with real-time components was previously only accessible to multi-billion dollar companies”. For instance my hobby project ourboard.io provides realtime collaboration and it costs like 20$ to host with current moderate load of users. It utilizes Y.js for collab text editing. Y.js is dedinitely a great tech and has a low entry barrier.


There's a whole host of similar solution in the local-first realm of software[1].

I'm biased but you should definitely try Triplit[2] if you want a super easy way to make real-time collaborative software that works seamlessly even when offline or on unreliable networks (like on mobile).

[1] https://localfirstweb.dev/ [2] https://triplit.dev


If you consider it from the Cloudflare author's POV, it's likely an implied "at scale" in that statement.


Sure, but doing anything at a grand scale is expensive - realtime collab is no exception IMO, not that we already have things like Y.js. And don’t get me wrong, I’m not playing Cloudflare’s efforts down, just saying that particular claim is false.


Yeah I agree with it being an exaggeration. They are certainly riding the admittedly dated perception that realtime is so hard it's only available to the Googles and Figmas. But there's now some amazing open source solutions available like Y.js and ElectricSQL[1]. The barrier has certainly come down.

[1] https://github.com/electric-sql/electric


"The future of serverless is stateful"

I'm a big fan of Cloudflare's openness, e.g., in supporting wasm in workers.

But I wonder if building lock-in is really in their customers' interests - or theirs, if people lose faith in them.

One of the value propositions for javascript+databases, and java before it, is that it was a programming model built in the open, and sometimes to standards that multiple vendors could supply. The openness of SQL has powered the industry, notwithstanding the manifold limitations and variants.

A PartyKit integration is not particularly concerning if it's just niche gaming, but if real-time collaboration really does become trivial to implement at the same time AI spreads into all corners of content, it could become the dominant programming model for emerging tech at scale. AI seems to have ample competition, but I see little competition and many barriers to entry for this kind of programming model.


Standards bodies only standardize things after they've been proven to work. You can't standardize a new idea before offering it to the market. It's hard enough to get just one vendor to experiment with an idea (it literally took me years to convince everyone inside Cloudflare that we should build Durable Objects). Getting N competing vendors to agree on it -- before anything has been proven in the market -- is simply not possible.

But the Durable Objects API is not complicated and there's nothing stopping competing platforms from building a compatible product if they want. Much of the implementation is open source, even. In fact, if you build an app on DO but decide you don't want to host it on Cloudflare, you can self-host it on workerd:

https://github.com/cloudflare/workerd


> But I wonder if building lock-in is really in their customers' interests - or theirs, if people lose faith in them.

People happily (or sometimes unhappily) lock themselves in with AWS since it’s convenient and useful. And that’s what Cloudflare is aiming to be in the serverless landscape even if it isn’t ideal.


I guess there's degrees of lock-in. I.e. using some parts of AWS you know push comes to shove you could write a different alternative/use a different library. It's a bunch of building blocks. There's various alternatives out there for components.

Without reading too much of Partykit + Cloudflare, if you base your whole architecture on the way one company works and perhaps the pricing is too good to be true, you're setting yourself up for a rude shock in future.

Everytime I've looked at Cloudflare's pricing I've gone "that's bonkers cheap" for what you're getting, which sets off alarm bells that once a PE company gets their hands on it, it's not going to be that cheap any more.


The PartyKit website is wild, random cursors from other people! Quite fun to be chasing them around the screen!

(Which does seem to show off the lack of lag and responsiveness)


Reminds me of someone's personal site: https://dimden.dev/.

Not many people are currently on there, but you can just open another tab and see for yourself. Also has a little live chat which gets a bridge to their discord server, where you can chat with others that are currently on the page.


And this other personal site, with real-time multiple cursors: https://j-e-s-s-e.com


I love PartyKit! I used it to make a multiplayer version of sit:

https://untested.sonnet.io/Sit.%2C+(together)+devlog+002+%E2...


Other than games, anyone have good examples of real time multi user apps?

Even with things like docs and sheets, though the capability is there, I find myself rarely editing in real time with others.


We love PartyKit as a real time sync connector for Fireproof. This lets us offer CouchDB or Firebase-like experience with only a browser and less than 100 lines of JavaScript on the backend. Here is what our PartyKit server looks like for the curious: https://github.com/fireproof-storage/fireproof/blob/main/pac...


Remote pair coding, then jumping to a shared whiteboard, then a shared diagramming tool, then back to a shared IDE


Shared meeting notes is a common one. Brainstorming in FigJam is another.

If you're collaborating with other folks on a project, it's beneficial to see updates in realtime to maintain that one source of truth. Otherwise your work and theirs might overlap and someone will need to resolve merge conflicts. That, or you go the locking route, which comes with its own set of hassles.


Obvious plug but my company[1] is building a multi-user real-time 3d engine. Think Figma meets Unity. There are lots of fun use cases around working collaboratively on subparts of a larger 3d system without having to break it apart: - architects working on different parts of a building - engineers working on different pieces of a CAD model - game designers working on different levels, etc

[1] 3dverse.com


Figma is pretty great at this.


> anyone have good examples of real time multi user apps?

My SaaS day-job is a real-time multi-user checklist web-app - built using SignalR.

We're able to fit tens of thousands of concurrent users on a single Azure AppService instance - and we're self-hosted so we don't have IaaS-rug-pulling-anxiety - PartyKit looks cool, but I take a long-term view (5+ years) before adopting a technology, and PartyKit's brochure website is lacking information in that area...


interesting is there a non .net solution like signalr that can run on a single instance on AWS?


You can use WebSockets with NodeJS; there's a variety of libraries for this, but (naturally) it's npm-hell; but I'm not aware of any easy-to-use WebSocket wrappers/adapter libraries like what SignalR is, but it's been a while since I looked.

SignalR's two main selling-points back-in-the-day (2014-ish) was its solid cross-browser support and how it abstracted over WebSockets, Comet, SSE, long-polling, et al - but it's 2024 now and everyone's on Chromium or WebKit, so cross-browser support is moot, and and WebSockets+SSE now covers all use-cases; so there's less going-for SignalR thesedays, and since the ASP.NET Core rewrite of SignalR it just doesn't scale as well on the client-side (as it no-longer multiplexes multiple Hub requests over a single connection, which is crazy... and HTTP/2+QUIC+3 doesn't really help, I find).


That sounds a lot like socket.io?


Phoenix Channels


Chat, Audio/Video Conferencing apps are other examples.


I frequently do this in Notion, especially in more brainstorm-y meetings. Also good for notetaking; I might be writing most of the notes, but then start talking more, and see someone jump in to take my place in the notes.


I use the realtime editing features all the time with my coworkers.


ms.inopinatus and I often do event and travel planning through shared realtime notes

you could also build a 2-person permissive action link for nuclear weapons launches

or a stock exchange


Miro


I was looking at partykit a while back since I have some multiplayer game ideas I finally want to prototype. The pricing confused me -- why is it per developer when they claim to take care of the infrastructure hosting? Shouldn't it be usage based? Instead I've been learning Elixir + Phoenix framework which has been fun.


There's both a per-developer and per-usage component into their "pro" plan.


Oh I totally missed they snuck that in as a line item. Still, they require you to call them so who knows what that could end up being.


> The acquisition of PartyKit by Cloudflare isn't just a milestone for our two teams; it's a leap forward for developers everywhere.

This press release was written by ChatGPT.


hahahah so i thought the same and decided to try and recreate it

model = gpt4

prompt=write a press release for this announcement from cloudflare. Cloudflare acquires PartyKit to allow developers to build real-time multi-user applications

and guess what was halfway through...

"The acquisition of PartyKit by Cloudflare is more than just the merging of two technology companies; it is a significant leap forward in reducing the complexity and barriers to entry for developers aiming to build the next wave of interactive web applications. "

too good to be true

https://chat.openai.com/share/02976d40-f771-42ce-ae1e-738ba9...


Press releases have always sounded like that before ChatGPT.


how do you get that from just that sentence?


ChatGPT has a naive optimism. It reaches for airy, meaningless, slightly metaphorical statements right away (when asked to support something, not when explaining). It also uses simple, but very clean grammar, and has a bit of a thesaurus feel where it has no attachment to any particular word.

I've seen lots of people get it wrong, claiming that something is ChatGPT when it isn't. To my understanding, this is because they are negative matching - "this sounds weird, so it must be AI", or "this is wrong, so it must be AI", and not positive matching on ChatGPTs exact tone.


On the other hand, press releases are overly optimistic, airy, and meaningless.

ChatGPT being able to write this PR just shows how industry bog standard Cloudflare's PR is. It's like ChatGPT using the word "synergy".


Guess they incorporated a lot of HN training data. :)


I love using Cloudflare for my projects, but something about Durable Objects just scares me so much.

I feel like an application like collaborative editing would send so much requests that billing would have to be insane, right? Even for my hobby size projects which I would like to publish for fun, terrify me with possible usage costs.

Their hibernation web socket thingy is great, but the real thing that scares me is the overall web socket message cost.


FWIW yesterday we announced that WebSocket messages are now billed at 1/20 of a request, rather than a full request. It was kind of buried in this omnibus blog: https://blog.cloudflare.com/workers-production-safety


Oh I totally missed that, thanks for making me aware of it.

Edit: Oh wow, I totally missed the rate limiter thing as well. Just last week I was implementing my own using DO. It's great to see this developments.


Is this the better pricing y'all are figuring out that's been dangled since the launch of Durable Objects + WebSocket on Workers?

Oh and somehow I missed the Hibernation API announcement. Paying for idle but connected time is what made me nope out of trying it out.


Your clients control the number of messages they exchange with each other via the DO.

You still have to protect the DO through some sort of auth and/or rate limits.

Don’t see how any of these issues are unique to DOs.


My issue was that a single message, be it 4 bytes, was essentially billed the same as a 20Mb request. Didn't make too much sense to me.

If I have to think about batching messages to decrease costs even tho my overall transport and execution would be the same, I feel like that's an issue on the platform somehow.


When I took a look at using DO last time I decided against using them because you had to pay for the duration your clients are connected to them when using WebSockets. As far as I understood it’s not execution duration but flat out how long your clients are connected. You’ll burn through seconds quickly that way. I decided to go with a polling mechanism instead.


They have hibernating durable objects now that don’t charge unless there is a request through them: https://developers.cloudflare.com/durable-objects/api/websoc...


Oh that’s neat! I’m not sure if it didn’t exist or if I didn’t find this last time. Looks like this would address the problem.


If you’re concerned, another alternative is to use WebRTC for peer to peer connections. Bypass the server entirely and use it only for signaling.

https://github.com/dmotz/trystero


Congrats! I used PartyKit since the early beta; for the open source React rich text editor I'm working on (https://www.blocknotejs.org, the homepage runs on Partykit), and PartyKit was a breeze to integrate (ofc, big part because we both build on Yjs). Looking forward to seeing where Cloudflare wants to take this further!


Genuinely happy for Sunil who built a great community and moved the space forward!

Liveblocks also runs partly on Cloudflare Workers, it’s been great for stateful real-time servers.


Is it possible to use PartyKit without Cloudflare? Such as hosting your own workerd instance? Is there any documentation anywhere for this?


I should note, I spent quite a bit of time looking at the official docs and couldn't find an answer for sure right away. It seems like Cloudflare is the only officially supported option (either through the PartyKit managed service or direct).

While I might consider using Cloudflare, I wouldn't be willing to build an app in such a way as to depend on Cloudflare. If Cloudflare changes pricing, or comes under political pressure to terminate my account, or my business changes such that the Cloudflare offering is no longer suitable, I want a way to quickly migrate. It does seem that the main pieces are there and open source, but would likely require some amount of work to figure out and get into production.


> Is there any documentation anywhere for this?

PartyKit is open source (https://github.com/partykit/partykit/, MIT), so you could create your own back-end. The Socket.IO folks appear to have done this: https://blog.partykit.io/posts/party-io-a-socket-io-backend-...


Thanks! I will look into that. I knew it was Open Source and that it would be possible to create my own backend, I was just wondering if it had been actually been done/documented. This link answers my question, and PartyKit will go on my radar for future evaluation and possible use! :)


Durable Objects have a bit weird programming model for me, I hope this one will be easier.


how does this compare to Supabases realtime features? I been generally confused about cloudflare pricing and its wide array of products (unsure which to use and when).


Mia Wang big brain at work. Good stuff!!

(https://x.com/miawang__)


"Building experiences with real-time components was previously only accessible to multi-billion dollar companies"

... what a load of nonsense. I've built them in a few hours, spending £5 per month for a server.


If you want to use something similar that’s not owned by a big company now, take a look at cord.com :)


Account created 6 hours ago and has just posted this comment. Twice. This ah, probably doesn't come across the way you'd like it to.

More than that, isn't this precisely the kind of product that you would want operated by a large cloud infrastructure provider?


If you want to use something similar that’s not owned by a big company now, take a look at cord.com :)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: