The public-facing half of the Server Listings directory — the browse grid with its filter bar, the listing cards, the detail page with its Join button and activity panel, and the report-a-listing flow. No login required to browse; login required only to vote and report.
The public directory lives at the Servers page. It is open to everyone — no Mokito account is needed to browse, filter, sort, read a server's detail page, or click the Join button. A Mokito account is only required to vote for a server you belong to and to report a listing.
The top of the page carries a hero banner, then a sticky filter bar, then a grid of listing cards. The grid shows 24 cards per page (four columns on wide desktops, one column on mobile).
The filter bar lets you narrow the grid. All filters are combined — e.g. you can search for "gaming" + pick the minecraft tag + sort by Most members at the same time. The Filter button submits the form; the × clear button (only shown when a filter is active) resets everything.
The search box matches against server names, short descriptions, long descriptions, and tag names. It is a full-text match — typing anime returns every listing whose name, description, or tags contain "anime". Leave the box empty to search everything.
The sort dropdown orders the results. See the Overview → The four sorts table for what each option does. Most votes is the default.
By default the directory hides NSFW listings. Tick the NSFW checkbox and submit the filter form to include them. The checkbox is sticky — once on, it stays on for subsequent searches until you clear it. See Overview → NSFW handling for how the flag works.
Each card in the grid shows:
X.X/user.Clicking anywhere on a card opens that server's detail page.
The grid is paginated 24 cards per page. The pagination links sit below the grid. The filter + sort + search state is carried through the pagination so flipping pages does not reset your filters.
If your filters return zero listings, the grid is replaced by a "No servers found" message with a suggestion to adjust your filters or check back later.
Each listing has a detail page at /servers/<invite-code>, where <invite-code> is the Discord invite code the owner pasted (e.g. /servers/xPvzCXT9bx). The detail page is the full listing — everything the card shows plus the long description, social links, and the Join button.
The top of the page is a header card. If the owner uploaded a banner, it spans the top of the card in a wide 5:1 banner strip. Below the banner sit the server icon, the name, the activity badge, the NSFW tag (if flagged), and a row of quick stats: member count, messages per user, language, and vote count. Below those are the tag chips — each is a link back to the browse page filtered by that tag.
The header card carries a Join Server button on the right. It links directly to the Discord invite URL the owner pasted (https://discord.gg/<invite-code>) and opens in a new tab. Clicking it takes you straight to Discord's join flow — Mokito does not generate or rotate the invite; it uses the permanent link the owner provided.
If you are logged in, a Vote button appears below the Join button. Clicking it casts a vote for this server (if you are a member and not on cooldown). The vote is submitted in the background and a toast confirms it. If you are not a member of this server, or you are on cooldown, the vote is rejected with a message explaining why. See Voting for the full rules.
Below the header card is the "About this server" section. If the owner wrote a long description, it is rendered as formatted Markdown — headings, bold and italic text, bulleted and numbered lists, links, blockquotes, and code blocks all render with Mokito's dark-neon styling. If the owner only filled in the short description, that is shown instead. If neither is filled in, a placeholder line says the owner hasn't added a description yet.
javascript: or data: schemes are stripped.
If the owner filled in any social links, they appear in a "Links" row below the description. Each link is a labeled button with the provider's icon:
x.com or twitter.com URLs) — the X/Twitter icon.Each link opens in a new tab with rel="noopener noreferrer me nofollow".
To the right of (or below, on mobile) the description sits the "Live activity" panel. It repeats the four quick stats — Members, Status (the activity badge), Messages / user, Votes — in a clean key/value list. At the bottom of the panel is a small "Synced X minutes ago via Mokito" note so you know how fresh the numbers are.
The tag chips in the header card are each clickable — clicking one takes you back to the browse page filtered to that tag, so you can find similar servers.
If you spot a listing that violates the directory's rules — spam, an NSFW server that isn't flagged, harassment, or something else — you can report it to Mokito. The report goes into a review queue.
You must be logged in to a Mokito account to report a listing. Anonymous reports are not accepted. Your Mokito account is tied to your Discord identity, which keeps the report queue accountable.
The report form offers four reasons:
| Reason | When to use it |
|---|---|
| Spam | The listing is advertising something unrelated, or the description is gibberish / keyword-stuffed. |
| NSFW mismatch | The server is adult-oriented but the owner did not flag it as NSFW. |
| Harassment | The listing targets, attacks, or doxes a person or group. |
| Other | Anything else — use the Details field to explain. |
The Report this listing button sits at the bottom of the activity panel on the detail page. Clicking it opens a confirmation modal — you pick a reason from the dropdown, optionally type up to 500 characters of detail, and confirm. The modal uses Mokito's standard confirm pattern; no browser pop-ups. Once submitted, the report enters the review queue and the listing remains visible until a decision is made.
| Limit / edge case | Behavior |
|---|---|
| Browse page size | 24 cards per page. |
| NSFW default visibility | Hidden by default. The visitor must tick the NSFW toggle to include them. |
| Default sort | Most votes (highest to lowest). |
| Search match scope | Server name + short description + long description + tag names. |
| Detail page URL | /servers/<invite-code> — the invite code is the slug. There is no separate vanity URL. |
| Join button link | https://discord.gg/<invite-code> — opens in a new tab. |
| Vote button on detail page | Only shown to logged-in users. Non-members and on-cooldown users get a rejection toast on click. |
| Report auth | Logged-in only. Anonymous reports are not accepted. |
| Report detail length | Up to 500 characters. |
| Long description rendering | Markdown rendered; raw HTML escaped; javascript: and data: links stripped. |
| Listing with no banner | A gradient placeholder with the server icon faded in is shown instead. |
| Listing with no description | Short description is shown; if that is also empty, a placeholder line is shown. |
| Hidden / removed listings | Do not appear in the browse grid or the sitemap. A direct detail-page URL returns 404. |
| Inactive guild (bot removed) | The listing is hidden from the directory automatically. |