Skip to main content

boundless-aiogram

Production-ready Telegram bot framework with CLI scaffolding — powering bots with 1000s of users

PyPI version Downloads Python License: MIT

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.


🚀 Bots Built With This Framework

Bot Users Monthly Activity
Smart English HR 1,200+ 100+ applications
Cake Bot 200+ Active daily
+ More in production

✨ Features

  • 🛠️ CLI Scaffolding — Generate new bot projects instantly
  • 📁 Production Structure — Organized handlers, database, utils, languages
  • 🗄️ Database Layer — SQLAlchemy + Alembic migrations built-in
  • 🌍 Multi-language — i18n support out of the box
  • ⚙️ Core Module — Config and middleware ready to go
  • 🧪 Test Setup — Testing structure included
  • 📤 File Uploads — Upload handling utilities

📦 Installation

pip install boundless-aiogram

🚀 Quick Start

Create a New Bot Project

# 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.


📁 Generated Project Structure

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

🛠️ CLI Commands

Command Description
boundless-aiogram init <name> Create new bot project
boundless-aiogram --version Show version
boundless-aiogram --help Show help

🏗️ Architecture

┌─────────────────────────────────────────────────┐
│          BOUNDLESS-AIOGRAM STRUCTURE            │
├─────────────────────────────────────────────────┤
│                                                 │
│   ┌─────────────────────────────────────────┐   │
│   │                BOT                      │   │
│   │   Handlers • Keyboards • States         │   │
│   └────────────────────┬────────────────────┘   │
│                        │                        │
│   ┌────────────────────▼────────────────────┐   │
│   │               CORE                      │   │
│   │       Config • Middleware               │   │
│   └────────────────────┬────────────────────┘   │
│                        │                        │
│   ┌────────┬───────────┴───────────┬────────┐   │
│   │        │                       │        │   │
│   ▼        ▼                       ▼        ▼   │
│ ┌──────┐ ┌────────┐ ┌───────────┐ ┌──────┐    │
│ │Utils │ │Database│ │ Languages │ │Tests │    │
│ │      │ │Alembic │ │   i18n    │ │      │    │
│ └──────┘ └────────┘ └───────────┘ └──────┘    │
│                                                 │
└─────────────────────────────────────────────────┘

📖 Usage Examples

Basic Handler

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! 🚀")

Using Database

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

Multi-language Support

from languages import get_text

async def greet(message: Message, lang: str = "en"):
    text = get_text("welcome", lang)
    await message.answer(text)

FSM States

from aiogram.fsm.state import State, StatesGroup

class RegistrationStates(StatesGroup):
    first_name = State()
    last_name = State()
    phone = State()

⚙️ Configuration

Environment Variables

# 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

🗄️ Database Migrations

# 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

🧪 Testing

# Run tests
pytest

# With coverage
pytest --cov=bot --cov=database

🚀 Deployment

systemd (Linux)

[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

Docker

FROM python:3.12-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["python", "main.py"]

📊 Why boundless-aiogram?

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

🤝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/NewFeature)
  3. Commit changes (git commit -m 'Add NewFeature')
  4. Push to branch (git push origin feature/NewFeature)
  5. Open a Pull Request

📄 License

MIT License - see LICENSE for details.


📞 Support


Stop writing boilerplate. Start building bots.

Release files for boundless-aiogram 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for boundless-aiogram 2.0.0
File Size Uploaded
boundless_aiogram-2.0.0.tar.gz 35.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for boundless-aiogram 2.0.0
File Interpreter ABI Platform
boundless_aiogram-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 86.6 kB

Release files / boundless_aiogram-2.0.0.tar.gz

Download URL boundless_aiogram-2.0.0.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
da7d0fef7631bb1c8bca01910cdcc979e0aff1a9fc2f377c7138bcf6145cd3eb
BLAKE2b-256 checksum
How to use checksums
2d9dab999f1c3e306bc15391639f46ae031e4954fb8dcae6755e21c0bad6a89e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / boundless_aiogram-2.0.0-py3-none-any.whl

Download URL boundless_aiogram-2.0.0-py3-none-any.whl
Size 50.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5bc82831d5792709771667afe74412979453c4b0af3cbf6071791f5722ba99d2
BLAKE2b-256 checksum
How to use checksums
b5a151f4ade2ec19c66c2928672f5424358c7ac9808198f26bb1eb6b74d6b2dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page