# Design Reviews

Published articles for Design Reviews.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## In the economy of user effort, be a bargain, not a scam

DevFeed: [In the economy of user effort, be a bargain, not a scam](<https://devfeed.tech/articles/in-the-economy-of-user-effort-be-a-bargain-not-a-scam-52167.md>)

Original publisher: [Read original article](<https://lea.verou.me/blog/2025/user-effort/>)

Author: Lea Verou

Published: 2025-09-29T00:00:00Z

Content type: opinion

Language: en

Sources: [Lea Verou's blog](<https://devfeed.tech/sources/lea-verou-s-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [interface](<https://devfeed.tech/topics/interface.md>), [web-standards](<https://devfeed.tech/topics/web-standards.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [api-design](<https://devfeed.tech/tags/api-design.md>), [blog](<https://devfeed.tech/tags/blog.md>), [design-principles](<https://devfeed.tech/tags/design-principles.md>), [design-reviews](<https://devfeed.tech/tags/design-reviews.md>), [extensibility](<https://devfeed.tech/tags/extensibility.md>), [interface](<https://devfeed.tech/tags/interface.md>), [product](<https://devfeed.tech/tags/product.md>), [product-design](<https://devfeed.tech/tags/product-design.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [tradeoffs](<https://devfeed.tech/tags/tradeoffs.md>), [usability](<https://devfeed.tech/tags/usability.md>), [user-centered-design](<https://devfeed.tech/tags/user-centered-design.md>), [ux](<https://devfeed.tech/tags/ux.md>)

### AI overview

An opinion piece argues that product interfaces should make common use cases easy while preserving the ability to support complex and niche use cases. It uses Prism's API, extensibility model, and tradeoffs as a software example, and discusses why the principle also applies to long-tail interfaces such as creative tools.

### Source excerpt

Alan Kay [source] One of my favorite product design principles is Alan Kay's "Simple things should be simple, complex things should be possible". 1 I had been saying it almost verbatim long before I encountered Kay's quote. Kay's maxim is deceptively simple, but its implications run deep. It isn't just a design ideal -- it's a call to continually balance friction, scope, and tradeoffs in service of the people using our products. This philosophy played a big part in Prism's success back in 2012, helping it become the web's de facto syntax highlighter for years, with over 2 billion npm downloads. Simple things were easy: All it took to highlight code on a webpage was including two files, a JS file and a CSS file. No markup changes. No JS glue code. Styling used readable CSS class names. Even adding new languages -- the most common "complex" use case -- required far less knowledge and effort than alternatives. At the same time, highly complex things were possible: Prism exposed a deep extensibility model so plugin authors could patch internals and dramatically alter behavior. These choices were not free. The friendly styling API increased clash risk, and deep extensibility reduced encapsulation. These were conscious, hard, tradeoffs. What things are simple and what things are complex? Simple refers to use cases that are simple from the user's perspective, i.e. the most common use cases. They may be hard to implement, and interface simplicity is often inversely correlated with implementation simplicity. And which things are complex, depends on product scope. Instagram's complex cases are vastly different than Photoshop's complex cases, but as long as there is a range, Kay's principle still applies. Since Alan Kay was a computer scientist, his quote is typically framed as a PL or API design principle, but that sells it short. It applies to a much, much broader class of interfaces. This distinction hinges on the distribution of use cases. Products often cut scope by identify