Paradise Engine / Grand Line operations

A great crew.
An open sea.
You at the helm.

Eight specialists. One command deck. Keep your Discord waters safe, your crew connected, and the next adventure in sight.

01 / MODERATION & DEFENSE02 / COMMUNITY & PLAY03 / SEARCH & AI
Why it holds up

Built for free tiers that are allowed to fall over

Every reliability rule in the codebase exists because something on a free tier will eventually hit its ceiling. Here is what happens when it does.

Isolated by construction

Each bot is its own process, its own Discord application, its own Render account. A crash in card game never touches moderation.

Bounded, always

Logs expire on a 60-day TTL. Mod actions archive at 90. Writes batch on a 30s flush instead of hitting the store per event.

RLS, not middleware

Row Level Security is the authorization boundary. A signed-in owner physically cannot read another guild’s rows, even by guessing an ID.

Live activity, no sockets

The log stream polls on a 10–15s interval with a `since` cursor. Serverless connection counts stay flat no matter how many guilds are open.

Degrades, never dies

No Redis means in-process rate limiting. No Mongo means logging is off. No upstream provider means a graceful embed instead of a hang.

GPT-free reliability

AI and search run through a queue with a hard timeout, so a slow model can never block the Discord gateway event loop.

The roster

Eight bots, eight failure domains

One shared contract, zero shared processes. Configure each independently — a change to the card game economy never risks a moderation outage.

Shanks

The captain of moderation

Case-tracked moderation and AI review of Discord AutoMod triggers. Create keyword rules with /automod in Discord.

/warn/mute/unmute+4

Sanji

The ship log

A structured audit trail for messages, members, channels, roles, voice and moderation.

/setlogchannel/logconfig/message+1

Zoro

Hold the line

Raid detection, rollback, snapshots and trust scoring. Arm protection explicitly and choose how Zoro responds.

/antinuke/whitelist/security+6

Boa Hancock

A welcome to remember

Welcome and farewell messages with live member placeholders. Leave a channel blank to disable that message.

/setwelcome/setleave/testwelcome

Nami

Every message, a little progress

Cooldown-gated XP, rank cards and a persistent server leaderboard.

/rank/leaderboard/setlevelchannel

Luffy

Play for the next adventure

Draw a hand, play a round and collect rewards. Player state persists across restarts.

/play/hand/score+2

Nico Robin

Find the story behind the question

Web search with cached results, provider fallbacks and an optional AI summary.

/search

Cyrene

Your companion beyond the horizon

Four separate AI routes: Cyrene through Groq, a neutral assistant through Mistral, image generation through Agnes and speech through OpenRouter TTS.

/ask/cyrene/imagine+3
Data split

Two databases, one deliberate line

Both free tiers cap at roughly 500MB. Keeping low-write config data out of the high-write activity store is the only reason either stays under the ceiling.

Supabase

Source of truth

Postgres with Row Level Security. Low write volume, relational, and the only place identity lives.

  • users
  • servers
  • bot_configs
  • mod_actions
  • security_events
  • antinuke_whitelist

MongoDB Atlas

Activity firehose

High write volume, flexible schema. Every log line, XP tick and card match lands here with a 60-day TTL.

  • logs
  • xp
  • card_games
  • inventories
  • ai_context

Upstash Redis

Hot path

Sub-millisecond counters and caches with TTL auto-expiry: rate limits, antinuke windows, search results.

  • rate-limits
  • antinuke counters
  • search cache
  • ai cache

The rule

If a row is written more than once a minute per guild, it goes to Mongo. If a dashboard user can own it, it goes to Supabase behind RLS. If it expires on its own, it goes to Redis.

Stop babysitting eight config files.

Connect a Discord account, pick a server, and every bot is one tab away. Or browse the demo first — no credentials required.

Free tier friendly — the whole stack runs on $0.