Skip to main content
user@aqno:~$ cat larry-the-bot-is-live:-from-weekend-script-to-production.md

Larry the Bot Is Live: From Weekend Script to Production

Written by Giuseppe Aquino
Published on: 2026-07-09
larry-the-bot, discord, clash-of-clans, side-projects, announcement

On June 19, 2026, Larry stopped being a side project I could restart whenever I felt like it. He became a production Discord bot for Clash of Clans communities.

That means people I do not know can link their in-game accounts, publish recruiting posts, schedule the next one, and ask a web panel to reset a cooldown. Production has a rude but useful definition: strangers can press the buttons.

Recruiting is simple until it becomes a system

Clash of Clans is a mobile strategy game built around villages, clans, and wars. Around the game sit Discord communities where clans look for players and players look for clans.

The basic transaction sounds easy: write a recruiting message and post it in the right channel.

At community scale, it turns into policy:

  • Is the player advertising that village actually its owner?
  • Is the clan data current?
  • When may the same clan post again?
  • Does the cooldown belong to the Discord user, the clan, or the channel?
  • Who fixes it when an admin changes the rules?

Without tooling, people paste the same wall of text every evening and moderators enforce cooldowns by hand at 11 p.m. Larry automates that boring middle. He verifies the account, fetches the game data, formats the post, applies the server’s rules, and then gets out of the conversation.

That is the product. The slash commands are just where it lives.

From index.js to something I could ship

Larry started in February 2025 as the smallest possible bot for the Clash of Clans DE community Discord: link your Clash of Clans account, post a recruiting message without copy-pasting a wall of text into #recruiting every evening. One index.js, a commands/ folder, zero tests. It worked, the community used it, and then life happened — Larry went AFK for over a year.

When I reopened the repository in late May 2026, the code was dated but the problem was still there. The old bot had proved that the workflow was useful; it had not proved that the code was ready to serve communities I did not operate myself.

I spent four weeks rebuilding it as a monorepo with four applications: the Discord bot, an admin API, a React web panel, and the getlarry.io site. Shared libraries own the database shapes, validation, permissions, and repository logic. Tests, CI, versioned releases, and independent deployments replaced the traditional side-project release process of I ran it once and seemed fine.

I made the architecture and product decisions. An AI assistant worked through the tickets once the boundaries and acceptance criteria were explicit. That division was useful: judgment stayed with me; typing got parallelized.

What shipped

Larry’s first production version handles five connected jobs:

  • Verified account linking. /link checks a short-lived token from the Clash of Clans settings against Supercell’s API. The token proves that the Discord user controls the village instead of merely knowing its public player tag.
  • Recruiting posts with live data. /clan-post and /need-clan build Discord embeds from game data, saved templates, and generated army images. Clan posts can target several recruiting channels at once.
  • Cooldowns tied to what was posted. Clan cooldowns belong to the clan tag and channel, not the Discord user who clicked the command. Asking a clanmate to repost does not reset the clock.
  • Scheduled clan posts. Server Boosters can publish recurring recruiting posts without keeping a calendar reminder titled “spam Discord again.”
  • Per-server configuration. Every Discord server has isolated channels, roles, colors, cooldowns, and feature settings.

The detailed product tour is in Part 1 of the Larry series.

The operator surface matters

Players meet Larry through slash commands. Server operators get a web admin panel.

That split sounds obvious now. It was not obvious in the first version, where setup was whatever I could fit into a Discord command without creating a small text adventure.

The panel uses Discord login and checks the user’s current server permissions before allowing a change. Operators can configure channels, roles, embed colors, and cooldowns; see whether setup is complete; and invalidate a currently blocking cooldown without deleting its history.

The panel does not replace the bot. It gives the people maintaining the server a surface built for maintenance.

What production means here

Larry is not a startup disguised as a Discord bot. There is no growth dashboard, no on-call rotation, and no slide claiming the addressable market for clan recruiting is “basically everyone with a phone.”

Production still changes the standard.

The bot and admin API deploy independently. Database access goes through shared repositories. User-visible changes carry versions. CI checks formatting, types, tests, generated Discord commands, and builds before release. The system has to survive configuration changes made from a browser reaching a bot process running elsewhere without both inventing different versions of reality.

None of that makes Larry finished. It makes failures diagnosable and releases repeatable, which is the level of boring I wanted before inviting other communities in.

What comes next

The next large feature is a weekly trophy-push leaderboard with a /me profile command. Its shared data model and the first /me implementation are already built on the development branch; the background sync, Monday publishing, and leaderboard perks still have to land.

Schedule management and linked-account management also belong in the admin panel eventually. Today, those workflows still live primarily in Discord.

No dates attached. Larry is a side project with a production pipeline, not a startup with a deadline. Upgrades finish when the builder is done.

The technical companion

I’m writing a short documentation-style series on how Larry works under the hood:

  1. What Larry actually is (and does) — the product tour in detail.
  2. The architecture — four apps, five shared libraries, one Firestore as the single source of truth, and the security model behind the admin panel.
  3. Caching and cross-process sync — how Larry stays under its CoC request throttle and invalidates bot config after a web-panel change, without Redis.

If you run a Clash of Clans Discord server, invite Larry. Then tell me what breaks. Strangers can press the buttons now; I may as well hear what they do.

EOF