🎯

telegram-bot-builder

🎯Skill

from sebas-aikon-intelligence/antigravity-awesome-skills

VibeIndex|
What it does

Builds intelligent, scalable Telegram bots with advanced architecture, interactive interfaces, and strategic monetization strategies.

πŸ“¦

Part of

sebas-aikon-intelligence/antigravity-awesome-skills(171 items)

telegram-bot-builder

Installation

git cloneClone repository
git clone https://github.com/sickn33/antigravity-awesome-skills.git .agent/skills
git cloneClone repository
git clone https://github.com/sickn33/antigravity-awesome-skills.git .claude/skills
git cloneClone repository
git clone https://github.com/sickn33/antigravity-awesome-skills.git .gemini/skills
git cloneClone repository
git clone https://github.com/sickn33/antigravity-awesome-skills.git .cursor/skills
πŸ“– Extracted from docs: sebas-aikon-intelligence/antigravity-awesome-skills
2Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

"Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot."

Overview

# Telegram Bot Builder

Role: Telegram Bot Architect

You build bots that people actually use daily. You understand that bots

should feel like helpful assistants, not clunky interfaces. You know

the Telegram ecosystem deeply - what's possible, what's popular, and

what makes money. You design conversations that feel natural.

Capabilities

  • Telegram Bot API
  • Bot architecture
  • Command design
  • Inline keyboards
  • Bot monetization
  • User onboarding
  • Bot analytics
  • Webhook management

Patterns

Bot Architecture

Structure for maintainable Telegram bots

When to use: When starting a new bot project

```python

Bot Architecture

Stack Options

| Language | Library | Best For |

|----------|---------|----------|

| Node.js | telegraf | Most projects |

| Node.js | grammY | TypeScript, modern |

| Python | python-telegram-bot | Quick prototypes |

| Python | aiogram | Async, scalable |

Basic Telegraf Setup

```javascript

import { Telegraf } from 'telegraf';

const bot = new Telegraf(process.env.BOT_TOKEN);

// Command handlers

bot.start((ctx) => ctx.reply('Welcome!'));

bot.help((ctx) => ctx.reply('How can I help?'));

// Text handler

bot.on('text', (ctx) => {

ctx.reply(You said: ${ctx.message.text});

});

// Launch

bot.launch();

// Graceful shutdown

process.once('SIGINT', () => bot.stop('SIGINT'));

process.once('SIGTERM', () => bot.stop('SIGTERM'));

```

Project Structure

```

telegram-bot/

β”œβ”€β”€ src/

β”‚ β”œβ”€β”€ bot.js # Bot initialization

β”‚ β”œβ”€β”€ commands/ # Command handlers

β”‚ β”‚ β”œβ”€β”€ start.js

β”‚ β”‚ β”œβ”€β”€ help.js

β”‚ β”‚ └── settings.js

β”‚ β”œβ”€β”€ handlers/ # Message handlers

β”‚ β”œβ”€β”€ keyboards/ # Inline keyboards

β”‚ β”œβ”€β”€ middleware/ # Auth, logging

β”‚ └── services/ # Business logic

β”œβ”€β”€ .env

└── package.json

```

```

Inline Keyboards

Interactive button interfaces

When to use: When building interactive bot flows

```python

Inline Keyboards

Basic Keyboard

```javascript

import { Markup } from 'telegraf';

bot.command('menu', (ctx) => {

ctx.reply('Choose an option:', Markup.inlineKeyboard([

[Markup.button.callback('Option 1', 'opt_1')],

[Markup.button.callback('Option 2', 'opt_2')],

[

Markup.button.callback('Yes', 'yes'),

Markup.button.callback('No', 'no'),

],

]));

});

// Handle button clicks

bot.action('opt_1', (ctx) => {

ctx.answerCbQuery('You chose Option 1');

ctx.editMessageText('You selected Option 1');

});

```

Keyboard Patterns

| Pattern | Use Case |

|---------|----------|

| Single column | Simple menus |

| Multi column | Yes/No, pagination |

| Grid | Category selection |

| URL buttons | Links, payments |

Pagination

```javascript

function getPaginatedKeyboard(items, page, perPage = 5) {

const start = page * perPage;

const pageItems = items.slice(start, start + perPage);

const buttons = pageItems.map(item =>

[Markup.button.callback(item.name, item_${item.id})]

);

const nav = [];

if (page > 0) nav.push(Markup.button.callback('◀️', page_${page-1}));

if (start + perPage < items.length) nav.push(Markup.button.callback('▢️', page_${page+1}));

return Markup.inlineKeyboard([...buttons, nav]);

}

```

```

Bot Monetization

Making money from Telegram bots

When to use: When planning bot revenue

```javascript

Bot Monetization

Revenue Models

| Model | Example | Complexity |

|-------|---------|------------|

| Freemium | Free basic, paid premium | Medium |

| Subscription | Monthly access | Medium |

| Per-use | Pay per action | Low |

| Ads | Sponsored messages | Low |

| Affiliate | Product recommendations | Low |

Telegram Payments

```javascript

// Create invoice

bot.command('buy', (ctx) => {

ctx.replyWithInvoice({

title: 'Premium Access',

description: 'Unlock all features',

payload: 'premium_monthly',

provider_token: process.env.PAYMENT_TOKEN,

currency: 'USD',

prices: [{ label: 'Premium', amount: 999 }], // $9.99

});

});

// Handle successful payment

bot.on('successful_payment', (ctx) => {

const payment = ctx.message.successful_payment;

// Activate premium for user

await activatePremium(ctx.from.id);

ctx.reply('πŸŽ‰ Premium activated!');

});

```

Freemium Strategy

```

Free tier:

  • 10 uses per day
  • Basic features
  • Ads shown

Premium ($5/month):

  • Unlimited uses
  • Advanced features
  • No ads
  • Priority support

```

Usage Limits

```javascript

async function checkUsage(userId) {

const usage = await getUsage(userId);

const isPremium = await checkPremium(userId);

if (!isPremium && usage >= 10) {

return { allowed: false, message: 'Daily limit reached. Upgrade?' };

}

return { allowed: true };

}

```

```

Anti-Patterns

❌ Blocking Operations

Why bad: Telegram has timeout limits.

Users think bot is dead.

Poor experience.

Requests pile up.

Instead: Acknowledge immediately.

Process in background.

Send update when done.

Use typing indicator.

❌ No Error Handling

Why bad: Users get no response.

Bot appears broken.

Debugging nightmare.

Lost trust.

Instead: Global error handler.

Graceful error messages.

Log errors for debugging.

Rate limiting.

❌ Spammy Bot

Why bad: Users block the bot.

Telegram may ban.

Annoying experience.

Low retention.

Instead: Respect user attention.

Consolidate messages.

Allow notification control.

Quality over quantity.

Related Skills

Works well with: telegram-mini-app, backend, ai-wrapper-product, workflow-automation