Todos os posts

Por que eu criei a Ribalta

De uma ferramenta para gerar slides por código a uma linguagem com intérpretes em Kotlin, Rust e HTML.

Tudo começou com slides

Eu e alguns amigos precisávamos gerar slides via código. Começamos pelo NotebookLM, passamos para os artefatos do Claude e, mais recentemente, para os slides do Claude.

Os três funcionavam, mas todos dependem de uma empresa, e ninguém sabe como vai ser o futuro deles. Foi daí que nasceu o Folio.

Markdown, mas não só

Minha primeira ideia foi usar Markdown: já existe e é bem menos verboso que HTML. O problema é que quase não dá para personalizar nada.

Então juntei as duas coisas e fiz minha própria linguagem: a simplicidade de escrita do Markdown com a liberdade visual do HTML.

E aí eu me empolguei

Logo de cara ela já estava muito boa para slides, mas continuei adicionando coisas até ela virar uma linguagem separada: a Ribalta.

  • O compilador é um único .wasm
  • Ele transforma o texto num JSON comum a todas as plataformas
  • Cada intérprete só desenha as telas a partir desse JSON

Hoje existem intérpretes para Kotlin, Rust e HTML, todos lendo o mesmo .wasm.

Muito além de slides

Como boa parte do que adicionei não tem nada a ver com apresentações, comecei a usar a Ribalta em outros projetos:

  • O Oklo gera as aulas
  • O Rodada renderiza as telas das partidas, outro projeto que nasceu de uma necessidade bem específica
  • E este blog, em que cada post é um arquivo .ribalta compilado para HTML na hora do build

Tudo começou com slides

Eu e alguns amigos precisávamos gerar slides via código. Começamos pelo NotebookLM, passamos para os artefatos do Claude e, mais recentemente, para os slides do Claude.

Os três funcionavam, mas todos dependem de uma empresa, e ninguém sabe como vai ser o futuro deles. Foi daí que nasceu o Folio.

Markdown, mas não só

Minha primeira ideia foi usar Markdown: já existe e é bem menos verboso que HTML. O problema é que quase não dá para personalizar nada.

Então juntei as duas coisas e fiz minha própria linguagem: a simplicidade de escrita do Markdown com a liberdade visual do HTML.

E aí eu me empolguei

Logo de cara ela já estava muito boa para slides, mas continuei adicionando coisas até ela virar uma linguagem separada: a Ribalta.

  • O compilador é um único .wasm
  • Ele transforma o texto num JSON comum a todas as plataformas
  • Cada intérprete só desenha as telas a partir desse JSON

Hoje existem intérpretes para Kotlin, Rust e HTML, todos lendo o mesmo .wasm.

Muito além de slides

Como boa parte do que adicionei não tem nada a ver com apresentações, comecei a usar a Ribalta em outros projetos:

  • O Oklo gera as aulas
  • O Rodada renderiza as telas das partidas, outro projeto que nasceu de uma necessidade bem específica
  • E este blog, em que cada post é um arquivo .ribalta compilado para HTML na hora do build