Six phases shipped

Run your server like a product.

Moderation, tickets, automation and Stripe commerce for Discord. Every one of them configured from a single dashboard, isolated per server, with your keys encrypted and your money going straight to your own account.

18
slash commands live
AES-256-GCM
per-server key encryption
<30s
for a change to reach the bot
#storefront
mossybitToday at 14:02
/buy sku: supporter-role
poi-botAPPToday at 14:02
Order fulfilled
Product
Supporter role
Amount
$42.00 USD
Order
ord_9fj28d
Role granted
@Supporter
Receipt sent by DM · paid through PixelForge’s own Stripe account
Case #182automod removed an invite link in #general — 4s ago
Features

Everything a working server needs, and nothing it does not

Moderation, tickets and automation are free on every plan. The paid tiers gate the things that cost real money to run, not the things that make the bot worth installing.

Automod your mods can live with

Word filters, link allowlists, invite blocking, mention and caps thresholds, message rate, duplicate detection, attachment extensions. Anyone with Manage Messages is exempt automatically, so moderators cleaning up a raid never trip their own rules.

One punishment, not a pile-on

A message that breaks four rules produces the single most severe action, never a stacked warn and timeout and ban. There is deliberately no regex rule type: a tenant-authored pattern running on every message is a denial-of-service risk against every other server.

Checkout inside the channel

The /buy command posts a Stripe Checkout link for your own account. When the webhook lands, the bot grants the role, records the order and DMs a receipt. Fulfilment is idempotent, so routine webhook redeliveries never deliver twice. SellAuth syncs alongside it.

Tickets that leave a paper trail

Panels your members click, claim and close flows for staff, and a transcript written at close so a decision can still be reviewed a month later. Panels, categories and staff roles are all configured from the dashboard.

Automation that runs itself

Autoresponders, auto-roles, role panels, sticky messages, temporary voice hubs, giveaways with rerolls, invite tracking and vouches. Anti-nuke watches for mass deletes and bans and pulls the handbrake before a compromised admin finishes.

Isolated per server, by construction

Every server is its own tenant with its own config, credentials, limits and plan. Stripe keys are encrypted under a per-row key and decrypted only in memory for a single call. Losing admin in Discord removes dashboard access on the next sign-in.

Commands

18 slash commands, registered on invite

No prefix to remember and no permission the bot does not use. The invite grants exactly what these commands need, and never Administrator.

Commerce

Pro

Sell through your own Stripe account. Checkout happens in Discord, money lands in your account.

/buy<sku> [quantity]Purchase a product from this server's store
/productsList what this server sells
/ordersShow your recent orders in this server

Moderation

Free on every plan. Every action writes a case record your staff can review and appeal.

/warn<user> [reason]Warn a member
/timeout<user> <minutes> [reason]Time a member out (max 28 days)
/untimeout<user> [reason]Lift a member's timeout
/kick<user> [reason]Kick a member
/ban<user> [reason]Ban a member
/cases<user>Show a member's moderation history
/purge<count> [user]Bulk delete recent messages (1–100)

Messages

Reusable embeds built in the dashboard, plus recovery for what just disappeared.

/embed<name>Post a saved embed from the dashboard builder
/snipe[index]Show a recently deleted message in this channel
/editsnipe[index]Show a recently edited message in this channel

Community

Giveaways, reputation and invite tracking — the loops that keep a server busy.

/giveaway start<minutes> <prize> [winners] [role]Start a giveaway in this channel
/giveaway end<id>End a running giveaway now
/giveaway reroll<id> [winners]Draw replacement winners
/giveaway listShow running giveaways
/vouch<user> <rating> [comment]Vouch for another member
/vouches[user]Show someone's vouches
/invites[user]Show invite counts
/inviteboardShow the invite leaderboard
Pricing

Simple rates. No platform tax on your community.

No setup fees, no exit fees, cancel anytime. Plans are per server, so a quiet server never subsidises a busy one.

Starter
Freeforever

For small servers finding their feet.

You keep 100% of your sales
  • Full moderation suite — automod, cases, verification
  • 1 ticket panel and 1 role panel
  • 5 automod rules, 3 autoresponders
  • Welcome, goodbye and 3 saved embeds
  • 7 days of analytics history
  • Community support
Add to Discord
Guild
Customannual contract

For marketplaces and networks of servers.

You keep 100% of your sales
  • Everything in Pro, with every limit removed
  • Unlimited ticket panels, voice hubs and giveaways
  • 365 days of analytics history
  • Audit-log export and operator console access
  • Priority support
Talk to us
Status

Two services, one config

The dashboard runs on Vercel and the bot runs on Railway. Saving a change bumps the config version for that server and pushes an HMAC-signed notification to the gateway, which reloads it immediately. If the push fails, a 30-second poll picks it up anyway.

Live status
8

Discord servers linked to poi-bot. Every one keeps its own configuration, its own credentials and its own plan.

  • Online 24/7
  • Encrypted credentials
  • No forced bot invite

Gateway healthy · 129ms from this page

FAQ

Questions server owners actually ask

Is a commerce bot even allowed on Discord?

Yes, because poi-bot is not the merchant. You connect your own Stripe account and sell under it, so the bot never holds funds and never becomes a payment processor. It posts a Checkout link and reacts to Stripe's webhook. That is the whole of its involvement in the money.

Where does the money actually go?

Straight into your Stripe account, on your payout schedule, under your terms. Fulfilment (role grants, receipts, order records) runs when Stripe's webhook lands. That step is idempotent, so Stripe's routine webhook redeliveries never charge twice or deliver twice.

How are my Stripe keys stored?

Encrypted with AES-256-GCM under a per-row key before they are written, and decrypted in memory only for the duration of a single API call. They are never rendered back to you, never included in a log line, and never sent to the bot process. The bot reads orders, not credentials.

What does it cost?

Moderation, tickets, verification and automation are free on every plan, forever. Paid plans exist for the parts that cost real money to run: commerce, SellAuth, higher limits and longer analytics retention. A failed payment does not cut you off. Stripe retries for several days and access continues throughout.

How do refunds and disputes work?

Refund from the Orders page in the dashboard. It calls Stripe with your key, marks the order refunded, and revokes any role the purchase granted. Disputes are handled in your own Stripe dashboard, because the dispute is between you and your customer.

Do I need to write any code?

No. Invite the bot, sign in with Discord, pick a server, and work through the Setup checklist. It reads your live configuration rather than a stored step counter, so it always reflects what is actually true. Webhooks and the API are there if you want them, not required.

How quickly do dashboard changes reach the bot?

Immediately in the normal case. Saving a change bumps the server's config version and pushes an HMAC-signed notification to the bot on Railway, which reloads that server on the spot. If the push fails, the bot's 30-second poll picks the change up anyway, so a brief network problem delays a change rather than losing it.

What does the bot store about my members?

As little as it can. Analytics are aggregate daily counts with no message content and no per-user rows. Message content is kept in exactly two places: ticket transcripts, written when a ticket closes and visible to your staff, and snipe, which is memory-only, capped at five messages per channel, discarded after an hour, and off by default.

Set it up in an afternoon

Invite the bot, sign in with Discord, and the Setup checklist reads your live configuration to tell you what is left.