finds.dev← search

// the find

grammyjs/grammY

★ 3,762 · TypeScript · MIT · updated Oct 2026

The Telegram Bot Framework.

grammY is a TypeScript/JavaScript framework for building Telegram bots, running on both Node.js and Deno with a Koa-style middleware (Composer) pattern. It's aimed at anyone building a Telegram bot in the JS ecosystem, from simple echo bots to larger stateful ones built on its plugin system.

The core API design (bot.ts, composer.ts, context.ts, filter.ts) mirrors Express/Koa middleware conventions, so it's immediately familiar if you've touched Node web frameworks. Dual Node/Deno support plus a browser-compatible web bundle (importable as grammy/web) means it actually runs on Cloudflare Workers, not just a marketing claim. There's a real test suite covering bot, composer, context, and core client/payload/error paths, including type-level tests (composer.type.test.ts, context.type.test.ts) which catch regressions in the generic context typing that TS bot frameworks usually get wrong. The grammyjs org splits plugins (sessions, conversations, rate limiting, etc.) into separate packages, keeping the core small.

That plugin split cuts both ways: anything beyond basic message handling (sessions, flow control, file handling) means pulling in and learning separate repos, so 'batteries included' isn't really true for non-trivial bots. The quickstart example mixes require() with a TypeScript-first codebase, which is a minor but real papercut for anyone copy-pasting into an ESM/TS project. The README leans hard into promotional language ('extremely efficient', 'best documentation in town') without backing it with benchmarks or comparisons, so you can't actually tell how it stacks up against telegraf or node-telegram-bot-api from the repo itself. It's tightly coupled to the Telegram Bot API specifically — there's no abstraction layer if you ever need to support another chat platform from the same codebase.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →