The Discord server widget feed is designed to expose a safe, limited snapshot of a community. A website viewer can organise that snapshot, but it cannot invent information that Discord does not provide.
What the Discord widget JSON contains
The current guild widget object can include the server ID and name, an instant invite, accessible voice and stage channels, widget members and a total online presence count. Discord anonymises some member fields to reduce abuse.
This is enough to build a useful community preview without asking visitors to sign in.
Displaying public voice channels
Voice channels show where members are gathering. A good website viewer groups the people in each visible channel and makes occupied areas easy to scan.
Discord only exposes voice or stage channels that are accessible to @everyone. Private channels do not become public merely because a viewer is installed.

Displaying online members
The widget member list is not necessarily the same as the full server member list. It is a limited public representation of members visible through the widget, while presence_count can report a wider online total.
Discord Viewer can show members in channels and place additional visible members in the More Online section, keeping the main display readable.
Voice states, roles and game activity
Where the widget response provides the information, a viewer can present voice activity, muted or deafened states and the game a member is playing. Discord Viewer also supports administrator and bot labels based on its own configured display logic.
Why “only occupied channels” is useful
Large servers often have many empty voice channels. Showing every empty room can make a website viewer look abandoned even when people are active elsewhere.
The occupied-channel option keeps the preview focused on current activity. For smaller communities, showing all public channels may provide useful structure, so the right setting depends on the server.
Refresh behaviour and performance
A live viewer needs to refresh often enough to remain useful without making unnecessary network requests. Use the theme's built-in refresh behaviour and avoid adding several independent copies of the same JSON request to one page.
Reserve the viewer's dimensions in the layout so updates do not cause visible page movement. Lazy-load supporting imagery where appropriate, but do not hide the primary content behind large scripts.
Presenting the information clearly
- Keep server identity and online count prominent.
- Group members beneath the channel they occupy.
- Use labels sparingly so administrator, bot and activity information remains readable.
- Provide a clear join action.
- Test colour contrast and keyboard focus states.
- Check the viewer at mobile widths as well as desktop.

Know the limits of the public feed
A website viewer is a preview, not a replacement for Discord. It cannot display private messages, private channels or a complete real-time copy of the server. Its job is to help visitors understand the community and decide whether to join or open Discord.