Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #6989

A

Anders Murphy

Personal blog · andersmurphy.com · on HN as andersmurphyprogrammingdata

Anders Murphy writes anders murphy, a personal blog at andersmurphy.com about programming and data. Since 2021, 11 different Hacker News readers have linked it 27 times, most often “Clojure: Realtime collaborative web apps without ClojureScript”. It is still writing: the last post was on 2026-10-12, and you can follow it by feed.

Visit the blog
27mentions?
11HN people?
2021–2026first – last linked?
Links on Hacker News per year · peak 12 in 2026

Too few sampled comments (3) to say how often HN recommends it.?

Why HN links it

HN readers link Anders Murphy's posts on building realtime web apps with Datastar and server-sent events, and on Lisp-1 versus Lisp-2 namespaces. One commenter called the Game of Life post excellent.

Summarised by Claude from a sample of 3 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

A blog mostly about Clojure programming

The author on HN?

andersmurphy · 993 karma · member since 2019

https://andersmurphy.com

From their public HN profile, which links to this site.

Most-linked posts?

  1. Clojure: Realtime collaborative web apps without ClojureScript
    4 people · 5 mentions · first linked 2025-04-08
  2. 100k TPS over a billion rows: the unreasonable effectiveness of SQLite
    2 people · 8 mentions · first linked 2025-12-02
  3. SQLite improving performance with pre-sort
    2 people · 2 mentions · first linked 2026-06-09
  4. Clojure: Managing throughput with virtual threads
    2 people · 2 mentions · first linked 2024-05-06

