Skip to content
Chris Lenga

Work

Things I’ve built, and still run.

How each product works under the hood, from the bots running in 271 Discord servers to a server-authoritative combat format for FiveM and RedM. Features, pricing and docs live on each product’s own site, linked from its section.

RostaBot

Discord bot · 2025 to now

In production194 servers

RostaBot turns a Discord server’s roles into live roster boards: who holds each role, who to contact about it, and whether it is recruiting. Members ask to join in one click and contacts approve in DMs, so nobody hand-edits a pinned “who’s who” message again.

How it’s built

  • Boards rebuild themselves from real role changes as they happen, across every server the bot is in.
  • Join requests, invites and approvals run through DMs, with application questions, reminders, waitlists and a staff log.
  • Duty boards swap a server’s On Duty and Off Duty roles from one button.
  • Premium is sold through Discord’s own app subscriptions and enforced per server.
  • A ground-up rewrite of Role Tracker, my earlier Python bot that reached several hundred servers in weeks before Discord’s verification changes shelved it.
  • Node.js
  • discord.js
  • MariaDB
  • Discord Premium Apps
# staff

ForgeFeed

Discord bot · 2024 to now

In production53 servers

ForgeFeed posts a team’s GitHub activity into Discord: commits, pull requests, issues, workflow runs, releases and stars, plus issue boards and project boards that keep themselves current. It started as a tool for my own repositories and turned into a product.

How it’s built

  • Authenticates as a GitHub App, so each server reaches only the repositories its owner granted, on its own hourly API quota.
  • Webhooks deliver updates in about a second, and a sweep every 15 minutes catches anything missed while the bot restarted.
  • A guided /setup in one private message: link GitHub, pick a repository, tick the trackers.
  • Free and Premium plans through Discord’s app subscriptions.
  • Node.js
  • discord.js
  • Express
  • GitHub Apps
  • MySQL
# dev-updates

EvaluBot

Discord bot · 2026 to now

In production24 serversVerified by Discord

EvaluBot audits a Discord server’s security and setup without changing anything. It reads nine areas, scores the server out of 100 with every deduction explained, and tells staff the moment someone grants a risky permission.

How it’s built

  • Read-only by design: it never asks for Administrator and never changes a server.
  • Reports come as HTML or JSON, and each audit is compared with the last so the changes stand out.
  • Live alerts name whoever granted a dangerous permission, lowered a protection or mass-deleted channels and roles.
  • Audits queue under a global limit of six at a time, so a burst never exhausts Discord’s shared rate limit.
  • Node.js
  • discord.js
  • MySQL
# staff-reports

VendFeed

Discord bot · 2026 to now

Beta

VendFeed watches a Tebex webstore and announces what changes: new packages, sales, community goals, purchases, catalog changes and game server status. It works from a store’s public token alone and never asks for a secret key.

How it’s built

  • Every scan is diffed against the last snapshot, so only real changes are posted and nothing is ever replayed.
  • One request scheduler for the whole process: a 250 ms floor between Tebex calls, and a rate-limit response pushes the slot back for every caller.
  • Scans are jittered by 10%, and servers watching the same store share one set of requests.
  • A store that stops answering is paused, never deleted, and resumes without announcing what it missed.
  • Node.js
  • discord.js
  • MySQL
  • Tebex API
# store-feed

SKIRM

FiveM and RedM combat · 2025 to now

Closed beta

SKIRM is a competitive combat format for FiveM and RedM, and the successor to iSe.GG. There is no roleplay framework: a hub, a lobby and a shared open world, with every match running in its own dimension.

How it’s built

  • Combat is server-authoritative. Every shot is approved on the server before it lands, and health is read there rather than trusted, so no client can claim, deny or hand out a kill.
  • That turns godmode into a signal: approved damage that never lowers health is exactly what the anti-cheat looks for.
  • Routing buckets give every duel and match a dimension of its own.
  • The RedM build shares the same foundations, split into resources for networking, identity, the connection queue and characters.
  • Lua
  • FiveM
  • RedM
  • MySQL
  • NUI
SKIRM

Authorize, then observe

1

Authorize the shot

  • Attacker is in this arena, alive
  • Weapon was granted by the server
  • Firing no faster than it can
  • Victim in range, not spawn-protected

A refused shot is never relayed, so the damage happens nowhere.

2

Observe the result

Health is read on the server, never predicted. The server decides who died and who gets the kill.

Digital Den platform

Studio site and tools · 2023 to now

In production

Digital Den’s site is a product in its own right: free browser-based tools for Discord, Slack, FiveM and RedM developers, guides, docs, a live status page and the studio’s services, all from one Next.js codebase on Cloudflare.

How it’s built

  • Nearly every tool runs entirely in the browser, so nothing pasted into one is sent to a server.
  • One registry drives the tool pages, category hubs, related links, site search, the sitemap and llms.txt, so none of them drift.
  • A scheduled Cloudflare Worker checks every service, keeps uptime history and posts to Discord when something goes down.
  • Turnstile on every form, rate limits counted per IPv6 /64, hashed IP addresses and a 90-day limit on stored leads.
  • Next.js
  • TypeScript
  • Tailwind CSS
  • Cloudflare Workers
  • D1
  • KV
