npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ezaz/mamalang

v1.0.0

Published

MamaLang - A Bengali meme-style programming language that compiles to JavaScript

Downloads

42

Readme

🇧🇩 MamaLang

A Bengali meme-style programming language that compiles to JavaScript.

npm version CI License: MIT


What is MamaLang?

MamaLang is a humorous programming language where every keyword starts with "mama" — inspired by Bangladeshi meme culture. It transpiles to clean JavaScript and runs on Node.js.

mama bolo("Assalamu Alaikum, Duniya! 🌍")

mama dhori boyosh = 20

mama jodi (boyosh >= 18) {
    mama bolo("Tumi boro!")
} mama nahole {
    mama bolo("Tumi choto!")
}

Installation

npm install -g mamalang

Quick Start

Create hello.mama:

mama bolo("Hello from MamaLang!")
mama hasi()

Run it:

mama run hello.mama

CLI Commands

| Command | Description | |---------|-------------| | mama run <file> | Compile and run a .mama file | | mama compile <file> | Compile to JavaScript only | | mama repl | Start interactive REPL | | mama init [dir] | Scaffold a new project | | mama version | Print version |


Language Reference

Variables

mama dhori x = 10          // let x = 10
mama pakka PI = 3.1416     // const PI = 3.1416

Print

mama bolo("Hello!")        // console.log("Hello!")
mama bolo(x, y, z)         // console.log(x, y, z)

Conditionals

mama jodi (x > 5) {
    mama bolo("boro")
} mama nahole {
    mama bolo("choto")
}

Loops

// For loop
mama ghuro (mama dhori i = 0; i < 10; i++) {
    mama bolo(i)
}

// While loop
mama jotokkhon (x < 100) {
    x += 1
}

Functions

mama kaj jog(a, b) {
    mama ferot a + b
}

mama bolo(jog(3, 4))   // 7

Async / Await

mama kaj fetchData() {
    mama dhori result = mama opekkha getData()
    mama ferot result
}

Booleans & Null

mama dhori isReady = mama shotto    // true
mama dhori isEmpty = mama miththa   // false
mama dhori value = mama khali       // null

Try / Catch

mama panic {
    riskyOperation()
} mama dhora(err) {
    mama bolo("Error hoiche: " + err)
}

Meme Features

mama hasi()          // console.log("😂")
mama kanna()         // console.log("😭")
mama ghum(2000)      // await sleep(2000ms)

Runtime Helpers

mama dhori r = mama.random()     // Math.random()
mama dhori t = mama.time()       // Date.now()
mama dhori d = mama.tarikh()     // new Date()

Examples

Fibonacci

mama kaj fib(n) {
    mama jodi (n <= 1) { mama ferot n }
    mama ferot fib(n - 1) + fib(n - 2)
}

mama ghuro (mama dhori i = 0; i < 10; i++) {
    mama bolo("fib(" + i + ") = " + fib(i))
}

Calculator

mama kaj bhag(a, b) {
    mama jodi (b === 0) {
        mama bolo("Shunno diye bhag hoy na!")
        mama ferot mama khali
    }
    mama ferot a / b
}

VS Code Extension

Install MamaLang Language Support from the VS Code Marketplace.

Features:

  • ✅ Syntax highlighting
  • ✅ Snippets (type mjmama jodi, mkmama kaj, etc.)
  • ✅ Run file from editor title bar
  • ✅ Error diagnostics
  • ✅ Auto-closing brackets

Architecture

src/
├── lexer/
│   ├── tokens.ts       Token types & labels
│   └── lexer.ts        Hand-written tokenizer
├── parser/
│   └── parser.ts       Recursive-descent parser
├── ast/
│   └── nodes.ts        AST node type definitions
├── generator/
│   └── generator.ts    JavaScript code generator
├── cli/
│   └── index.ts        CLI (commander.js)
└── index.ts            Public compiler API

Compilation Pipeline

.mama source
     │
     ▼
  Lexer  ──→  Token[]
     │
     ▼
  Parser ──→  AST (Program)
     │
     ▼
Generator ──→  JavaScript string
     │
     ▼
  Node.js executes it

Contributing

git clone https://github.com/mamalang/mamalang
cd mamalang
npm install
npm run dev       # watch mode
npm test          # run tests

License

MIT © MamaLang Contributors


Developed with ❤️ and plenty of chai ☕ in Bangladesh 🇧🇩