grammY's webhook adapter needs a live HTTP server to hand updates to, and Telegram expects that server to be reachable instantly, not spinning up on demand. Deployed on a DenkOps slot, the Hono server backing grammY never sleeps, so it can answer Telegram's webhook POSTs the moment a user sends a message, any time of day.
import { Hono } from "hono";
import { Bot, webhookCallback } from "grammy";
const bot = new Bot(Bun.env.BOT_TOKEN!);
bot.on("message:text", (ctx) => ctx.reply("Got it."));
const app = new Hono();
app.post("/webhook", webhookCallback(bot, "hono"));
export default { port: 3000, fetch: app.fetch };Deploy it: install the plugin, say "deploy on DenkOps", and get a live SSL URL.
Start on DenkOps →Yes. The Hono server handling grammY's webhook callback runs continuously in your slot, so the bot answers messages at any hour without a cold start.
Yes, and DenkOps gives you exactly that, a stable SSL subdomain that doesn't change between deploys, so you register setWebhook once.