What Hacker News says?

  1. So I actually do this (use compression to filter out bots) for my one million checkboxes Datastar demo[1]. It relies heavily on streaming the whole user view on every interaction. With brotli over SSE you can easily hit 200:1 compression ratios[2]. The problem is a malicious actor could request the stream uncompressed. As brotli is supported by 98% of browsers I don't push data to clients that don't support brotli c…

    Comment linking /2025/04/15/why-you-should-use-brotli-sse.html

    on “I use zip bombs to protect my server”
  2. Submitted 100k TPS over a billion rows: the unreasonable effectiveness of SQLite as a story · 423 points

    HN discussion
  3. You don't need websockets SSE works fine for realtime collaborative apps. Websockets sound great on paper. But, operationally they are a nightmare. I have had the misfortune of having to use them at scale (the author of Datastar had a similar experience). To list some of the challenges: - firewalls and proxies, blocked ports - unlimited connections non multiplexed (so bugs lead to ddos) - load balancing nightmare -…

    Comment linking /2025/04/07/clojure-realtime-collaborative-web-apps-without-clojurescript.html

    on “You might not need WebSockets”
  4. Submitted Clojure: Realtime collaborative web apps without ClojureScript as a story · 172 points

    HN discussion
  5. Our free shared fly.io was not built to handle hackernews. We are looking into alternatives but in the mean time checkout https://andersmurphy.com/2025/04/07/clojure-realtime-collabo... as it's the same tech but on a slight better machine.

    Comment linking /2025/04/07/clojure-realtime-collaborative-web-apps-without-clojurescript.html

    on “Datastar: Web Framework for the Future?”
  6. Submitted Clojure: Managing throughput with virtual threads as a story · 165 points

    HN discussion
  7. It's deliberately naive. But brotli and a tuned compression window over SSE means it gets 150-250:1 compression ratio, combined with Datastar rendering speed and you can get away with it. The reason it's naive is although you can use datastar to drive SVG, a canvas or even a game engine the minute you do people think you are doing magic game dev sorcery and dismiss your demo. I wanted to show that your average crud…

    Comment linking /2025/04/07/clojure-realtime-collaborative-web-apps-without-clojurescript.html

    on “Datastar: Web Framework for the Future?”
  8. Submitted Clojure: SQLite C API with project Panama and Coffi as a story · 10 points

    HN discussion
  9. stepbeek · 2025-09-23Recommends
    Your recent post on using datastar with SSE to power game of life [1] was excellent. Thanks for writing it! [1] https://andersmurphy.com/2025/04/07/clojure-realtime-collabo...

    Comment linking /2025/04/07/clojure-realtime-collaborative-web-apps-without-clojurescript.html

    on “Mesh: I tried Htmx, then ditched it”
  10. Submitted Consider using brotli compression with SSE as a story · 8 points

    HN discussion
  11. When reading "Lisp-2", Most lisp programmers will probably think of the lisp dialects with 2 namespaces, one for value binding, one for function binding. See https://andersmurphy.com/2019/03/08/lisp-1-vs-lisp-2.html Lisp-2 are still alive; emacs lisp is a lisp-2. If you extrapolate hard enough, both Erlang and Elixir are lisp-2.

    Comment linking /2019/03/08/lisp-1-vs-lisp-2.html

    on “Common Lisp”
  12. Submitted The perils of UUID primary keys in SQLite as a story · 4 points

    HN discussion
  13. Good, question. The simple answer is there already is such a construct on the JVM already: the semaphore. People just forget it exists. I wrote an article about it a while back[1]. 1. Managing throughput with virtual threads (it's in Clojure, but it's using the underlying Java APIs) https://andersmurphy.com/2024/05/06/clojure-managing-through...

    Comment linking /2024/05/06/clojure-managing-throughput-with-virtual-threads.html

    on “Java Virtual Threads Ate My Memory: A Web Crawler's Tale of Speed vs. Memory”
  14. Submitted Clojure: The REPL makes contributing to open source easy as a story · 4 points

    HN discussion
  15. Is it? Sqlite seems pretty fast. [1] [1] - https://andersmurphy.com/2025/12/02/100000-tps-over-a-billio...

    Comment linking /2025/12/02/100000-tps-over-a-billion-rows-the-unreasonable-effectiveness-of-sqlite.html

    on “PostgreSQL for Everything”
  16. Submitted SQLite improving performance with pre-sort as a story · 3 points

    HN discussion
  17. :cache_size 1562 :page_size 4096 :journal_mode "WAL" :synchronous "NORMAL" :temp_store "MEMORY" :busy_timeout 5000 (Synchronous FULL in context where it matters) But, it depends on the shape of your data, your indexes, how much of the data you care about is filling up a page. If your distribution is more even you sometimes need more cache than a more Pareto distributed data set etc. Things like not caching prepared…

    Comment linking /2025/12/02/100000-tps-over-a-billion-rows-the-unreasonable-effectiveness-of-sqlite.html

    on “SQLite is all you need for durable workflows”
  18. Submitted Thinking in batches and aggregates with streaming HTML as a story · 2 points

    HN discussion
  19. Thing is SQLite scales better than both those network databases [1] if you're prepared to stick with one big machine (+ a standby). This is even more obvious when you start doing transactions processing an row locks across the network limit you to 1-3k TPS that you cannot scale out of (Pareto distribution is merciless). [1] - https://andersmurphy.com/2025/12/02/100000-tps-over-a-billio...

    Comment linking /2025/12/02/100000-tps-over-a-billion-rows-the-unreasonable-effectiveness-of-sqlite.html

    on “SQLite is all you need for durable workflows”
  20. Submitted Clojure: Synchronous server sent events with virtual threads and channels as a story · 2 points

    HN discussion
  21. The thing is sqlite can scale further vertically than most network databases. In some context's like writes and interactive transactions it outright scales further. [1] That's before you even get into sharding sqlite. [1] - https://andersmurphy.com/2025/12/02/100000-tps-over-a-billio...

    Comment linking /2025/12/02/100000-tps-over-a-billion-rows-the-unreasonable-effectiveness-of-sqlite.html

    on “Many Small Queries Are Efficient in SQLite”
  22. Submitted Clojure: Structured Concurrency and Scoped Values as a story · 2 points

    HN discussion
  23. The problem is row locks when using interactive transactions over the network and contention. That can absolutely kill your performance with postgres, there's not really anything you can do to get around it (other than avoid interactive transactions). [1] [1] - https://andersmurphy.com/2025/12/02/100000-tps-over-a-billio...

    Comment linking /2025/12/02/100000-tps-over-a-billion-rows-the-unreasonable-effectiveness-of-sqlite.html

    on “Does Postgres Scale?”
  24. Submitted Lockstep to pipeline in almost one line as a story · 1 points

    HN discussion
  25. Sqlite smokes postgres on the same machine even with domain sockets [1]. This is before you get into using multiple sqlite database. What features postgres offers over sqlite in the context of running on a single machine with a monolithic app? Application functions [2] means you can extend it however you need with the same language you use to build your application. It also has a much better backup and replication s…

    Comment linking /2025/12/02/100000-tps-over-a-billion-rows-the-unreasonable-effectiveness-of-sqlite.html

    on “I run multiple $10K MRR companies on a $20/month tech stack”
  26. Submitted SQLite improving performance with pre-sort as a story · 1 points

    HN discussion
  27. Whats the obsession with concurrent writes? Single writer will outperform MVCC as long as you do dynamic batching (doesn't prevent logical transactions) and all you have to do is manage that writer at the application level. Concurrent writers just thrash your CPU cache. The difference between L1 and L3 can be 100x. So your single writer on a single core can outperform 10-100s of cores. Especially when you start cons…

    Comment linking /2025/12/02/100000-tps-over-a-billion-rows-the-unreasonable-effectiveness-of-sqlite.html

    on “Frankensqlite a Rust reimplementation of SQLite with concurrent writers”

Search all of HN for andersmurphy.com

Linked by the same people?