[HN Gopher] Cloudflare acquires PartyKit to allow developers to ...
       ___________________________________________________________________
        
       Cloudflare acquires PartyKit to allow developers to build real-time
       multi-user
        
       Author : jgrahamc
       Score  : 175 points
       Date   : 2024-04-05 13:03 UTC (9 hours ago)
        
 (HTM) web link (blog.cloudflare.com)
 (TXT) w3m dump (blog.cloudflare.com)
        
       | bennyp101 wrote:
       | 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)
        
         | SushiHippie wrote:
         | 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.
        
           | dorian-graph wrote:
           | And this other personal site, with real-time multiple
           | cursors: https://j-e-s-s-e.com
        
         | rpastuszak wrote:
         | I love PartyKit! I used it to make a multiplayer version of
         | sit:
         | 
         | https://untested.sonnet.io/Sit.%2C+(together)+devlog+002+%E2...
        
       | eddd-ddde wrote:
       | 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.
        
         | kentonv wrote:
         | 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
        
           | ftigis wrote:
           | 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.
        
           | eddd-ddde wrote:
           | 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.
        
         | Sai_ wrote:
         | 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.
        
           | jaflo wrote:
           | 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.
        
             | ec109685 wrote:
             | 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...
        
               | jaflo wrote:
               | 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.
        
           | eddd-ddde wrote:
           | 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.
        
       | endisneigh wrote:
       | 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.
        
         | selvan wrote:
         | Chat, Audio/Video Conferencing apps are other examples.
        
         | fritzo wrote:
         | Remote pair coding, then jumping to a shared whiteboard, then a
         | shared diagramming tool, then back to a shared IDE
        
         | latchkey wrote:
         | I use the realtime editing features all the time with my
         | coworkers.
        
         | badwolf wrote:
         | Figma is pretty great at this.
        
         | ketzo wrote:
         | 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.
        
         | inopinatus wrote:
         | 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
        
         | et-al wrote:
         | 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.
        
         | kimar wrote:
         | 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
        
         | morkalork wrote:
         | Miro
        
         | DaiPlusPlus wrote:
         | > 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...
        
           | spxneo wrote:
           | interesting is there a non .net solution like signalr that
           | can run on a single instance on AWS?
        
             | DaiPlusPlus wrote:
             | 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).
        
               | Nullabillity wrote:
               | That sounds a lot like socket.io?
        
             | robbs wrote:
             | Phoenix Channels
        
         | jchanimal wrote:
         | 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...
        
       | ptrwis wrote:
       | Durable Objects have a bit weird programming model for me, I hope
       | this one will be easier.
        
       | rasengan wrote:
       | > 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.
        
         | willsmith72 wrote:
         | 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...
        
         | pluto_modadic wrote:
         | how do you get that from just that sentence?
        
           | sdwr wrote:
           | 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.
        
             | ethbr1 wrote:
             | Guess they incorporated a lot of HN training data. :)
        
             | hombre_fatal wrote:
             | 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".
        
         | eagleinparadise wrote:
         | Press releases have always sounded like that before ChatGPT.
        
       | wrongcarwhy wrote:
       | 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?
        
         | cj wrote:
         | 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?
        
         | ensignavenger wrote:
         | 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.
        
           | progbits wrote:
           | Problem is the layoff, not the PR balance.
        
         | kentonv wrote:
         | 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.
        
         | matt_oriordan wrote:
         | Wow, that didn't last long! This can only be an acquihire given
         | Sunil worked at Cloudflare before.
        
         | toddmorey wrote:
         | 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.
        
       | trevor-e wrote:
       | 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.
        
         | Gr4phTh3ory wrote:
         | There's both a per-developer and per-usage component into their
         | "pro" plan.
        
           | trevor-e wrote:
           | 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.
        
       | w10-1 wrote:
       | "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.
        
         | ayuhito wrote:
         | > 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.
        
           | RowanH wrote:
           | 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.
        
         | kentonv wrote:
         | 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
        
       | spxneo wrote:
       | 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).
        
       | neom wrote:
       | Mia Wang big brain at work. Good stuff!!
       | 
       | (https://x.com/miawang__)
        
       | ensignavenger wrote:
       | Is it possible to use PartyKit without Cloudflare? Such as
       | hosting your own workerd instance? Is there any documentation
       | anywhere for this?
        
         | ensignavenger wrote:
         | 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.
        
         | CharlesW wrote:
         | > _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-...
        
           | ensignavenger wrote:
           | 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! :)
        
       | lalalalalia wrote:
       | If you want to use something similar that's not owned by a big
       | company now, take a look at cord.com :)
        
       | lalalalalialia wrote:
       | If you want to use something similar that's not owned by a big
       | company now, take a look at cord.com :)
        
       | jakegmaths wrote:
       | "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 PS5 per month for a server.
        
       | nullzzz wrote:
       | 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.
        
         | CharlesW wrote:
         | If you consider it from the Cloudflare author's POV, it's
         | likely an implied "at scale" in that statement.
        
           | nullzzz wrote:
           | 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.
        
         | toddmorey wrote:
         | 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
        
         | matlin wrote:
         | 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
        
       | YousefED wrote:
       | 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!
        
       ___________________________________________________________________
       (page generated 2024-04-05 23:01 UTC)