about this thing

what even is Blan?

Blan or BadLang is what happens when a CS student gets too curious about how compilers work and decides the best way to learn is to build one — in C++, with Hindi slang as the syntax, because why not.

the itch

It started with a Compiler Design course (CS312) and the very reasonable question: "what actually happens between the code I write and the thing that runs?" Most people move on. Some people open a textbook. A few people build a lexer at 2am and don't stop until they have a full tree-walking interpreter.

Blan is the third kind of person. A C++ compiler that tokenizes, parses into an AST, and evaluates — with keywords like bhadwa for variable declaration and bolna for print, because if you're going to spend weeks on something, it should at least make you laugh.

Then it needed a backend. So there's a Go API server with a worker pool, async job execution, a custom LSM-tree cache engine (StrataKV — also built from scratch, because apparently one project wasn't enough), and JWT auth. Then it needed a frontend. Here we are.

The real goal was never to build a production language. The goal was to understand what happens at every layer — from source text to token to AST node to evaluated value. And to have something genuinely weird to show for it.

what's under the hood

Compiler

C++17

Lexer → Parser → AST → Tree-walking evaluator. Built with CMake, tested with GoogleTest.

Backend

Go + Gin

Async worker pool, StrataKV LSM cache, JWT auth, MySQL via GORM. Deployed on Railway.

Frontend

Next.js 16

Monaco editor with custom Blan syntax highlighting. Tailwind v4. Deployed on Vercel.

the person responsible

Aditya Arya

Aditya Arya

B.Tech Computer Science · RGIPT · Batch of 2027

CS student who got a little too interested in Compiler Design and how things work under the hood. Competitive programmer by habit, systems engineer by curiosity. Built Blan because the Compiler Design course said "understand lexical analysis" and somewhere that turned into a full language with a Go backend and a cloud deployment.

Also built StrataKV (an LSM-tree key-value store in Go) because the cache layer needed to be custom too. At some point you stop asking why and just keep building.

an honest note

Parts of this project were built with AI assistance (ifykyk) — specifically the frontend, documentation, and some backend refinements. The compiler, StrataKV, and the core systems architecture are original work. The AI was used the way a senior developer might be used: to review, suggest, and help move faster. Not to replace understanding — the whole point of this project was to build understanding from the ground up.

found a bug? have a feature idea? the GitHub repos are open. or just say hi on X.