{"id":50875309,"url":"https://github.com/slick-lab/telegem","last_synced_at":"2026-06-15T09:03:47.680Z","repository":{"id":349551033,"uuid":"1178637268","full_name":"slick-lab/telegem","owner":"slick-lab","description":"A complete async first framework for building telegram bots in ruby ","archived":false,"fork":false,"pushed_at":"2026-05-26T12:18:41.000Z","size":2450,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T14:18:43.665Z","etag":null,"topics":["async","filesystem","ruby","scene","telegem","telegram","telegrambotapi"],"latest_commit_sha":null,"homepage":"https://opencollective.com/telegembacker#category-CONTRIBUTE","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slick-lab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["zendrx"],"patreon":null,"open_collective":"telegem","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"zendrx","thanks_dev":null,"custom":["https://opencollective.com/telegem","https://github.com/slick-lab/telegem"]}},"created_at":"2026-03-11T08:06:43.000Z","updated_at":"2026-05-26T12:18:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/slick-lab/telegem","commit_stats":null,"previous_names":["slick-lab/telegem"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/slick-lab/telegem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slick-lab%2Ftelegem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slick-lab%2Ftelegem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slick-lab%2Ftelegem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slick-lab%2Ftelegem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slick-lab","download_url":"https://codeload.github.com/slick-lab/telegem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slick-lab%2Ftelegem/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34355204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","filesystem","ruby","scene","telegem","telegram","telegrambotapi"],"created_at":"2026-06-15T09:03:46.833Z","updated_at":"2026-06-15T09:03:47.672Z","avatar_url":"https://github.com/slick-lab.png","language":"Ruby","funding_links":["https://github.com/sponsors/zendrx","https://opencollective.com/telegem","https://buymeacoffee.com/zendrx","https://github.com/slick-lab/telegem"],"categories":[],"sub_categories":[],"readme":"# Telegem Documentation\n\nWelcome to the comprehensive documentation for Telegem, a modern Ruby framework for building Telegram bots.\n\n[![CodeQl](https://github.com/slick-lab/telegem/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/slick-lab/telegem/actions/workflows/github-code-scanning/codeql)\n[![Lines of Code](https://img.shields.io/badge/LOC-2907-red)](https://github.com/slick-lab/telegem)\n[![Gem Version](https://badge.fury.io/rb/telegem.svg)](https://badge.fury.io/rb/telegem)\n[![Join Telegram Group](https://img.shields.io/badge/Telegram-Join%20Group-2CA5E0?style=flat-square\u0026logo=telegram\u0026logoColor=white)](https://t.me/r_telegem)\n\n\n\n## Table of Contents\n\n### Getting Started\n- [README](README.md) - Main project README\n- [Getting Started](getting_started.md) - Installation and basic setup\n- [Core Concepts](core_concepts.md) - Understanding Telegem architecture\n\n### Core Components\n- [Bot](bot.md) - Main bot class and configuration\n- [Context](context.md) - Update context and response methods\n- [Handlers](handlers.md) - Command, hears, and event handlers\n- [Middleware](middleware.md) - Request processing pipeline\n- [Scenes](scenes.md) - Multi-step conversation flows\n- [Sessions](sessions.md) - Data persistence between updates\n\n### API \u0026 Types\n- [API](api.md) - Telegram API client usage\n- [Types](types.md) - Type-safe API response handling\n- [Keyboards](keyboards.md) - Inline and reply keyboard DSL\n\n### Advanced Features\n- [Plugins](plugins.md) - Built-in and custom plugins\n- [Webhooks](webhooks.md) - Production webhook deployment\n- [Error Handling](error_handling.md) - Comprehensive error management\n- [Testing](testing.md) - Unit and integration testing\n- [Deployment](deployment.md) - Production deployment guides\n\n### Examples \u0026 Guides\n- [Examples](examples.md) - Complete bot examples\n- [Troubleshooting](troubleshooting.md) - Common issues and solutions\n- [Contributing](contributing.md) - Development guidelines\n- [Changelog](changelog.md) - Version history and changes\n\n## Quick Start\n\n1. **Install Telegem:**\n```bash\ngem install telegem\n```\n\n2. **Create your first bot:**\n```ruby\nrequire 'telegem'\n\nbot = Telegem.new(token: 'YOUR_BOT_TOKEN')\n\nbot.command('start') do |ctx|\n  ctx.reply('Hello, World!')\nend\n\nbot.start_polling\n```\n\n3. **Explore features:**\n   - Add [handlers](handlers.md) for different message types\n   - Use [sessions](sessions.md) for data persistence\n   - Implement [scenes](scenes.md) for complex conversations\n   - Deploy with [webhooks](webhooks.md) for production\n\n## Key Features\n\n- **Async I/O**: Built on the Async gem for high performance\n- **Type Safety**: Automatic type conversion for API responses\n- **Session Management**: Built-in session stores (Memory, Redis)\n- **Plugin System**: Extensible with custom plugins\n- **Scene System**: Complex conversation flows\n- **Middleware**: Request processing pipeline\n- **Error Handling**: Comprehensive error recovery\n- **Testing**: Full test suite with mocking support\n\n## Architecture Overview\n\n```\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│   Telegram API  │◄──►│   API Client    │◄──►│     Handlers     │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n                                ▲\n                                │\n                    ┌─────────────────┐\n                    │   Middleware    │\n                    └─────────────────┘\n                                ▲\n                                │\n                    ┌─────────────────┐\n                    │    Sessions     │\n                    └─────────────────┘\n```\n\n## Support\n\n- **Documentation**: You're reading it!\n- **Issues**: [GitHub Issues](https://github.com/telegem/telegem/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/telegem/telegem/discussions)\n- **Examples**: Check the `examples/` directory\n\n## Contributing\n\nWe welcome contributions! See our [contributing guide](contributing.md) for details.\n\n## License\n\nTelegem is released under the MIT License. See the main README for details.\n\n---\n\n**Happy bot building with Telegem! 🤖**\n\n```ruby\ngem 'telegem'\n```\n\n## Basic Usage\n\n```ruby\nrequire 'telegem'\n\nbot = Telegem.new('YOUR_BOT_TOKEN')\n\nbot.command('start') do |ctx|\n  ctx.reply(\"Hello, #{ctx.from.first_name}!\")\nend\n\nbot.start_polling\n```\n\n## Requirements\n\n- Ruby 3.0+\n- Telegram Bot Token from [@BotFather](https://t.me/botfather)\n\n## License\n\nMIT License - see [LICENSE](../LICENSE) file for details.\n\n## Contributing\n\nSee [Contributing Guide](contributing.md) for development setup and contribution guidelines.\u003c/content\u003e\n\u003cparameter name=\"filePath\"\u003e/home/slick/telegem/docs/README.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslick-lab%2Ftelegem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslick-lab%2Ftelegem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslick-lab%2Ftelegem/lists"}