Translated from Portuguese by Claude. Leia o original em português · more in English

Markdown, abstractions and the future of UX

Simpler languages, protocols and formats have won popularity in technology. From HTML to Markdown, from SOAP/XML to REST/JSONL. History repeats itself with the vibecoding we are doing through Markdown + AI.

When Aaron Swartz helped specify RSS and Gruber created Markdown (with feedback from Swartz himself), it was a very interesting time. The still decentralized internet needed to find a mechanism for people to find each other and consume each other’s content. It was the time of RSS readers, which made history and which many people miss. It is the same time as the content and bookmark managers, like Delicious and later Pocket.

RSS is what powered the podcast boom, one of the very few media that are still decentralized, without big walls. In 2005, Steve Jobs integrated podcast RSS directly into iTunes, catapulting the open format into the mainstream and helping turn the iPod into a phenomenon. Some consider the podcast the first new medium of the 21st century.

Steve Jobs presenting the iPod. With iTunes adopting RSS in 2005, the simple, open format fueled the podcast ecosystem that helped turn the iPod into a phenomenon.

Markdown arrives at a moment when HTML and XHTML were being hotly debated. An evolution of the web needed focus on these specifications. The W3C was working at full steam, with everybody watching. The attempts toward strict formatting, detailed protocols and big design upfront failed miserably.

XHTML is a great example. When they tried to force browsers to render XHTML only if it complied with countless specifications, the failure was almost immediate. A dynamic stance was quickly adopted to build a new HTML standard, using that magic way of the web: write some HTML, if it is a bit wrong, the browser figures it out. Mark Pilgrim tells this story in detail in How Did We Get Here?, in the classic Dive Into HTML5. LLMs work well even with buggy YAMLs… but when a library has to process these files, it complains about formatting, tabs, etc.

I got interested in markup languages from HTML all the way to when I had to write my master’s dissertation in LaTeX. Like many people without a scientific background, I was scared by the complexity of LaTeX, but impressed by its ability to generate everything from scientific PDFs to slide presentations. The template mechanisms behind LaTeX, built by Leslie Lamport on top of Donald Knuth’s TeX, were impressive.

Since Caelum, and later at Alura, we had the OpenOffice .docs where we wrote our course handouts. We migrated to a simple formatting mechanism that we named Tubaina (here is an example of a 2014 Java handout in .afc, and here is the raw source, both in Portuguese). It was a clunky markup format of our own, but it made it easy for instructors to commit and merge changes to the handout, at a time before branches and pull requests. I have good memories of this project, which was obviously swallowed by Markdown.

If you have a protocol, a format to adopt today, you have to think that it needs to be good for adoption in the future and also in the past! Would a 1970 machine easily interpret a binary gRPC call? Or is processing a JSONL in old COBOL a better fit?

Today this goes further. Simple formats, easily interpreted by both humans and computers, have been gaining more and more ground. The MCPs created by Anthropic are being strongly complemented by Anthropic’s own Markdown Skills. In the case of Pi (the engine of OpenClaw and the like), its creator argues strongly against using MCP in favor of plain Markdown.

Pi answering a question directly in the terminal, without MCP servers, without a complex protocol. Source: Armin Ronacher.

Markdown. Audio. Command Line Interfaces.

This screenless future bets heavily on audio. Words and tokens that LLMs interpret easily will gain even more strength, both in UX for end products and in the interface between machines. Computers talk and will talk more and more by exchanging these steroid-pumped texts. In my day to day, I direct Claude Code to create scripts with a CLI and to be verbose in implementing --help.

Think about what you have been using to take your notes, reports and journals. I use a personal knowledge management mechanism strongly based on Markdown and YAMLs. The whole Obsidian universe also revolves around them.

For today’s world, whether to write a blog post or a more interesting message on a social network, you need to understand Markdown. And YAML. And JSONL. And any old school format reminiscent of the late .ini and .properties.

The future belongs to TXTs.

Update: my podcast cohost, Vini Neves, wrote more about these text exchanges (in Portuguese).

The discussion (3 comments, in Portuguese) is on the original post.

More in English

Everything in English →