41554 blogs · [ { "id": "01a08c5a-c654-727c-8e11-596a26d7f274", "title": "Getting off the Modernization Treadmill", "url": "https://unplannedobsolescence.com/talks/getting-off-the-modernization-treadmill/", "published_at": "2026-08-08T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2752c5cf", "title": "The Difference Between a Button and a Link", "url": "https://unplannedobsolescence.com/blog/buttons-vs-links/", "published_at": "2026-07-28T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a27a7e7a9", "title": "XML is a Cheap DSL", "url": "https://unplannedobsolescence.com/blog/xml-cheap-dsl/", "published_at": "2026-03-13T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a289ad1ec", "title": "Prolog Basics Explained with Pokémon", "url": "https://unplannedobsolescence.com/blog/prolog-basics-pokemon/", "published_at": "2026-01-05T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a289eea49", "title": "What Dynamic Typing Is For", "url": "https://unplannedobsolescence.com/blog/what-dynamic-typing-is-for/", "published_at": "2025-10-12T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a29699413", "title": "What's Left for Frontend Engineers?", "url": "https://unplannedobsolescence.com/talks/whats-left-for-frontend-engineers/", "published_at": "2025-08-12T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2a63b642", "title": "The Server Doesn't Render Anything", "url": "https://unplannedobsolescence.com/blog/the-server-doesnt-render/", "published_at": "2025-06-17T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2a95154f", "title": "The Mostly True Naming Rule", "url": "https://unplannedobsolescence.com/blog/mostly-true-naming-rule/", "published_at": "2025-04-19T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2b1288f8", "title": "Why Insist on a Word", "url": "https://unplannedobsolescence.com/blog/why-insist-on-a-word/", "published_at": "2025-02-03T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2b772f46", "title": "Building the Hundred-Year Web Service", "url": "https://unplannedobsolescence.com/talks/building-the-hundred-year-web-service/", "published_at": "2024-10-11T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2b8ed3b0", "title": "Less htmx is More", "url": "https://unplannedobsolescence.com/blog/less-htmx-is-more/", "published_at": "2024-10-02T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2c36a5be", "title": "The Messy Pile", "url": "https://unplannedobsolescence.com/blog/messy-pile-css/", "published_at": "2024-08-01T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2cf41ee3", "title": "Who's Afraid of a Hard Page Load?", "url": "https://unplannedobsolescence.com/blog/hard-page-load/", "published_at": "2024-07-16T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2d14cf7e", "title": "The Life & Death of htmx", "url": "https://unplannedobsolescence.com/talks/life-and-death-of-htmx/", "published_at": "2024-06-13T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2d1ba35b", "title": "The Best \"Hello World\" in Web Development", "url": "https://unplannedobsolescence.com/blog/best-hello-world-web-development/", "published_at": "2024-02-29T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2d6d4e26", "title": "Custom HTML Has Levels To It", "url": "https://unplannedobsolescence.com/blog/custom-html-has-levels/", "published_at": "2023-12-31T00:00:00+00:00" }, { "id": "01a08c5a-c654-727c-8e11-596a2da1e8e5", "title": "Behavior Belongs in the HTML", "url": "https://unplannedobsolescence.com/blog/behavior-belongs-in-html/", "published_at": "2023-12-11T00:00:00+00:00" } ] posts Claim your blog
Back to Unplanned Obsolescence
Blog · corpus.blog/blogs/unplannedobsolescence.com/posts

Unplanned Obsolescence

unplannedobsolescence.com

2026

2025

2024

2023