AI & Creative Technology  ·  Aug 2026 – Present  ·  Game Lounge, Malta

Ta’papi — GameLounge Design Bot

A custom Slack app with its own name, mascot, and personality — built end-to-end to guide GameLounge’s design team through complete, correctly-specced Jira tickets, and to answer brand questions for 19+ flagship brands on demand.

Ta'papi, the purple chibi T-rex mascot built for the GameLounge design bot Ta’papi · Slack Bolt SDK · Claude API · Jira REST
My Role
Bot Designer & Developer — code, flows, and mascot
Company
Game Lounge, Malta
Timeline
Aug 2026 – Present
Tools
Slack Bolt SDK, TypeScript, Claude API, Jira REST API
Slack Bolt SDKTypeScriptClaude APIJira REST API Character & Mascot DesignDesign-Ops Automation Socket ModeInternal Tooling
Overview

GameLounge’s design team fields creative requests through a single Jira project (CREATIVE) that has accumulated 25,000+ tickets — and a chronic share of them arrive incomplete or vague. I designed and built Ta’papi, GameLounge’s own Slack app, from the ground up: the code, the conversation flows, and the mascot itself — a small purple chibi T-rex with a monocle who owns his own Slack identity rather than borrowing “Claude”’s.

The goal was to catch every gap — a missing size, a missing legal disclaimer, the wrong market’s compliance rules — at the moment a ticket is filed, not after a designer has already started building the wrong thing.

The Problem It Solves

In practice, a large share of incoming design requests were arriving with:

  • Sizes described in words (“a banner and a web variant”) instead of exact pixel dimensions
  • A “T&Cs Apply” checkbox ticked with no actual legal text attached — someone has to chase it down after the fact
  • Market-specific compliance rules (age-restriction wording, responsible-gambling logos, date/currency formats) copy-pasted from a different market’s ticket
  • AI-generated briefs from other tools that sound complete but use plausible-looking, wrong specs
  • Arabic/RTL text arriving corrupted through Word → Jira → design-tool copy-paste
  • A due date the requester thinks is fine, that Jira’s own workflow won’t actually accept — discovered only after they think the ticket is filed

Every one of these is a real, recurring tax on the design team’s time — rework instead of just building the asset.

What I Built

Brand assistant — answers questions about GameLounge’s brands (colors, typography, tone of voice, dos/don’ts) and points straight to the right brand-kit assets, fuzzy-matching a partial name when there’s no exact hit, instead of a stakeholder guessing.

Guided ticket intake — a click-only, multi-screen Slack modal across 10 structured request types (Meta Ads, Icon Design, Hero Banner, and more), each with its own real field rules instead of Jira’s raw ~31-option internal taxonomy. A request for several concepts becomes one Jira Epic plus independent Task tickets, each with its own complete brief. The Jira description itself is built as a real structured document — not an LLM paraphrase — so legal and compliance text is always preserved verbatim. A rush-ticket fallback catches the case where Jira’s own due-date rules would otherwise reject the ticket outright, and still gets it filed.

Personality layer — I named and designed Ta’papi’s look and character, then built 8 real mascot pose images, instant small-talk replies, and a Home tab welcome view around him. It’s strictly scoped to casual, non-critical moments — the ticket-intake modal itself stays clear and businesslike, since precision there is the entire point of the bot.

How It’s Built

A single long-running Node.js/TypeScript process — no web server, no inbound HTTP port. It holds a persistent outbound WebSocket to Slack via Socket Mode, so Slack pushes events to it rather than the bot needing a public URL to secure. The Anthropic Claude API powers brand Q&A and the free-form chat fallback; ticket descriptions themselves are always built deterministically. The Jira Cloud REST API files the real Task/Epic issues.

Kept alive on a local machine via PM2, hardened with a Windows Scheduled Task that retries and confirms the process is actually back online after a real reboot — not just trusting a command’s exit code. A move to Fly.io for 24/7 hosting is next; the Dockerfile and config are already written as an outbound-only background worker.

Outcome

Live and in daily use by GameLounge’s design team — all 10 structured ticket types with Epic/variation support, real Jira ticket creation with formatted descriptions, brand lookup across GameLounge’s flagship brands, and the full mascot/personality layer, all running against the design team’s actual Slack workspace.

10
Structured ticket types
19/73
Brands answered so far
25,000+
Existing tickets it triages against
8
Mascot moods & poses