New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

boundless-aiogram

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boundless-aiogram

A modern, production-ready framework for building scalable Telegram bots with Aiogram 3.x

pipPyPI
Version
2.0.0
Maintainers
1

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

BotUsersMonthly Activity
Smart English HR1,200+100+ applications
Cake Bot200+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

CommandDescription
boundless-aiogram init <name>Create new bot project
boundless-aiogram --versionShow version
boundless-aiogram --helpShow 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?

Featureboundless-aiogramStarting from scratch
Project setup1 command30+ minutes
Database layer✅ IncludedManual setup
Migrations✅ Alembic readyManual setup
Multi-language✅ Built-inManual setup
Best practices✅ EnforcedHope for the best
Production tested✅ 1000s of usersUnknown

🤝 Contributing

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

📄 License

MIT License - see LICENSE for details.

📞 Support

Stop writing boilerplate. Start building bots.

FAQs

Did you know?

Socket

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.

Install

Related posts