DEV Community

Mohamed Idris
Mohamed Idris

Posted on

You Don't Need a Mobile App. A Bot Might Be Enough

You build websites. You're comfortable with APIs, databases, and deployments. But here's a thought — not everyone wants to visit a website.

Some users want the app to come to them. Open Telegram, tap a button, done. No downloads, no signups, no "allow notifications" popup.

That's where bots fit in.

The gap between websites and apps

You build a website for your idea. It works great on desktop. Maybe okay on mobile. But your target audience — say, kids or busy parents — won't bookmark it. They won't come back every day. They need a nudge.

A mobile app would solve this, but I'm not familiar with mobile development, and there are two platforms to deal with. App store reviews. Updates. It's a whole different world.

A bot? You can build one in a weekend on Discord or Telegram with the same stack you already know — TypeScript, Node.js, and a database.

What I built

I recently built NumNinjas — a math practice bot for kids aged 10-12. The idea is simple: 3 math questions every day, sent straight to Telegram.

Here's what it does:

  • Kids open the bot, take a quick quiz, and get placed in a level
  • Every day at 2:30 PM they get 3 personalized questions (adaptive difficulty)
  • Questions use real-life scenarios — shopping, cooking, sports, not boring textbook stuff
  • 5 ninja belt levels, points, streaks, and weekly leaderboards
  • Parents get a weekly progress report every Sunday
  • Available in Arabic and English

The bot handles the daily engagement. The website handles everything else — public leaderboards, player profiles, and an admin panel for managing questions.

Demo video: https://youtu.be/6CjTg_NaghM

The tech stack

Nothing exotic:

  • Bot: TypeScript + Grammy (Telegram framework) + node-cron for scheduled jobs
  • Website: Next.js 15 (App Router, Server Components)
  • Database: Prisma 7 + MySQL
  • Shared logic: pnpm monorepo — bot and website share the same database package
  • Deployment: Railway (bot) + Hostinger (website) + Cloudflare (CDN)

Both apps deploy from the same GitHub repo. Push to main, both auto-deploy.

Why a bot instead of just a website?

Three reasons:

  1. Zero friction. Telegram is already on the phone. No download, no signup. Open the bot, tap start, you're solving math in 30 seconds.

  2. Push, don't pull. The bot sends questions to the user at 2:30 PM. The user doesn't need to remember to visit a website. The app comes to them.

  3. It's just an API. If you can build a REST API, you can build a bot. Grammy (or discord.js for Discord) gives you a clean way to handle commands, buttons, and callbacks. It's event-driven — think Express routes but for chat messages.

If you want to try

Building a bot is easier than you think. Start with:

  • A simple command handler (/start, /help)
  • An inline keyboard (buttons the user taps)
  • A database to store user state

That's it. You can add complexity later — scheduled messages, adaptive algorithms, leaderboards. But the core is just: receive message → process → reply.

If you're a web developer looking for a side project that's not "another todo app," try building a bot. Your users will thank you.


Try NumNinjas:

Top comments (0)