I’m gonna go do these…
The biggest product of the century thus, LLMs, are the core tech.
I don't doubt these rules have helped the author, but readers should be mindful when heeding them.
In the past, I worked in teams, building much more ambitious projects, and these rules would likely not apply.
I've been calling these things product primitives. I can't remember where I heard that term, but it refers to things like...
Blocks in Notion. Messages and conversations in Telegram. Frames and layers in Figma. Tweets in Twitter. Cells and sheets in Excel. Tools and layers in Photoshop. Commands in a CLI.
I think what makes for good product design is having a very small number of primitives. A bad product doesn't know what its primitives are. Or it has a very large number of primitives. It feels like everything in the product is some unique thing that works in its own unique way. So users have to learn a ton of different top-level primitives/concepts. It's confusing and intimidating and hard to teach. Ideally you just want one or two or three main primitives.
The complexity/power in an app comes from choosing powerful primitives that have depth, that are composable, etc. You can do a lot with Notion blocks. You can do a lot with Excel cells. You can do a lot with a CLI command. You can do a lot with a Minecraft block. There's depth there.
The most elegant solutions typically arise not out of unbounded degrees of freedom, but building specifically with a constraint in mind.
I think that this goes with point 1: composing the one pager helps define those constraints.
ChrisMarshallNY•1h ago