Open Collective
Open Collective
Loading

BABLR

We develop next-generation tools for reading and writing code with the goal of bringing code literacy to everyone in the world

Contribute


Become a financial contributor.

Financial Contributions

Recurring contribution
Backer

Become a backer for $5.00 per month and support us

Starts at
$5 USD / month

Latest activity by


Recurring contribution
Sponsor

Become a sponsor for $100.00 per month and support us

Starts at
$100 USD / month

Latest activity by


Be the first one to contribute!
Custom contribution
Donation
Make a custom one-time or recurring contribution.

Latest activity by


Top financial contributors

1
Incognito

$5 USD since Apr 2025

2
Jim

$5 USD since Apr 2025

3
Abbey

$5 USD since Apr 2025

BABLR is all of us

Our contributors 5

Thank you for supporting BABLR.

Incognito

backer

$5 USD

Jim

backer

$5 USD

Abbey

backer

$5 USD

Budget


Transparent and open finances.

View all transactions

Credit from Abbey to BABLR

+$5.00USD
Completed
Contribution #845259

Credit from Jim to BABLR

+$5.00USD
Completed
Contribution #844793

Credit from Incognito to BABLR

+$5.00USD
Completed
Contribution #843853
$
Today’s balance

$12.15 USD

Total raised

$12.15 USD

Total disbursed

--.-- USD

Estimated annual budget

$180.00 USD

About


BABLR  is a new tech stack for working with source code as data. An example of something you might do with it is parse some code, use a script to edit it, and then save the edited source code overwriting the original. It is an API for the primary work of day-to-day software development, which is to say that it is also designed to be a groundbreakingly capable set of core APIs for a hackable IDE in the spirit of Github Atom (currently maintained as Pulsar).

The Core team currently consists of 2 contributors. Conrad Buck (conartist6) serves as the lead, and is the primary inventor of Bablr and it's associated technologies. Stirling Hostetter (stirlhoss) has been getting up to speed with the stack as well as maintaining the web infrastructure. 

The Tech Stack

Because we have built our technology without directly inheriting the biases or weaknesses of previous generations of this technology we have a unique perspective on the fundamental nature of an IDE. We think, to a much greater extent than others, that the web browser is the analogy for how an IDE should work.

To see why this is, take a moment to consider the analogy with me. Both an IDE and a modern JS-enabled web browser are a system for viewing and editing documents. Both need to provide APIs by which scripts can alter those documents. Both need to present textual data which is embedded in a richer tree structure which is implied but not directly visible.

CSTML
BABLR's core insight is that this is more than a superficial resemblance. We think the close similarity in the problem spaces means that we can directly leverage the architectural patterns of web browsers to create better IDEs. It is for this reason that the lowest layer of our tech stack is CSTML, a language inspired in no small part by HTML. Where HTML is a system for storing arbitrary natural language documents, CSTML is a system for storing arbitrary parse trees.

The resemblance between HTML and CSTML goes deeper too: like HTML, CSTML documents are designed so that they can be generated and consumed as a tag stream. The practical effect of this is that the serialization format can be used to copy a tree from one location to another with no memory overhead!

agAST
In addition to offering a stream format for parse results, we offer an in-memory tree format called agAST, which is intended to replace the currently-entrenched ESTree. Because this format competes with an existing format, it's worth spelling out what we see as the advantages:

  • agAST trees are monomorphic: all nodes are exactly the same shape
  • agAST trees are immutable: if the data was valid it will stay valid
  • agAST can embed any tree: many conceptually-valid trees have no ESTree equivalent
  • agAST trees can always be printed, even if you don't know what language is in the tree
  • agAST trees can hold streams and replay them unchanged
 
BABLR
BABLR, a specific technology as well as the namesake of the organization, is how you will interact with CSTML and agAST. BABLR is the parser layer, built to be the core of a parser ecosystem meant to rival and eventually surpass the parser ecosystems maintained by ANTLR and especially Tree-sitter.

Our team