telegram-bot-builder
sickn33/antigravity-awesome-skills
Build production-ready Telegram bots with API integration, monetization, and scalable architecture.
What is telegram-bot-builder?
Expert guidance for creating Telegram bots from simple automation to complex AI-powered assistants. Covers bot architecture, the Telegram Bot API, user experience design, monetization strategies, and deployment patterns for scaling to thousands of users.
- Design and implement bot architecture using Node.js (Telegraf/grammY) or Python (python-telegram-bot/aiogram)
- Build interactive user flows with inline keyboards, pagination, and button-based navigation
- Implement monetization models including freemium tiers, subscriptions, and Telegram Payments integration
- Deploy bots to production using webhooks on Express, Vercel, Railway, or Render
- Manage user sessions, rate limiting, and error handling for reliability
- Integrate with AI services and backend databases for advanced bot capabilities
How to install telegram-bot-builder
npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill telegram-bot-builder- Node.js 18+ or Python 3.8+
- Telegram Bot Token from BotFather
- Environment variable setup (.env file)
- For production: domain and HTTPS endpoint or serverless platform account
How to use telegram-bot-builder
- 1.Choose your stack (Node.js with Telegraf or Python with aiogram)
- 2.Set up bot initialization with token from environment variables
- 3.Implement command handlers (/start, /help, custom commands)
- 4.Design inline keyboards and callback handlers for interactive flows
- 5.Add middleware for authentication, logging, and rate limiting
- 6.Implement your business logic in separate service modules
- 7.Set up webhook deployment (Express, Vercel, or containerized)
- 8.Add error handling with bot.catch() and graceful shutdown
Use cases
- Building a freemium bot with usage limits and premium subscription tiers
- Creating an AI-powered assistant bot that processes user requests and stores conversation state
- Deploying a payment-enabled bot that accepts Telegram Payments for digital products
- Developing a multi-step form bot with inline keyboards for data collection
- Scaling a polling-based development bot to production webhook architecture
- Backend developers building Telegram automation tools
- Product builders monetizing bot services
- Teams deploying conversational AI to Telegram
- Developers needing production-grade bot infrastructure
telegram-bot-builder FAQ
Use polling for development and simple bots. Use webhooks for production to handle scale efficiently and reduce server load.
Use Telegram Payments API with replyWithInvoice() to create invoices, then listen for successful_payment events to activate premium features.
Organize into separate directories: commands/, handlers/, keyboards/, middleware/, and services/. Keep bot.js minimal and delegate logic to modules.
Implement rate limiting with libraries like Bottleneck, add typing indicators for slow operations, and use batch operations where possible.
No - use Redis or a database-backed session store so user state persists across bot restarts.
Full instructions (SKILL.md)
Source of truth, from sickn33/antigravity-awesome-skills.
name: telegram-bot-builder description: 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. risk: unknown source: vibeship-spawner-skills (Apache 2.0) date_added: 2026-02-27
Telegram Bot Builder
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.
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.
Expertise
- Telegram Bot API
- Bot UX design
- Monetization
- Node.js/Python bots
- Webhook architecture
- Inline keyboards
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
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
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
Inline Keyboards
Basic Keyboard
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
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
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
// 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
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 };
}
Webhook Deployment
Production bot deployment
When to use: When deploying bot to production
Webhook Deployment
Polling vs Webhooks
| Method | Best For |
|---|---|
| Polling | Development, simple bots |
| Webhooks | Production, scalable |
Express + Webhook
import express from 'express';
import { Telegraf } from 'telegraf';
const bot = new Telegraf(process.env.BOT_TOKEN);
const app = express();
app.use(express.json());
app.use(bot.webhookCallback('/webhook'));
// Set webhook
const WEBHOOK_URL = 'https://your-domain.com/webhook';
bot.telegram.setWebhook(WEBHOOK_URL);
app.listen(3000);
Vercel Deployment
// api/webhook.js
import { Telegraf } from 'telegraf';
const bot = new Telegraf(process.env.BOT_TOKEN);
// ... bot setup
export default async (req, res) => {
await bot.handleUpdate(req.body);
res.status(200).send('OK');
};
Railway/Render Deployment
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "src/bot.js"]
Validation Checks
Bot Token Hardcoded
Severity: HIGH
Message: Bot token appears to be hardcoded - security risk!
Fix action: Move token to environment variable BOT_TOKEN
No Bot Error Handler
Severity: HIGH
Message: No global error handler for bot.
Fix action: Add bot.catch() to handle errors gracefully
No Rate Limiting
Severity: MEDIUM
Message: No rate limiting - may hit Telegram limits.
Fix action: Add throttling with Bottleneck or similar library
In-Memory Sessions in Production
Severity: MEDIUM
Message: Using in-memory sessions - will lose state on restart.
Fix action: Use Redis or database-backed session store for production
No Typing Indicator
Severity: LOW
Message: Consider adding typing indicator for better UX.
Fix action: Add ctx.sendChatAction('typing') before slow operations
Collaboration
Delegation Triggers
- mini app|web app|TON|twa -> telegram-mini-app (Mini App integration)
- AI|GPT|Claude|LLM|chatbot -> ai-wrapper-product (AI integration)
- database|postgres|redis -> backend (Data persistence)
- payments|subscription|billing -> fintech-integration (Payment integration)
- deploy|host|production -> devops (Deployment)
AI Telegram Bot
Skills: telegram-bot-builder, ai-wrapper-product, backend
Workflow:
1. Design bot conversation flow
2. Set up AI integration (OpenAI/Claude)
3. Build backend for state/data
4. Implement bot commands and handlers
5. Add monetization (freemium)
6. Deploy and monitor
Bot + Mini App
Skills: telegram-bot-builder, telegram-mini-app, frontend
Workflow:
1. Design bot as entry point
2. Build Mini App for complex UI
3. Integrate bot commands with Mini App
4. Handle payments in Mini App
5. Deploy both components
Related Skills
Works well with: telegram-mini-app, backend, ai-wrapper-product, workflow-automation
When to Use
- User mentions or implies: telegram bot
- User mentions or implies: bot api
- User mentions or implies: telegram automation
- User mentions or implies: chat bot telegram
- User mentions or implies: tg bot
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Related skills
More from sickn33/antigravity-awesome-skills and the wider catalog.

telegram-mini-app
Expert in building Telegram Mini Apps (TWA) - web apps that run

test-driven-development
Use when implementing any feature or bugfix, before writing implementation code

test-fixing
Systematically identify and fix all failing tests using smart grouping strategies. Use when explicitly asks to fix tests (\"fix these tests\", \"make tests pass\"), reports test failures (\"tests are failing\", \"test suite is broken\"), or completes implementation and wants tests passing.

testing-patterns
Jest testing patterns, factory functions, mocking strategies, and TDD workflow. Use when writing unit tests, creating test factories, or following TDD red-green-refactor cycle.

threejs-skills
Create 3D scenes, interactive experiences, and visual effects using Three.js. Use when user requests 3D graphics, WebGL experiences, 3D visualizations, animations, or interactive 3D elements.

tiktok-automation
Automate TikTok tasks via Rube MCP (Composio): upload/publish videos, post photos, manage content, and view user profiles/stats. Always search tools first for current schemas.