frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Deep Agents

https://nlp.elvissaravia.com/p/deep-agents
1•omarsar•45s ago•0 comments

Claude Skills

https://www.anthropic.com/news/skills
2•meetpateltech•1m ago•0 comments

Prospects for the Crossing of Comet 3I/ATLAS's Ion Tail

https://arxiv.org/abs/2510.13222
1•bikenaga•1m ago•0 comments

Americans are socialising less – here's why that's worrying [video]

https://www.bbc.com/reel/video/p0m5p7x8/americans-are-socialising-less-here-s-why-that-s-worrying
1•obscurette•2m ago•0 comments

Managing Knowledge in Science Teams

https://mnky9800n.substack.com/p/managing-knowledge-in-science-teams
2•mnky9800n•3m ago•0 comments

Scaling Laws for Reinforcement Learning

https://huggingface.co/papers/2510.13786
1•lewtun•6m ago•0 comments

PayPal and Venmo are down – live updates on the ongoing outage

https://www.tomsguide.com/news/live/paypal-venmo-down-live-updates-outage-10-16
1•sva_•7m ago•0 comments

Rust is renaming the default branch from master to main

https://blog.rust-lang.org/inside-rust/2025/10/16/renaming-the-default-branch-of-rust-langrust/
1•SchwKatze•7m ago•0 comments

Evolving ZGC's Pointer Color Palette [video]

https://inside.java/2025/10/06/jvmls-zgc-colored-pointers/
1•gudzpoz•8m ago•0 comments

Beyond Keywords and Vectors:DSL-Based Hybrid Search

https://coderswap.ai/blog/dsl-hybrid-search
1•vtaya•9m ago•1 comments

Chinese Criminals Made More Than $1B from Those Annoying Texts

https://www.wsj.com/tech/cybersecurity/url-scam-texts-china-gangs-68e96097
3•NN88•11m ago•0 comments

Secret diplomatic message deciphered after 350 years

https://www.nationalarchives.gov.uk/explore-the-collection/the-collection-blog/secret-diplomatic-...
3•robin_reala•11m ago•0 comments

Show HN: Instantly build a real website from an idea

https://www.myzylo.app
2•rhettjull•13m ago•0 comments

China tightens export rules for rare earth minerals

https://www.bbc.com/news/articles/ckgzl0nwvd7o
2•wilsonfiifi•13m ago•0 comments

An Interview with Mohamed Awad About Chiplets

https://www.chipstrat.com/p/an-interview-with-arm-gm-mohamed
2•rbanffy•13m ago•0 comments

One Republican Now Controls a Chunk of US Election Infrastructure

https://www.wired.com/story/scott-leiendecker-dominion-liberty-votes/
2•rbanffy•13m ago•0 comments

Moscow Built What Kiev Could Not

https://nopolitik.substack.com/p/rus-between-kiev-and-moscow
3•GitPopTarts•14m ago•0 comments

Hijacking Claude Code via Injected Marketplace Plugins

https://promptarmor.substack.com/p/hijacking-claude-code-via-injected
7•jackson-mcd•15m ago•0 comments

The new AI mode of my form builder

https://lightbee.io/en
2•mountain-hawk•17m ago•0 comments

Show HN: A data driven approach to hiring

https://substack.com/inbox/post/176108200
3•vb7132•19m ago•0 comments

Is New Housing Popular?

https://reason.com/2025/10/07/is-new-housing-popular/
4•mooreds•19m ago•0 comments

Mathematicians have found a hidden 'reset button' for undoing rotation

https://www.newscientist.com/article/2499647-mathematicians-have-found-a-hidden-reset-button-for-...
2•mikhael•20m ago•0 comments

x86-64 GetPC: Syscall

https://medium.com/@5yx/x86-64-getpc-syscall-02f7a3100a27
1•signa11•20m ago•0 comments

Show HN: AI meeting transcription that outputs structured minutes

https://harku.io/tools/meeting-transcription
2•howardV•21m ago•0 comments

Converting inbound leads into customers at OpenAI

https://openai.com/index/openai-inbound-sales-assistant/
3•mooreds•21m ago•0 comments

The SaaS Industrial Complex: When Their Mirror Becomes Your Mold

https://www.alephic.com/writing/the-saas-industrial-complex-when-their-mirror-becomes-your-mold
3•mooreds•21m ago•0 comments

