Discordopen sourceAI AgentGeminicommunity automationsolopreneur

We Open-Sourced Our Discord Community Bot — Because Too Many People Asked

· 39 min read

TL;DR

146 members. Zero human moderators. One lobster.

We built a Discord bot that auto-welcomes new members with personalized humor, joins conversations when they get interesting, and remembers every member's background and interests. It runs on Gemini Flash free tier, has zero npm dependencies, and costs $0/month.

Too many people kept asking how it works. So we open-sourced the whole thing.


The Problem: Community Management Doesn't Scale for Solo Builders

If you're building a product alone, community is both your biggest asset and your biggest time sink.

Every new member who joins and gets silence leaves. Every interesting conversation you miss is a connection you don't make. Every question that goes unanswered for 6 hours is a member who stops coming back.

The math is brutal. At 40+ new members per day (our peak), you'd need to be online 16 hours a day just to keep up with welcomes. That's before you write code, ship features, or do anything else.

We needed something that could:

  1. Welcome every new member within minutes, not hours
  2. Participate in conversations naturally, not just spam links
  3. Remember who people are and what they care about
  4. Cost nothing, because we're bootstrapped

So we built the lobster.


What Is Discord Lobster

Three scripts. Zero npm dependencies. Pure Node.js built-in modules (https, fs, path). Powered by Gemini Flash free tier.

Script 1: Welcome (discord-intro-responder.js) Runs every 3 minutes. Checks #introductions for new members. Generates a personalized welcome message using Gemini Flash, based on the member's username and whatever they wrote about themselves. The lobster has a personality — it cracks jokes based on usernames, references shared interests, and makes people feel like they joined a living community, not a dead server.

Script 2: Vibes (discord-lobster-vibes.js) Runs every 20 minutes. Reads the last few messages in #general. If the conversation is interesting — people discussing tech, sharing wins, asking real questions — the lobster chimes in. It has a 60-minute cooldown so it doesn't dominate the channel. When someone responds to the lobster, it responds back. Natural conversation flow, not scripted replies.

Script 3: Memory (discord-memory-builder.js) Runs every 10 minutes. Scans recent conversations and extracts member profiles: what they're working on, their technical background, their interests, their skill level. Stores everything in a local JSON file. Over time, the lobster builds a knowledge base of every member. This feeds back into welcomes and conversations — the lobster can reference past topics and connect members with shared interests.

The key architectural decision: cron, not persistent process. Each script runs, does its job, exits. No WebSocket connections to maintain. No process to keep alive. No memory leaks. If one run fails, the next one picks it up. We schedule them with systemd timers on a Linux box, but you could use cron, Task Scheduler, or anything that can run a script on an interval.


The Numbers

After 5 days of running the lobster in Ultra Lab HQ:

  • 146 members in the server
  • 100% welcome rate — every new member gets a personalized greeting within 3 minutes
  • 0 missed conversations — the lobster participates in roughly 30% of active threads
  • 87 member profiles built automatically from conversation context
  • $0/month operational cost (Gemini Flash free tier: 15 RPM, 1M TPM)
  • 0 npm dependencies to audit, update, or worry about

The lobster doesn't replace human interaction. It supplements it. When I'm asleep, shipping code, or in meetings, the community isn't dead. When I am online, I can focus on deep conversations instead of repetitive welcomes.


Why Open Source

Three reasons.

1. Too many people asked. After we posted about the lobster in our Discord and on Threads, the same question kept coming: "Can I use this for my server?" We got tired of explaining the architecture in DMs. Here's the repo. Go build.

2. Community management is the biggest bottleneck for solopreneurs. Every solo builder we know has the same story. They launch a Discord, get excited for the first week, then slowly stop responding because they're busy building. The server dies. The community fragments. Discord becomes a graveyard with a pinned message from 3 months ago.

This doesn't have to happen. A lobster that costs $0 and takes 15 minutes to deploy can keep your community alive while you build.

3. The lobster proved something important. AI can be a community manager — not a replacement for the human, but a complement. It handles the high-frequency, low-complexity interactions (welcomes, casual conversation, remembering who people are) so the human can focus on high-value interactions (mentoring, deep discussions, conflict resolution).

And it never sleeps.


Deployment: 15 Minutes

The repo includes everything:

  1. Clone the repo
  2. Set 3 environment variables: DISCORD_BOT_TOKEN, DISCORD_WEBHOOK_URL, GEMINI_API_KEY
  3. Configure your channel IDs in the scripts
  4. Set up cron jobs (examples provided for Linux and macOS)
  5. The lobster starts working

No Docker. No Kubernetes. No database. No cloud functions. Three scripts and a cron tab.

For the Gemini API key, use the free tier. At our scale (146 members, 3 active channels), we use roughly 200 requests per day. The free tier gives you 1,500 per day. You have headroom.


Also: The Blog Got a Major Upgrade

While we were at it, we shipped a significant upgrade to the Ultra Lab blog platform:

  • Syntax highlighting with Prism.js — code blocks now render properly for JavaScript, Python, TypeScript, Bash, and 20+ languages
  • Social share buttons on every post — X, LinkedIn, Threads, and LINE (this is a Taiwan-based project, LINE matters here)
  • 38 tag index pages — every tag like AI Agent, Discord, open source now has its own page with all matching posts, giving us long-tail SEO across dozens of topic clusters
  • Instant search — client-side fuzzy search across all posts, no server round-trip
  • Auto-generated OG images — every post gets a unique Open Graph image with the title, tags, and Ultra Lab branding

These aren't vanity features. Tag pages alone generated 38 new indexable URLs. The share buttons reduced the friction for readers to amplify posts. Search keeps people on-site longer. OG images make every social share look intentional instead of generic.


What's Next

The lobster is version 1. We're already thinking about:

  • Cross-channel memory: the lobster remembers context from #general when responding in #ask-agent
  • Proactive matchmaking: "Hey @alice, @bob was just asking about the same problem you solved last week"
  • Sentiment tracking: detect when conversations are going negative and alert the human
  • Multi-language support: our community spans English and Mandarin, the lobster should handle both natively

But v1 already works. It's been running in production for 5 days with zero manual intervention. That's the bar.


Try It

GitHub: github.com/ppcvote/discord-lobster

Discord: Join Ultra Lab HQ — come see the lobster in action before you deploy it yourself.

If you're a solo builder running a Discord community — or thinking about starting one — the lobster can manage it for you. Zero cost. Zero dependencies. One crustacean.

Fork it. Deploy it. Let the lobster work while you build.

Weekly AI Automation Playbook

No fluff — just templates, SOPs, and technical breakdowns you can use right away.

Join the Solo Lab Community

Free resource packs, daily build logs, and AI agents you can talk to. A community for solo devs who build with AI.

Need Technical Help?

Free consultation — reply within 24 hours.