{"id":15669048,"url":"https://github.com/ponomarevlad/grammyvercel","last_synced_at":"2025-05-06T20:03:13.360Z","repository":{"id":158392610,"uuid":"627370387","full_name":"PonomareVlad/grammYVercel","owner":"PonomareVlad","description":"🤖 @grammyjs template for @Vercel","archived":false,"fork":false,"pushed_at":"2024-12-07T11:09:54.000Z","size":79,"stargazers_count":16,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-01T11:05:27.503Z","etag":null,"topics":["edge","edge-runtime","grammy","grammyjs","javascript","node","node-js","serverless","template","vercel","vercel-edge","vercel-edge-functions","vercel-serverless","vercel-serverless-functions"],"latest_commit_sha":null,"homepage":"https://grammy.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PonomareVlad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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},"funding":{"github":"PonomareVlad","ko_fi":"PonomareVlad","patreon":"PonomareVlad","issuehunt":"PonomareVlad","liberapay":"PonomareVlad","buy_me_a_coffee":"PonomareVlad","open_collective":"PonomareVlad","custom":"https://PonomareVlad.ru/donate"}},"created_at":"2023-04-13T10:24:31.000Z","updated_at":"2025-03-10T21:21:31.000Z","dependencies_parsed_at":"2025-03-10T08:43:43.668Z","dependency_job_id":null,"html_url":"https://github.com/PonomareVlad/grammYVercel","commit_stats":{"total_commits":56,"total_committers":2,"mean_commits":28.0,"dds":0.0357142857142857,"last_synced_commit":"9a0e786ab1fdc215e3388e01899e3edf6cfa03d4"},"previous_names":["ponomarevlad/grammyverceledge"],"tags_count":0,"template":true,"template_full_name":"PonomareVlad/VercelEdgeTemplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PonomareVlad%2FgrammYVercel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PonomareVlad%2FgrammYVercel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PonomareVlad%2FgrammYVercel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PonomareVlad%2FgrammYVercel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PonomareVlad","download_url":"https://codeload.github.com/PonomareVlad/grammYVercel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252761121,"owners_count":21800123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["edge","edge-runtime","grammy","grammyjs","javascript","node","node-js","serverless","template","vercel","vercel-edge","vercel-edge-functions","vercel-serverless","vercel-serverless-functions"],"created_at":"2024-10-03T14:21:13.649Z","updated_at":"2025-05-06T20:03:13.263Z","avatar_url":"https://github.com/PonomareVlad.png","language":"JavaScript","funding_links":["https://github.com/sponsors/PonomareVlad","https://ko-fi.com/PonomareVlad","https://patreon.com/PonomareVlad","https://issuehunt.io/r/PonomareVlad","https://liberapay.com/PonomareVlad","https://buymeacoffee.com/PonomareVlad","https://opencollective.com/PonomareVlad","https://PonomareVlad.ru/donate"],"categories":[],"sub_categories":[],"readme":"# [Telegram Bot](https://core.telegram.org/bots) Template for [Vercel](https://vercel.com)\n\nThis template is built on the [grammY](https://grammy.dev), thanks to which it\nsupports\nboth [Serverless (Node.js)](https://vercel.com/docs/functions/runtimes/node-js)\nand [Edge Runtime](https://vercel.com/docs/functions/runtimes/edge-runtime).\n\n## How to use\n\n### A. Click the `Deploy` button ...\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FPonomareVlad%2FgrammYVercel\u0026env=TELEGRAM_BOT_TOKEN\u0026envDescription=Telegram%20Bot%20Token%20from%20%40BotFather\u0026envLink=https%3A%2F%2Fcore.telegram.org%2Fbots%2Ftutorial%23obtain-your-bot-token\u0026project-name=telegram-bot\u0026repository-name=telegram-bot\u0026redirect-url=https%3A%2F%2Fgrammy.dev\u0026demo-title=grammY\u0026demo-description=Documantation%20for%20grammY\u0026demo-url=https%3A%2F%2Fgrammy.dev\u0026demo-image=https%3A%2F%2Fgrammy.dev%2Fimages%2FgrammY.png)\n\n... and follow the instructions on next page.\n\n### B. Click the `Use this template` button ...\n\n...\nand [connect the repository to your project on Vercel](https://vercel.com/new).\n\n### C. Clone the template to your host ...\n\n... and [run the bot locally](#local-development).\n\n## Workflow\n\n### Local development\n\n1. Install dependencies (`npm i`)\n   and [link Vercel project](https://vercel.com/docs/cli/project-linking)\n2. Pull\n   [envs from Vercel](https://vercel.com/docs/projects/environment-variables/managing-environment-variables) (\n   `npm run env`) or set them in a `.env` file\n3. Run the bot\n   in [polling mode](https://grammy.dev/guide/deployment-types.html#how-does-long-polling-work) (\n   `npm start`) or [use the Vercel dev server](https://vercel.com/docs/cli/dev)\n\n### Vercel deployment\n\nWhen\nyou [push a commit to a GitHub repository](https://vercel.com/docs/deployments/git/vercel-for-github#a-deployment-for-each-push),\nVercel runs [build script](scripts/build.mjs) and assigns\na [unique URL](https://vercel.com/docs/deployments/generated-urls) that will be\nset as the URL for\nincoming [webhooks](https://grammy.dev/guide/deployment-types.html#how-do-webhooks-work).\n\n### Lifecycle\n\nUntil you [run the bot locally](#local-development), your code will [run on the\nVercel](https://vercel.com/docs/functions/concepts#functions-lifecycle) side,\nwhere you can\nview [runtime logs](https://vercel.com/docs/observability/runtime-logs)\nand [usage](https://vercel.com/docs/pricing/manage-and-optimize-usage#viewing-usage).\n\n## About this template\n\n### Environment variables\n\n#### Telegram bot token from [@BotFather](https://core.telegram.org/bots/tutorial#obtain-your-bot-token) (required)\n\n```env\nTELEGRAM_BOT_TOKEN = \"...\"\n```\n\n#### [Secret token](https://core.telegram.org/bots/api#:~:text=secret_token) for incoming requests (optional)\n\n```env\nTELEGRAM_SECRET_TOKEN = \"...\"\n```\n\n## Credits\n\nMade with 🌚 by [Vladislav Ponomarev](https://github.com/PonomareVlad)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponomarevlad%2Fgrammyvercel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fponomarevlad%2Fgrammyvercel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponomarevlad%2Fgrammyvercel/lists"}