# Build on Jellyn

> Make Jellyn do more for your server. Your own slash commands and systems, events from your ER:LC server, and words that fill themselves in.

You don't need to run any code to build on Jellyn. Everything here is set up on the website and runs on Jellyn's side.

<CardGroup cols={2}>
  <Card title="Jellyn Lab" icon="flask-conical" href="/developers/lab/overview">
    Build your server's own slash commands, buttons and systems out of blocks on a canvas.
  </Card>
  <Card title="ER:LC webhooks" icon="webhook" href="/developers/erlc-webhooks">
    Send your private server's events to Jellyn the moment they happen.
  </Card>
  <Card title="Placeholders" icon="braces" href="/developers/placeholders">
    Every `{word}` Jellyn fills in, in posts, warnings and Lab blocks.
  </Card>
  <Card title="Use the docs with AI" icon="sparkles" href="/developers/ai-tools">
    These docs as Markdown and llms.txt, for ChatGPT, Claude and your own tools.
  </Card>
</CardGroup>

## How Jellyn runs your systems

```text title="How it fits together" nocopy
Your Discord server ──▶ Jellyn bot ──▶ Jellyn Lab systems ──▶ messages, roles, in-game commands
Your ER:LC server ──▶ events webhook / ER:LC API ──▶ automations, logs, Lab triggers
The dashboard ──▶ settings, rules and systems you save
```

- **Systems run on Jellyn.** Jellyn Lab systems, automations and game features run on Jellyn's servers, with your server's own limits. Nothing runs on your computer, and no system can reach another server.
- **One server only.** Every block acts in the system's own Discord server and its linked ER:LC servers. There is no way to point a system at another server, by design.
- **Safe by default.** Lab turns off mentions in everything it sends, never gives roles with Administrator or above its own, and never runs rank changes or commands on everyone at once in game.

## A public API

<Note>
  Jellyn doesn't have a public API or developer tokens yet. The website talks to its own API for its pages, signed in as you; that API isn't a stable contract and changes without notice. Build with Jellyn Lab and webhooks instead.
</Note>
