
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
boundless-aiogram
Advanced tools
A modern, production-ready framework for building scalable Telegram bots with Aiogram 3.x
Production-ready Telegram bot framework with CLI scaffolding — powering bots with 1000s of users
boundless-aiogram is a battle-tested bot framework built on top of aiogram 3.x. It provides a complete project structure, CLI tools, and best practices out of the box — so you can focus on building features, not boilerplate.
2,000+ downloads and counting. Used in production bots serving thousands of users.
| Bot | Users | Monthly Activity |
|---|---|---|
| Smart English HR | 1,200+ | 100+ applications |
| Cake Bot | 200+ | Active daily |
| + More in production | — | — |
pip install boundless-aiogram
# Generate new project
boundless-aiogram init my-awesome-bot
# Navigate to project
cd my-awesome-bot
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your bot token
# Run migrations
alembic upgrade head
# Start your bot
python main.py
That's it. You're ready to build.
my-awesome-bot/
│
├── bot/ # Bot handlers and logic
│ ├── handlers/ # Message & callback handlers
│ ├── keyboards/ # Inline & reply keyboards
│ ├── states/ # FSM states
│ └── filters/ # Custom filters
│
├── core/ # Core configuration
│ ├── config.py # Settings management
│ └── middleware.py # Bot middleware
│
├── database/ # Database layer
│ ├── models.py # SQLAlchemy models
│ ├── crud.py # CRUD operations
│ └── session.py # DB session management
│
├── languages/ # Internationalization
│ ├── en.py # English
│ ├── uz.py # Uzbek
│ └── ru.py # Russian
│
├── migrations/ # Alembic migrations
│ └── versions/ # Migration files
│
├── utils/ # Utility functions
│ └── helpers.py # Common helpers
│
├── tests/ # Test suite
│
├── main.py # Entry point
├── alembic.ini # Alembic config
├── requirements.txt # Dependencies
├── .env.example # Environment template
└── .gitignore # Git ignore
| Command | Description |
|---|---|
boundless-aiogram init <name> | Create new bot project |
boundless-aiogram --version | Show version |
boundless-aiogram --help | Show help |
┌─────────────────────────────────────────────────┐
│ BOUNDLESS-AIOGRAM STRUCTURE │
├─────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ BOT │ │
│ │ Handlers • Keyboards • States │ │
│ └────────────────────┬────────────────────┘ │
│ │ │
│ ┌────────────────────▼────────────────────┐ │
│ │ CORE │ │
│ │ Config • Middleware │ │
│ └────────────────────┬────────────────────┘ │
│ │ │
│ ┌────────┬───────────┴───────────┬────────┐ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────┐ ┌────────┐ ┌───────────┐ ┌──────┐ │
│ │Utils │ │Database│ │ Languages │ │Tests │ │
│ │ │ │Alembic │ │ i18n │ │ │ │
│ └──────┘ └────────┘ └───────────┘ └──────┘ │
│ │
└─────────────────────────────────────────────────┘
from aiogram import Router
from aiogram.filters import Command
from aiogram.types import Message
router = Router()
@router.message(Command("start"))
async def cmd_start(message: Message):
await message.answer("Welcome! 🚀")
from database.crud import create_user, get_user
from database.session import get_session
async def register_user(telegram_id: int, name: str):
async with get_session() as session:
user = await create_user(session, telegram_id, name)
return user
from languages import get_text
async def greet(message: Message, lang: str = "en"):
text = get_text("welcome", lang)
await message.answer(text)
from aiogram.fsm.state import State, StatesGroup
class RegistrationStates(StatesGroup):
first_name = State()
last_name = State()
phone = State()
# Bot
BOT_TOKEN=your-bot-token-from-botfather
# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/mybot
# Or SQLite:
# DATABASE_URL=sqlite:///bot.db
# Settings
ADMIN_IDS=123456789,987654321
DEFAULT_LANGUAGE=en
DEBUG=False
# Create new migration
alembic revision --autogenerate -m "Add users table"
# Apply all migrations
alembic upgrade head
# Rollback one step
alembic downgrade -1
# View current version
alembic current
# Run tests
pytest
# With coverage
pytest --cov=bot --cov=database
[Unit]
Description=My Telegram Bot
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/path/to/my-bot
ExecStart=/path/to/venv/bin/python main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "main.py"]
| Feature | boundless-aiogram | Starting from scratch |
|---|---|---|
| Project setup | 1 command | 30+ minutes |
| Database layer | ✅ Included | Manual setup |
| Migrations | ✅ Alembic ready | Manual setup |
| Multi-language | ✅ Built-in | Manual setup |
| Best practices | ✅ Enforced | Hope for the best |
| Production tested | ✅ 1000s of users | Unknown |
git checkout -b feature/NewFeature)git commit -m 'Add NewFeature')git push origin feature/NewFeature)MIT License - see LICENSE for details.
Stop writing boilerplate. Start building bots.
FAQs
A modern, production-ready framework for building scalable Telegram bots with Aiogram 3.x
We found that boundless-aiogram demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.