Reprogramming obesity: New drug aims to treat the underlying causes

https://medicalxpress.com/news/2025-09-reprogramming-obesity-drug-aims-underlying.html
2•PaulHoule•24m ago•0 comments

RTFM: A Real-Time Frame Model

https://www.worldlabs.ai/blog/rtfm
10•lairv•25m ago•0 comments

Insights a 25 Year Old Movie Can Give Us on LLMs

https://blog.nawaz.org/posts/2025/Oct/insights-a-25-year-old-movie-can-give-us-on-llms/
2•BeetleB•26m ago•0 comments

Making a Game Boy game in 2025

https://kofi.sexy/blog/gameboy-game
4•kofigumbs•27m ago•0 comments
Open in hackernews

Why I Chose Elixir Phoenix over Rails, Laravel, and Next.js

https://akarshc.com/post/phoenix-for-my-project.html
97•akarshc•2h ago

Comments

jherdman•1h ago
> But I still needed background jobs, real-time updates, and two-way communication that just works. Those things are possible in Rails and Laravel, but they take a bit more effort to set up.

I'm pretty sure this isn't true at all with Rails. Out of the box you get Solid Queue (jobs), and Solid Cable (real time messaging).

nop_slide•1h ago
Yeah def odd, I'm a recent rails convert and SolidQueue is dead simple and is setup out of the box.

When paired with https://github.com/akodkod/solid-queue-dashboard you get a nice overview.

jamiecurle•52m ago
I think what the blog post is getting is OTP and the mystical/but not mystical GenServer / Supervisor/ distributed pattern. It's baked right in there as a core part of the Erlang VM. I think the post glances over the fact that in rails land solid queue may be right there to use (I've not really used rails in over 10 years).

