Bank: a tiny reaction currency for Telegram https://bankemojibot.borodutch.com
  • TypeScript 80.5%
  • HTML 18.3%
  • Dockerfile 1.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
backmeupplz 692d01d10a
All checks were successful
test / test (push) Successful in 7s
Website for bankemojibot.borodutch.com
Static landing page in docs/ (GitHub Pages), OG image rendered from og/og.html,
logo.svg doubles as the bot's profile picture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Jksg7cmoX2cMxvH2pzaWz
2026-11-10 15:40:45 -07:00
.forgejo/workflows Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
docs Website for bankemojibot.borodutch.com 2026-11-10 15:40:45 -07:00
og Website for bankemojibot.borodutch.com 2026-11-10 15:40:45 -07:00
.dockerignore Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
.gitignore Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
bank.test.ts Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
bank.ts Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
bot.ts Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
bun.lock Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
Dockerfile Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
handover.ts Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
LICENSE Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
package.json Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00
README.md Website for bankemojibot.borodutch.com 2026-11-10 15:40:45 -07:00
tsconfig.json Bank: a tiny reaction currency for Telegram 2026-11-10 15:26:54 -07:00

Bank

@bankemojibot: a tiny currency for Telegram, one balance across every chat. Website: bankemojibot.borodutch.com.

Everyone starts with 100 coins. React to someone's message with a coin and that many coins move from you to them:

🍌 1 · 🍓 5 · 🍾 10 · 🏆 25

Gifts are final: removing the reaction doesn't take the coins back, and adding it again doesn't pay twice. Add the bot to a group as an admin (no rights needed): Telegram only sends reactions to admin bots. The bot messages people when they get coins (once they've started it) and when a reaction gift bounces for lack of coins.

Commands: /balance, /top (this group's people in a group, everyone in DM), reply /give 10, /help.

Run

bun install
TOKEN=... bun bot.ts   # DATA_DIR (default .) holds bank.sqlite
bun test

Website

docs/ is the static site, served by GitHub Pages (main:/docs) behind Cloudflare. The share image docs/og.png is rendered from og/og.html:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --hide-scrollbars \
  --force-device-scale-factor=1 --window-size=1200,630 --screenshot=$PWD/docs/og.png "file://$PWD/og/og.html"

Bump og.png?v=N in docs/index.html after re-rendering. docs/logo.svg is also the bot's profile picture (render it at 1024×1024).

Deploy

Deployed on Tugport (bots.bankemojibot) with a /data volume and HANDOVER_LOCK for zero-downtime deploys.