dgden.com/tools

Premium pipeline

Cloudflare Worker · 2026

In production

When someone subscribes to one of the bots inside Discord, that purchase has to land in two places reliably: the app’s own log channel, and a premium role in the Digital Den community. One small service does it for all four bots.

How it’s built

  • A Cloudflare Worker takes Discord’s webhook events for four apps at one address and checks each Ed25519 signature against the app it claims to come from.
  • It answers Discord straight away and relays in the background, with duplicates dropped in Workers KV.
  • Subscription state lives in D1 and is passed on, signed, to the studio’s community bot, which grants and reconciles the roles.
  • The Worker holds no bot token at all, and the bot can only read state back through signed requests.
  • TypeScript
  • Cloudflare Workers
  • D1
  • KV
  • discord.js

Discord

A server subscribes to RostaBot, ForgeFeed, EvaluBot or VendFeed.

Cloudflare Worker

Checks the Ed25519 signature, answers at once, drops duplicates in KV and posts to the app’s log channel.

D1

D1

Keeps the current state of every subscription.

Community bot

Grants and reconciles the premium role in the Digital Den server.

A lot of it isn’t here

Client platforms, internal tooling and private community systems sit under NDA, so I can’t show them or name the people I built them for. Projects get added here when those agreements run out, and some of them never will.

If you’re trying to work out whether I’ve done something this page doesn’t cover, just ask. I can usually talk about the work without naming the client.

On the web

Sites I’ve designed and built

Every product gets a home of its own. All of them are Next.js on Cloudflare, written and run by me.

Archive

Before Digital Den

Twenty years of communities, servers and bots that came before the studio, or have since closed. Most of what I build today started as one of these.

Communities

  • iSe.GG

    2019 to 2024 · 30,000+ members

    The first combat server on FiveM. I founded it, ran it until it closed, and founded the business it became: Interactive Social Experience, LLC, doing business as iSe.GG. Custom floating platforms replaced the GTA V map, servers ran across North America, Europe, Australia and Asia under an official Cfx.re listing, and 396 staff served over the years.

  • Vast Gamer

    2009 to 2016 · 40,000+ members

    Created when vendors we worked with felt Tactical Carnage was too aggressive a name for a multi-game community. After the merger it supported dozens of games, many with several groups running inside them, and kept sponsoring competitive teams and tournaments while the casual side grew fast. It closed when the funding ran out.

  • Tactical Carnage

    2007 to 2011 · 10,000 members

    Started as a Horde guild on World of Warcraft’s Stormrage, ranked among the top 10 guilds across all servers, then grew into more than 20 games. We sponsored competitive Counter-Strike and StarCraft teams and ran paid StarCraft tournaments before merging into Vast Gamer.

  • Legendary Supreme Force

    Early 2000s

    My first community, built on StarCraft, Diablo and Warcraft in the Battle.net 1.0 era. A few thousand members across a small number of games, on Ventrilo and later TeamSpeak.

  • Reality Purge

    Closed

    A volunteer-run nonprofit gaming community across many games, built around events, tournaments and a safe place to play.

  • Infinite Gaming Network

    Closed

    A distributed gaming community with a FiveM server of its own.

  • Gaming Together

    Closed

    A community project with its own Discord server and website.

  • The Lenga Collective

    Closed

    A creator collective for collaborations, with a merch store of its own.

Game servers

  • Midnight Racers RP

    Closed

    A racing-focused roleplay server with custom vehicles, tuning and mechanics, inspired by Midnight Club and Need for Speed. A tight-knit community with regular events and competitions.

  • Diamond Ridge RP

    Closed

    A FiveM roleplay server with deep systems.

  • Paradise Point RP

    Closed

    A FiveM roleplay server.

  • CIM City RP

    Closed

    An urban roleplay project.

  • OaO RP

    Closed

    An original roleplay server.

Bots and tools

  • Role Tracker

    Verified by Discord

    Grew to several hundred servers within weeks. Changes to Discord’s permissions and verification program, and to the Python library it was built on, made the original architecture impractical, so it was shelved.

  • Horoscope Bot

    Verified by Discord

    Started as a custom integration for a client, then became a multi-server bot that served hundreds of servers. Retired when the horoscope API it depended on changed its pricing.

  • Streamer Bot and Stream Discovery

    Closed

    Two attempts at the same idea: watch self-promo links, keep an embed of who is live across platforms, and rotate a featured creator.

  • Discord Setups

    Hundreds of servers

    Production server builds: channel architecture and permissions, automod and integrations with public bots and custom code, designed embeds and onboarding.

  • Chris Lenga Platform Stack

    Closed

    The hosting panel, documentation and production services I ran for clients under my own name, before they moved into Digital Den.

    Now Digital Den ↗
Digital Den

The full catalog lives on Digital Den

This page is the engineering story. The studio site has everything else: all 54 free tools, every bot with its docs, guides, live status and the services I offer through the studio.