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.

What HN saysCommenters 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.
25HN people shared it
6linked it in comments
29stories submitted
420story points
3 months agolast shared
2023people per year2026

Most-shared posts

  1. 1
    Who's Afraid of a Hard Page Load?
    5 people · 23 points · first shared 2024 · 2 comments on HN
  2. 2
    Less Htmx Is More
    4 people · 190 points · first shared 2024 · 116 comments on HN
  3. 3
    What Dynamic Typing Is For
    4 people · 108 points · first shared 2025 · 96 comments on HN
  4. 4
    The Server Doesn't Render Anything
    4 people · 21 points · first shared 2025 · 2 comments on HN
  5. 5
    Behavior Belongs in the HTML
    4 people · 6 points · first shared 2023 · 1 comments on HN
  6. 6
    Building the Hundred-Year Web Service (2024)
    2 people · 9 points · first shared 2024 · 1 comments on HN
  7. 7
    "Hello World" in Web Development
    2 people · 4 points · first shared 2024 · 1 comments on HN
  8. 8
    Why Insist on a Word
    2 people · 2 points · first shared 2025 · discussion on HN
  9. 9
    Custom HTML Has Levels to It
    2 people · 2 points · first shared 2024 · discussion on HN
  10. 10
    Prolog Basics Explained with Pokémon
    2 people · 1 points · first shared 2026 · discussion on HN
  11. 11
    The Life and Death of Htmx
    1 people · 34 points · first shared 2025 · 2 comments on HN
  12. 12
    The Difference Between a Button and a Link
    1 people · 14 points · first shared 2026 · 3 comments on HN
  13. 13
    The Mostly True Naming Rule
    1 people · 2 points · first shared 2025 · discussion on HN
  14. 14
    Getting Off the Modernization Treadmill
    1 people · 2 points · first shared 2026 · 1 comments on HN
  15. 15
    XML Is a Cheap DSL
    1 people · 2 points · first shared 2026 · discussion on HN

What HN people wrote when they linked it

sgt · 2025-04-08
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.
xiphias2 · 2025-04-08
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>
jonorsi · 2025-10-18
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/#rai…
codemonkey-zeta · 2025-04-08
> “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/
alexpetros · 2025-01-07
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/
triska · 2026-08-06
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_qq87… "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…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close