Ludicord
Ludicord 3.1.0 is available

The React framework for Discord Activities.

Build the interface, trusted server, and realtime room as one application. Ludicord turns Discord context into typed React primitives.

# pulse-circuit · ActivityLive in Discord
Tonight's activity

Pulse Circuit

Race the signal. Keep the room in sync.

CHSAYU
4 connected
SIGNAL SPRINT
Ready in 00:18

All players share one Activity instance.

Room healthExcellent
Server eventroom.ready()
broadcast in 21ms
Gaming Lounge4 speaking · 42 ms
Compiled and connectedRoutes ready in 326ms
React 19 interface runtime15 typed entry points public APIHTTP + WebSocket one serverNode 20.19+ production baseline
Framework-level foundations

Everything around your Activity, already connected.

Ludicord owns the boundaries that usually get rebuilt for every embed. Your files stay recognizable; the generated runtime makes them work together.

Discord context

Identity arrives resolved—not scattered across SDK events.

Read normalized users, channels, guilds, participants, permissions, voice, layout, and the original payload when you need it.

CH
CholerGaming Lounge · Voice connected
VERIFIED
Activity roominstance_8f2…Scoped automatically
Permissionsvoice · guildNormalized + typed
const user = useDiscordUser()
Explore Discord data
File-based boundaries

A route looks like what it does.

Screens, HTTP handlers, and realtime endpoints stay separate in source and become one typed manifest at compile time.

app/embeds/home/embed.tsxscreen
app/api/score/route.tsHTTP
app/ws/room/route.tsrealtime
Trusted full stack

The same room on both sides.

Browser hooks and server handlers agree on verified user and Activity-instance context.

REACTuseActivityRoom()
SERVERctx.activity
A development loop you can trust

Compile first. Connect second. Fix the real error.

Ludicord validates the application before it announces a URL. Diagnostics come from the compiled route graph, so failures point to the file that owns them.

  • Fast Refresh for screens and routes
  • Credential and redirect validation
  • Readable compile-time diagnostics
Understand development
ludicord — development

ludicord dev

compiled 4 screens and 2 server routes

Discord credentials validated

WebSocket room ready

Activity connected at https://localhost:3000

watching for changes
From empty folder to production

Three commands. One mental model.

The README stays focused on the supported path. Advanced checks and maintenance commands live in the documentation where they can be explained properly.

  1. 1
    Createnpx create-ludicord-app@latest

    Generate the Activity shell, auth states, routes, and realtime starting point.

  2. 2
    Developludicord dev

    Compile the route graph, validate setup, and connect Discord to local development.

  3. 3
    Shipludicord build → ludicord start

    Produce and run one verified runtime for UI, APIs, auth, and WebSockets.

Ready when your idea is

Open the docs and build the part people remember.

Documentation synced to public Ludicord 3.1.0 · 20c4889

Read the docs