Logo of Abhijeet Dwivedi

Right Primitives

Find the right building block to build your systems, ideas, processes or theories.

Alan Kay

What is a primitive? A primitive is a basic (irreducible) concept or structure on which a system is built. Primitives shape our thinking, set the rules we follow, and guide how we solve problems. If the primitive is misaligned with reality or the requirements of the system, no amount of extra patches will correct the mismatch. You'll constantly be adding patches, exceptions, or workarounds.

Alan Kay gives the example of Greeks who kept using the circle as the basic block (a primitive) to explain the orbits of the planets. Until Kepler came along and showed that the right building block is an ellipse. The lesson here is that sometimes the correct model or primitive is slightly more complex than the old one (an ellipse vs. a circle), but that extra bit of complexity can bring enormous clarity. In the case of orbits, it took 1500 years of trying to fit circles before an ellipse was tried.

There is a cost of clinging to the wrong basic concept. One sign is that complexity starts to creep up. The Greeks faced this with epicycles. They had to add more and more special cases to explain their observations.

Are there any modern examples of wrong primitives? Like using relational databases for data that naturally forms a graph. Or applying linear thinking to situations that are inherently exponential or logarithmic.

Sometimes I wonder if “Hyperlink” is the right primitive for the internet. Clickbait thrives in a world where success for me is getting you to click on something. Making money on the internet relies on exploiting “hyperlink-based metrics” (click-through rates, page views). Maybe a different primitive would have led to different behaviors at scale. Hyperlinks gave us a brilliantly simple way to navigate early hypertext but today we have a lot of content, and quality, relationships, and contexts are not first-class concepts on the web.

Ted Nelson, who came up with the idea of hypertext, has a vision of the web where you can add content from one place into another without just copying it. This keeps track of where it came from and updates if the original changes. It helps you show parts of different pages together, so you can see how they all connect over time. He called this Transclusion. It is like borrowing a part of a book to put into another book without making a copy of it. The borrowed part always stays linked to the original, so if that part changes, the borrowed part changes too.

Some modern note-taking apps (e.g. Roam Research, Obsidian with transclusions) and certain documentation platforms treat small blocks of text or data as addressable items. In Tim Berners-Lee's original vision—which was never fully realized—the goal was to embed machine-readable meaning in every resource on the web, so software could understand relationships and deliver more nuanced search and data integration. Instead of a bare hyperlink, you get metadata about what kind of link it is. For example, “this is the official homepage of Company X,” or “this link references an article that supports the claim in paragraph 2.”

So the next time you run into complexity creep or endless patchwork, it might be a sign that your foundational assumption needs to change. Primitives matter. If you pick the right one, everything that builds on it can snap into place with far less effort. If you pick the wrong one, get ready for some long nights adding epicycle after epicycle, patch after patch. And who knows—maybe a slight tweak to our “hyperlink” obsession could lead to a more meaningful, less click-hungry internet.