Thing is with Elixir though, yes the tools are right there, but you do have to take time to understand them. I've been on and off with Elixir since 2016 and I'm currently wrapping up on a fairly complex elixir project with zero UI. (connecting Shopify GraphQL to a series of 3rd party fulfilment providers who use SFTP (gross). So yes, GenServer, Supervisor etc are all right there as first class citizens, but whilst they are relatively simple to start using, you can end up with some horrifically structured code that would have been much better written without the distributed stuff.

Personally, I prefer Django. Been using it since 2006 and as a person who started off in design but ended up as an engineer, nothing beats Django's template engine (braces for incoming). Django isn't perfect but nothing is. When I have to get something done quick and there's UI work for me to do, I go to Django. When performance or no UI, I go elixir. If someone else is doing the UI, I go phoenix.

akarshc•1h ago
All the things are possible in rails as well. it is a beautiful framework, but it is so much easier to use with phoenix. Do try it out
dismalaf•1h ago
> It’s way ahead of both Rails Hotwire and Laravel Livewire. LiveView communicates through WebSockets

Where's the facepalm emoji?

Rails Hotwire uses websockets... The research done here seems to be so basic it literally missed something written on hotwired.dev's landing page, albeit it's mentioned far down enough you have to scroll a teeny tiny bit (half a page on my screen)...

Rails also has background jobs and all the other things considering Phoenix is modeled after Rails.

Rover222•1h ago
Yeah I feel like most devs still think of rails as it was about... 8 years ago.
jbverschoor•1h ago
18
dpflan•1h ago
The author is a self-professed front-end developer according to LinkedIn, which may be influencing experience with backend systems and functionality. I was wondering really why this terse post is sky-rocketing to #1 today, hopefully we get some good discussion from the community.
grim_io•1h ago
Any kind of comparison of popular frameworks activates all the dev nourons in my monkey brain.
andersmurphy•1h ago
Websockets are the wrong choice. SSE is the way to go. That or your own UDP protocol.
dismalaf•1h ago
Hotwire lets you use either. https://turbo.hotwired.dev/handbook/streams
samjowen•23m ago
What's the advantage of using SSE versus WebSockets in this instance?
sodapopcan•57m ago
Ya, this was not worded well at all (and more likely just not well researched (in the article, I mean). The difference between hotwire/livewire and LiveView is that with LiveView you get a "live" connection to persistence BEAM process which comes with benefits like not having to rebuild things (like the current user) on each request and storing ephemeral state on the server (if you need it). Of course there are trade off like PWAs are not fun in LiveView (you likely just wouldn't do it, I never have).
dismalaf•45m ago
> "live" connection to persistence BEAM process

This particular bit does seem interesting and would make sense to take advantage of the BEAM's cheap green threads. Couldn't find any info on LiveView's GitHub landing page nor the Phoenix website (haven't dug too much), do you happen to have a link?

sodapopcan•31m ago
The guides are the best place to learn about LiveView itself. Since guides are always included as part of the docs (reference docs) people always tend to shy away from them (not saying you are, it's just a thing with people it seems):

https://hexdocs.pm/phoenix_live_view/

sodapopcan•16m ago
Oh also wanted to point out that while there has been an ongoing effort for LiveView Native, it is not there yet (I actually haven't heard anyone talking about it in quite a while). I'm not too in the Rails world so I don't know how good Hotwire Native is, but I assume it's much further along than LV Native, so that's a big thing if you need that. No idea about LiveWire as I've never even been in the Laravel world.
akarshc•24m ago
You’re right. Hotwire (specifically Turbo Streams) does use WebSockets under the hood when available. And yes, Rails has background jobs, ActiveJob, and other robust primitives that Phoenix was inspired by.

That said, the key difference is not whether both use WebSockets, but how deeply integrated and unified the real-time model is in Phoenix. LiveView is not a separate layer bolted onto traditional Rails views. It is part of the core rendering lifecycle. Every UI update, state diff, and event is handled natively within the same process, leveraging the BEAM’s concurrency and fault-tolerance.

In Rails, Hotwire sits on top of the request–response model, giving you partial reactivity without rearchitecting how views work. It is elegant, but still a composition of multiple layers (Turbo, Stimulus, ActionCable).

Phoenix LiveView, on the other hand, was designed from the ground up around real-time stateful components, which leads to fewer moving parts, no client-side JS framework to maintain, and native process isolation per connected user.

So while they share concepts, the philosophy and architecture diverge. LiveView feels closer to a full reactive runtime, not just HTML over the wire.

P.S: I do love rails

phplovesong•1h ago
Anything PHP and you going to have bad time once you need concurrency. This time will come sooner or later.
magdyks•1h ago
My biggest problem with Elixir is the lack of support for 3rd-party libraries and the small community. I love the idea of it, but every time I try to ship a real project in LiveView, I'm left feeling like the community is not that mature. Maybe coming from a Go backend React frontend stack, that might be the case, but maybe for quick CRUD apps, it's great.
dpflan•1h ago
Elixir is pretty "nifty", and has Rails feels. I have worked on and seen its performance compared to scaled up Rails application. The BEAM / OTP is a very cool system to program on top of. I think it would be a great underlying system to develop a consciousness for AI systems with its concurrency paradigms and message passing, node connecting, other builtins. I'm not sure if the AI/ML focused Elixir projects like Nx have really taken off, but again, an Elixir based system that accepts numerous connections, passes messages around like exciting synaptic communications between functions... it just seems cool, maybe just on paper...
lab14•1h ago
What do you mean "consciousness for AI systems"?
dpflan•49m ago
When you consider the message passing paradigm, I can envision how that simulates neuro-chemical communication between neurons (now here being functions that do things). So there is a design for communication between functions, then there are memory storage and information retrieval parts of the system, short-term RAM, long-term HD/SSD, databases, cache-systems, where relevant information can be and become manipulated. Long and short running processes, acceptance of fail-fast and that communications can fail and that's just part of software system life (I assume also a similar idea in the human brain, don't you find yourself forgetting something you were just thinking about?). There is then the external part of the system, accepting inputs from the outside.
lab14•44m ago
The message passing paradigm is called the "Actor Model" and was invented in the 70s IIRC. It's available in most programming languages and it's not something exclusive to Elixir by any means.

https://en.wikipedia.org/wiki/Actor_model

dpflan•34m ago
Correct, it's not strictly unique to this. Even Ruby has it, but Ruby does not have BEAM/OTP.

Smalltalk was a fun language to work with, albeit academically.

kylecazar•12m ago
Not exclusive to Elixir, but the BEAM was built from the ground-up around Actor for concurrency. Almost all other popular language ecosystems have it bolted on over time (with varying degrees of success) or relegated to a third party library. My point being -- it's very natural and ergonomic in Elixir.

Goroutines probably come closest.

andai•1h ago
Interesting article, but I had to scroll all the way to the bottom to find what you actually built. I consider this important information, because the right tool for the job will depend on what the job actually is!

(Although I must say the advantages you listed — a strong compiler, concurrency, reliability — do sound universally good.)

It would have been interesting to see the specific problems you had when building specific features, and how the unique advantages of this stack helped you solve them.

righthand•1h ago
I am curious how much longer NextJS will last considering it is a lock-in vehicle for Vercel.

However as far back as I can recall it’s shift onto the dev stack was less about “is it a good framework” and more about “this framework can help Product org prototype faster”.

With the advent of Llms, will Product org even care about the dev speed for prototyping?

agos•14m ago
the sentiment around NextJS is terrible, I have rarely seen something go from "oh this might be cool" to "stop pushing this badly engineering crap on me" so quickly. Yes, it's widely used and that's to be expected given the amount of money spent in promoting it, but it's not loved by any mean and I see this as a fatal flaw that they'll have to reckon with sooner or later. It's so bad that it worsened React's reputation by association - React already had some issues to care about, but they went in Next's direction, and people have noticed
jbverschoor•1h ago
Until you realize you're reimplementing Rails :)
exabrial•1h ago
The Elixir live view model to me look like one of the only sane programming models for modern web development right now... Otherwise your best choice still remains to be server side rendering.
dismalaf•1h ago
> Otherwise your best choice still remains to be server side rendering.

?? Phoenix Live View IS server side rendering...

azundo•1h ago
I think they more specifically mean server side rendering of react components vs an SPA.
exabrial•39m ago
Yes. I wasn't implying live views are not this, I was trying to say react, vue, angular, svelte, next.js, solid, preact, alpine.js, ember, backbone, lit, mithril, stimulus, knockout, aurelia, polymer, riot, inferno, marko, dojo have a terrible programming model and anything with server side templates is a vast improvement.
guywithahat•1h ago
One benefit i found over rails was just some of the libraries were more modern. I'm not a backend developer, so maybe I'm just not skilled enough to know how to do these things, but I found rails libraries tended to be dated and missing more modern features.

Specifically I wanted to run both the API and website on the same server (since it was a small company), and with Rails the gem Devise didn't natively support both and while rodauth claimed to support both I couldn't get the build flag to work. With phoenix it just worked out of the box with the most popular libraries, allowing me to move on without becoming an expert in backend frameworks. I agree with most everything else the author said too, specifically about it being more performant and liveview allowing me to build more dynamic websites easily.

dismalaf•54m ago
> the gem Devise didn't natively support both

Sounds like a Devise problem.

jrochkind1•46m ago
Sounds like you're saying it sounds like a Devise problem.
gregors•32m ago
A lot of ruby gems have definitely seemed to suffer from brain drain the last few years.

It's worth noting that the creator of Elixir was also an author of Devise.

Jnr•1h ago
All good, but did you know that Next.js is a full stack framework? You can have backend and frontend in the same code base. You don't need Laravel if you use Next.
pier25•1h ago
> You don't need Laravel if you use Next

But you do need to solve a lot of stuff that Laravel already solves for you.

FredPret•35m ago
BEAM / Erlang / OTP / Elixir feels different:

- no JS (well a tiny bit ships with Phoenix but I never have to look at it), no NPM, nothing that breaks every week

- the whole system lends itself to executing on multiple cores

- GenServers BEAM processes in general are amazing

rvitorper•29m ago
Next.js is still missing lots of backend stuff. Background jobs, cron jobs, queues, etc.
schultzer•1h ago
A lot of people tend to flag Elixir for its size and rightfully so, but the community is trying to punch above it’s weight with SOTA libraries. As an old developer once told me: less is more. https://github.com/elixir-dbvisor/sql
cantor_S_drug•1h ago
For those who want to experience the strength of Elixir, they should watch all videos of Saša Jurić on Elixir.
duckydude20•37m ago
iirc he wrote elixir in action. also. really good.
samjowen•26m ago
Indeed, it's a masterclass in technical writing. It's the best programming book I have read.
tr888•1h ago
Not knocking the choice but:

> I still needed background jobs, real-time updates, and two-way communication that just works. Those things are possible in Rails and Laravel, but they take a bit more effort to set up.

These all have first class support in Laravel out the box.

agos•22m ago
do real time updates and two way communication work out of the box with a cluster as well?
xutopia•1h ago
I love how this article reads more like the individual ignores features and capabilities of other frameworks to then state that the framework he chose is better.

Rails has everything he mentions as an advantage of Phoenix. He's also implying that Rails does not use web sockets to communicate with frontend which is not only wrong it should be evidently wrong to anyone who built a Rails app in the last 3 years.

That's not to say that Phoenix and LiveView aren't phenomenal tools, they are! However what's keeping me in the Rails world is Hotwire Native. I truly feel like a one man army building mobile and web apps in a quick turnaround time.

gregors•47m ago
The problem is the websocket implementation (last time I tested it) sucked. I'm assuming even now if you're doing non-trivial websockets you need to use the node or golang implementation.
nomilk•44m ago
Yup. the rails 7 demo showed websockets back in Dec 2021:

https://www.youtube.com/watch?v=mpWFrUwAN88&t=25m46s

garbthetill•23m ago
Ive only used ruby a handful of times, so my comment might be ignorant. But other than community , what does ruby and ror do better than say elixir & phx, i feel like the latter is leagues ahead simply because nothing can compare to the beam platform for soft real time systems, you have fault tolerance, nifs, actor model , you can have millions of processes running at the same time for cheap, easy to reason about concurrency , fp makes code concise imo, otp, the beam gc doesnt stop the world etc I just think on paper phx is superior thanks to the beam platform

That being said use what you like and hotwire native sounds cool will give it a try. I also think the author of the blog shouldve went a bit deeper with his points

dimitrisnl•59m ago
The post is mostly about Phoenix LiveView, while the title makes it about the framework.

To be honest one of the reasons I don't like Phoenix is that even if I opt-out of LV in the generators, I still get a lot of LV code.

mati365•58m ago
I implemented CKEditor integrations for Rails, Livewire, Phoenix, and React. I think the best developer experience was with Phoenix - at every step I was surprised by how well thought-out the framework is and how easy it is to build integrations for it. I definitely can’t say the same about Rails or, especially, React with the awful Next.js. For anyone curious: https://github.com/Mati365/ckeditor5-phoenix

As for Livewire - it feels like a simplified copy of Phoenix. In my opinion, it’s less advanced and less intuitive. For example, Livewire components don’t support slots, while Phoenix components handle them without any issues. Slots are critical for clean component composition - without them, you end up with messy, repetitive templates and a lot of unnecessary logic in the components themselves.

When it comes to Next.js, constant router changes and questionable decisions have become a daily routine. There’s no point integrating with something that gets rewritten every week and can’t be trusted to stay stable.

ramon156•23m ago
I want to give both of these a try, especially if you say react+next.js is awful. You'd think TS-TS would be well thought out
dominicrose•13m ago
PHP (Laravel) + JQuery still works for me in 2025, but I would never use Livewire.

Using Node.js would hurt productivity but it's more powerful if needed. It may be needed because it has async/await and it has socket.io. It's also possible to use Typescript.

Next.js can be useful if you need everything (good SEO + highly interactive) but let's be honest how many websites need good SEO and websockets? LinkedIn maybe.

Tade0•9m ago
I'm curious about your experience with Rails. What specifically caused issues?
rkangel•55m ago
Oban is great, but for most cases you don't need it. In languages with a less good concurrency model we are used to needing some form of library or system to manage "background jobs", but in Elixir you can just spin up some GenServers under a supervisor to do work. Start there and only use Oban if there's some form of consistency/resumability guarantee that you need.
itbeho•22m ago
I haven't found Oban difficult to work with and it has the added benefit of ensuring your jobs are run only once. There is also the cron functionality that I find really useful for scheduling.
cultofmetatron•20m ago
> Oban is great, but for most cases you don't need it.

7 years in on an elixir startup that has well over a thousand active paid accounts using our system every day to run critical businesses. I have to politely disagree.

USE OBAN from day one for any kind of background jobs. do not trust genservers. they lose their state if a pod goes. There's no retry logic built in.

> Start there and only use Oban if there's some form of consistency/resumability guarantee that you need.

oban is easy enough to integrate. it takes like 10 min of your time and you get a LOT out of the box. use genservers if you're running ephemeral servers but if you are creating background tasks, absolutely use oban for anything you plan to put on production.

Oban is such an easy value proposition to justify. consider it as important to learn as core phoenix

parthdesai•15m ago
With GenServers, what happens if you pod/machine crashes? You lose all the unprocessed jobs. Oban gives you safe retries, and guarantees consistency. If you're using a relational DB, I would infact suggest to start with Oban, and then take a look at the jobs and see if you are okay with losing jobs and move to GenServers.
jonathan920•52m ago
What matter most is having enough code out there for ai model to learn and study it so people can build with it.
benzible•7m ago
Chris McCord directly addresses this in his recent ElixirConf talk. There's a threshold amount of training data needed for LLMs to work well, and Elixir more than clears it. Beyond that threshold, having more data doesn't make a tremendous difference. This means the "frustration gap" for newcomers essentially disappears - people who heard "Elixir is good" can now just ask an LLM to build something and start immediately, easing their way into understanding functional programming paradigms in order to be productive. I use Claude Code daily for Elixir development and it understands the language perfectly. The real strategic advantage is that while other ecosystems scramble to solve agent orchestration problems, Elixir/OTP already solved them decades ago. Lots more here: https://www.youtube.com/watch?v=6fj2u6Vm42E&t=1321s
alberth•44m ago
After Elixir announcing being "feature complete" a few years ago, and then Phoenix going down the LiveView path for quite sometime ... I feel like the Phoenix/Elixir stack became less exciting to me.

Hope to be wrong though. Erlang based systems are really interesting and under appreciated.

recroad•31m ago
Can you explain more? What became less exciting and why exactly?
alberth•25m ago
It just felt like momentum slowed and/or there was less PR about Elixir/Phoenix.

But I could be completely wrong (or have the wrong perception).

Note: not at all suggesting hardwork/progress isn't being made.

riffraff•20m ago
hasn't elixir kept innovating? The whole static typing/inference system seems pretty cool and keeps improving.

edit: eh, I just went to check and they just has a release today :D

https://elixir-lang.org/blog/2025/10/16/elixir-v1-19-0-relea...

bcrosby95•17m ago
That post made me love Elixir. Languages shouldn't be constantly added to until they become so unweildly they turn into C++, they should be flexible enough to not need to be turned into C++.

I think Elixir hits a good mid-point in this struggle: the syntax is familiar but it also has macros, giving the core language the features it needs so the designers don't have to constantly pile on new features.

mbesto•44m ago
Great. Now tell me how you plan to scale a dev team who all know Elixir?
sph•36m ago
If the only metric you care about is "scaling a dev team", use JavaScript. You're welcome.
agos•18m ago
by hiring people without the expectation to be already proficient in it, as long as they are willing and capable of learning it in a reasonable time
akarshc•3m ago
I guess hiring a developer who knows rails or even laravel can easily pick up with phoenix.
gregors•38m ago
As someone who did Rails professionally for a very long time, Phoenix/Elixir is now my default stack.

Possibly the one thing that Rails still does better is generating quick throw away CRUD apps with their generators. Rails is still pretty much flawless in that regard. That beings said, when things mature and complexity grows Phoenix/Elixir is definitely the better all around tool.

nasmorn•4m ago
I think LLM have really closed that gap. Quick throwaway stuff can be generated in a couple of minutes. But phoenix gives me back all the control in cases I care.
ninetyninenine•38m ago
I can see why elixir over rails but do you guys know about type checking?
dmitrijbelikov•34m ago
Laravel - https://laravel.com/docs/12.x/queues
brap•21m ago
Doesn’t the LV approach suffer from latency issues?

If I understand correctly all state is managed by the server, which means even the most trivial UI interaction needs a roundtrip. Not to mention the cost of managing the state and connection of every client. So how does that work in practice?

akarshc•18m ago
latency is minimal because liveview sends only dom diffs, not full page updates. most interactions feel instant. each connection runs as a lightweight beam process, so managing per-user state scales efficiently. for very high-frequency ui updates, some client-side js may still be needed, but for forms, lists, modals, and live updates, liveview is smooth and responsive.
mcdow•17m ago
I really want to choose Phoenix, but I can't get over the fact that LiveView is front-and-center. The whole web-socket model just seems so brittle to me.