Top all-time · #20121
Zak Knill
Personal blog · zknill.io/posts · on HN as zknillsystemsprogramming
Zak Knill writes /dev/knill, a personal blog at zknill.io about systems and programming. Since 2017, 3 different Hacker News readers have linked it 75 times, most often “A chatbot's worst enemy is page refresh”. It is still writing: the last post was on 2026-05-21, and you can follow it by feed.
Too few sampled comments (1) to say how often HN recommends it.?
Why HN links it
HN readers link zknill.io for posts on building realtime features in web apps and how to adopt realtime. The one comment disputes the post's terminology and says its advice on polling is inconsistent with the author's earlier post.
Summarised by Claude from a sample of 1 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Writing about distributed systems, building teams, and how software actually gets built.
Most-linked posts?
- A chatbot's worst enemy is page refresh2 people · 9 mentions · first linked 2026-02-11
- Patterns for adpoting Realtime updates in your app2 people · 3 mentions · first linked 2023-11-23
What Hacker News says?
https://zknill.io Personal site with blog posts on work, code, teams, orgs
Comment linking /
on “Ask HN: Share your personal site”Submitted Patterns for Building Realtime Features as a story · 161 points
HN discussionPolling in reactive webapps? (this is what he calls "realtime") Well, don't do that. He by himself advised against it previously https://zknill.io/posts/how-to-adopt-realtime/ And it's really annoying that those web nobs inflate terms. He also talks about hard realtime which has nothing to do with hard realtime. Will his webapps reboot? Ha, of course not. He is talking that reactive webapps becoming simple.
Comment linking /posts/how-to-adopt-realtime/
on “Patterns for Building Realtime Features”Submitted SSE sucks for transporting LLM tokens as a story · 38 points
HN discussionThere's two parts to this article. The scheduler/preemption, and the transport over the network. The article is absolutely right that long-lived request/response over HTTP connections with SSE streamed responses suck. The article touches very briefly on Phoenix LiveView and Websockets. I wrote about why chatbots hate page refresh[1], and it's not solved by just swapping to Websockets. By far the best mechanism is pu…
Comment linking /posts/chatbots-worst-enemy-is-page-refresh/
on “Your Agent Framework Is Just a Bad Clone of Elixir”Submitted SSE sucks for transporting LLM tokens as a story · 6 points
HN discussionYou don't need to be committing the prompts you're using. There's a whole bunch of back and forth in the prompts as you refine. That's not useful information. What you should do, is use the context window that you've got from writing the code and refine that into a commit message using a skill. https://zknill.io/posts/commit-message-intent/
Comment linking /posts/commit-message-intent/
on “Intent-Based Commits”Submitted If code is cheap, intent is the currency as a story · 4 points
HN discussionI suspect the answer is that the AI chat-app is built so that the LLM response tokens are sent straight into the HTTP response as a SSE stream, without being stored (in their intermediate state) in a database. BUT the 'full' response _is_ stored in the database once the LLM stream is complete, just not the intermediate tokens. If you look at the gifs of the Claude UI in this post[1], you can see how the HTTP respons…
Comment linking /posts/chatbots-worst-enemy-is-page-refresh/
on “All your agents are going async”Submitted Patterns for Building Realtime Features as a story · 4 points
HN discussionSubmitted AI token streaming isn't about SSE vs. WebSockets as a story · 3 points
HN discussionSubmitted If code is cheap, intent is the currency as a story · 3 points
HN discussionSubmitted SSE sucks for transporting LLM tokens as a story · 3 points
HN discussionSubmitted You don't need a CRDT to build a collaborative experience as a story · 3 points
HN discussionSubmitted LLMs are breaking 20 year old system design as a story · 2 points
HN discussionSubmitted LLMs are breaking 20 year old system design as a story · 2 points
HN discussionSubmitted How to make SSE token streams resumable, cancellable, and multi-device as a story · 2 points
HN discussionSubmitted All your agents are going async as a story · 2 points
HN discussionSubmitted You Are the Bottleneck as a story · 2 points
HN discussionSubmitted A chatbot's worst enemy is page refresh as a story · 2 points
HN discussionSubmitted SSE sucks for transporting LLM tokens as a story · 2 points
HN discussionSubmitted So you want to build AI Agent group chat like OpenAI? as a story · 2 points
HN discussionSubmitted So, you want to deploy on the edge? as a story · 2 points
HN discussionSubmitted Please don't write “point of view” as a story · 2 points
HN discussionSubmitted Failure Demand as a story · 2 points
HN discussionSubmitted Explain Using Analogies as a story · 2 points
HN discussionSubmitted Generations of AI applications: conversational, delegative, and collaborative as a story · 1 points
HN discussionSubmitted AI token streaming isn't about SSE vs. WebSockets as a story · 1 points
HN discussionSubmitted AI token streaming isn't about SSE vs. WebSockets as a story · 1 points
HN discussionSubmitted AI token streaming isn't about SSE vs. WebSockets as a story · 1 points
HN discussion