Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    U

    Unplanned Obsolescence

    unplannedobsolescence.com · Personal blog · on HN since 2023

    An author writing on web development who argues for plain HTML, fewer JavaScript layers, server rendering, and long-lived web services.

    Visit blogRSSHN submissions
    Web DevelopmentProgrammingLanguages & Compilers
    What HN says

    Commenters discuss its htmx and HTML-behavior posts, ask how navigation stays flicker-free, point out nitpicks in the code examples, and agree with its views on interfaces.

    Stats for nerds
    25HN people shared it
    29linked in comments
    420story points
    Aug 2026last shared
    2025people per year2026

    Top posts on HN

    1. 1
      Less Htmx Is More
      4 people · 190 points · first shared 2024 · 116 comments on HN
    2. 2
      What Dynamic Typing Is For
      4 people · 108 points · first shared 2025 · 96 comments on HN
    3. 3
      The Life and Death of Htmx
      1 person · 34 points · first shared 2025 · 2 comments on HN
    4. 4
      Who's Afraid of a Hard Page Load?
      5 people · 23 points · first shared 2024 · 2 comments on HN
    5. 5
      The Server Doesn't Render Anything
      4 people · 21 points · first shared 2025 · 2 comments on HN
    6. 6
      The Difference Between a Button and a Link
      1 person · 14 points · first shared 2026 · 3 comments on HN
    7. 7
      Building the Hundred-Year Web Service (2024)
      2 people · 9 points · first shared 2024 · 1 comments on HN
    8. 8
      Behavior Belongs in the HTML
      4 people · 6 points · first shared 2023 · 1 comments on HN
    9. 9
      "Hello World" in Web Development
      2 people · 4 points · first shared 2024 · 1 comments on HN
    10. 10
      Custom HTML Has Levels to It
      2 people · 2 points · first shared 2024 · Discussion on HN

    What HN people wrote when they linked it

    • triskaAug 2026

      Thank you a lot for your interest! Yes of course: As I see it, Prolog is often awesome in types of applications that are distinct from those one would usually build in other kinds of languages.

      Alex Petros phrased it extremely nicely and insightfully in his comment at https://lobste.rs/s/0cvxwk/prolog_basics_explained_with_pokemon#c_qq87n1:

      "I don't know if this will be a satisfying answer to your question, but since writing this blog post I find myself reaching for Prolog in cases that are entirely orthogonal to any kind of code I used to write before. There are definitely people in the Prolog community who like using it for web servers or whatnot, but for me personally it's more about unlocking a different skill tree. For instance, I've become better at identifying where custom parsers or DSLs might be a good fit for a problem."

      The mentioned blog post by Alex is available from: https://unplannedobsolescence.com/blog/prolog-basics-pokemon/ and was recently discussed here: https://news.ycombinator.com/item?id=48147091

      For another example, please see factgraph.pl also by Alex: https://github.com/alexpetros/factgraph.pl

      Prolog is great in applications that must be able to analyze, extend, adapt, reason about and give account of their own workings and results. As an example for this, please see An Executable Specification of Oncology Dose-Escalation Protocols with Prolog by David C. Norris and me: https://arxiv.org/abs/2402.08334

      In this example and others like it, one…

    • xiphias2Apr 2025

      As you can see even the basic documentation is compromised at this point:

      https://unplannedobsolescence.com/blog/behavior-belongs-in-html/

      <button onclick="alert('I was clicked!')">Click me</button>

      ,,You can find HTML attribute equivalents for many of the event handler properties; however, you shouldn't use these — they are considered bad practice. It might seem easy to use an event handler attribute if you are doing something really quick, but they quickly become unmanageable and inefficient.''

      ,,You should never use the HTML event handler attributes — those are outdated, and using them is bad practice.''

      And then proceeds to suggest this:

      <button>Click me</button>

      <script> const btn = document.querySelector("button")

      btn.addEventListener("click", () => { alert('I was clicked!') }) </script>

      After this, next step would be putting javascript to a separate file, and on a slow mobile connection in a random airport with thousands of people using the same wifi, a simple working code gets timeouts.

      20 years ago all I needed to know was this, and it worked great:

      <button onclick="alert('I was clicked!')">Click me</button>

    • codemonkey-zetaApr 2025

      > “You didn’t solve anything! Doing validation is complex and you just magic wanded it away by designing a perfect interface for it.” Yes. Exactly. That is what interfaces are supposed to do. Better semantics make it possible for the programmer to describe what the element does, and for someone else to take care of the details for them.

      Gosh I couldn't agree more, what a wonderfully succinct way to communicate what I spend a ridiculous amount of time trying to explain to my colleagues when designing programs!

      [EDIT]: I just realized I had read this on one of the linked articles https://unplannedobsolescence.com/blog/behavior-belongs-in-html/

    • alexpetrosJan 2025

      In many cases, browsers will also automatically perform a "smooth" transition between pages if your caching settings are don well, as described above. It's called paint holding. [0]

      One of the driving ideas behind Triptych is that, while HTML is insufficient in a couple key ways, it's a way better foundation for your website than JavaScript, and it gets better without any effort from you all the time. In the long run, that really matters. [1]

      [0] https://developer.chrome.com/blog/paint-holding [1] https://unplannedobsolescence.com/blog/hard-page-load/

    • sgtApr 2025

      How do you get flicker free navigation using htmx without using hx-swap or boost? I see that this article refers to https://unplannedobsolescence.com which has a header that remains the same, but it also doesn't change. Normally a header will do some type of change, e.g. showing which menu item is currently selected. That's when the flickering starts, in my experience.

    • jonorsiOct 2025

      Very much enjoyed the article, it aligns with a lot of my own thoughts on coding :P.

      nitpick - in the Rust example it seems the events are not passed into rendering the events.html template.

      https://unplannedobsolescence.com/blog/what-dynamic-typing-is-for/#raising-the-inference-bar

    Related

    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    Wingologwingolog.org237 people

    FFS SSL

    Wingolog
    Personal · last shared 2026
    Rachel Krollrachelbythebay.com493 people

    fork() can fail

    Rachel Kroll
    Personal · last shared 2026
    Nolan Lawsonnolanlawson.com133 people

    Safari is the new IE

    Nolan Lawson
    Personal · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    programming is terribleprogrammingisterrible.com124 people

    Write code that is easy to delete, not easy to extend

    programming is terrible
    Personal · last shared 2026
    Pony Fooponyfoo.com54 people

    The Controversial State of JavaScript Tooling

    Pony Foo
    Personal · last shared 2022
    Voxxedvoxxed.com38 people

    XDSD has an apparent 80% fail rate – so why is it being pushed as the new Agile?

    Voxxed
    Publication · last shared 2018