← Writing
March 23, 2026

We Built a Programming Language. It's Called Code The Jewels.

Some things get built because the market demands them. Code The Jewels got built because it was too interesting not to build.

It is a programming language. Source files use the .rtj extension. It transpiles to JavaScript and runs on Node.js. It has a proper lexer, a parser, an AST, a semantic analysis pass, a code generator, a runtime with a standard library split between two cities, and a CLI. It is a real thing.

It is also stylized after Run The Jewels, one of the few acts whose internal mythology is coherent enough to serve as a design system.

What the language is

Code The Jewels is a small, expressive scripting language with an unusually strong identity. Variables are declared with jewel. Functions are verse. You loop with run...in. You throw errors with yank. You print with talk. The pipe operator |> threads values through function chains. And then there is duo().

duo() is the signature construct. It models the two-voice architecture of the duo it is named after. A single input flows through two sequential pipeline branches: mike runs first, then hands its result to el. Both branches together produce the final output. It is not cosmetic. The construct compiles to a real nested function call, and the architecture it enforces is genuinely useful for thinking through two-stage transformations.

The standard library is split between namespaces: bk:* for Brooklyn (text and parsing), atl:* for Atlanta (data and flow). You import what you need. Nothing is global.

Why it exists

Meridian has a category called Creative Shit. The rule for it is simple: build things that are interesting, demonstrate capability, and carry no maintenance obligation. They live on the public portfolio as proof of what can be built at speed and with intention. Code The Jewels is a Creative Shit project.

That framing matters. It is not trying to replace Python. It is not competing with JavaScript. It is not waiting for a product-market fit signal before the first commit. It exists because building a real programming language in TypeScript is a finite project with a clear end state, and the end state is something that can be handed to another developer who writes programs with it and it works.

Creative Shit projects follow a pattern: public frontend repo, MIT licensed, zero secrets. Anyone who forks brings their own runtime. Meridian's infrastructure never touches a public repo. Code The Jewels has no API key. It has a compiler. The pattern holds.

The design choices

The temptation in a themed language is to over-theme everything until the code becomes unreadable. The spec process for Code The Jewels held a clear line: the theme should feel like identity, not costume. You should be able to tell what the language is from the source file, and you should be able to debug a program in it without consulting a glossary.

That led to a small keyword set. Thirteen reserved words in v0.1. The themed vocabulary handles declaration, iteration, and composition. Everything else reads like the JavaScript it compiles to. The compiler is a transpiler, not a virtual machine, for the same reason: you can inspect the output, debug it with standard tools, and understand what happened.

duo() gets special treatment not because it sounds interesting but because it enforces something useful. Two named branches. A defined execution order. A single result. When you write a duo(), you are forced to name the stages of what you are doing. That is a design constraint that happens to look like an homage.

How it was built

The compiler architecture follows five passes: The Fist (lexer and parser), The Hands (AST), the Mike Pass (semantic analysis), the El Pass (lowering and transforms), and The Gun (code generation). The standard library lives in a runtime registry called The Jewel Box. These names live in the docs and the codebase.

The whole thing is TypeScript end to end. The runtime is a small Node.js module. The CLI exposes four commands: rtj run, rtj compile, rtj check, and rtj repl. The REPL prompt is rtj>. Error messages are line-aware and styled just enough to be memorable without being annoying.

What it says about building

Building a real, complete, working thing in a finite window, with clear acceptance criteria, from a detailed spec, is the practice of focus and consistency. The subject matter is a language built around a hip hop duo. The practice is identical to building a product. The capability that gets exercised is the same.

Every Creative Shit project in the portfolio is a proof. Proof that something real can be built in days, not months. Proof that the aesthetic side and the technical side can coexist. Proof that the studio is not all roadmaps and revenue models.

Code The Jewels v0.1 is on GitHub at github.com/everettsteele/code-the-jewels. Documentation, examples, and the full language spec are at codethejewels.com. Five programs ship in the examples folder. They all run.

Everett Steele
Everett Steele Founder of Meridian, a venture studio building software companies with AI. He writes about operations, building, and the way he thinks about both. Father, Husband, Veteran, ATLien. Connect on LinkedIn