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
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.