Welcome to the repo for the official Svelte Discord bot!
Bookmark
Apps in the context menu to use.Docs
/docs svelte or /docs sveltekit: Quickly search the Svelte or SvelteKit docs and send a link in the chat./mdn Same as above but for the MDN web docs.Github
/discussion, /issue or /pr search for matching discussions, issues or PRs in some of the sveltejs/* repositories and send links to the results in the chat.Tags: Tags are a way to store and reuse frequent responses so that you don't have to look up and type them out every time.
/tag Sends an existing tag to the chat./tags create Create a tag. You must have the threadlord role to use it./tags update Edit a tag. You must be the author of the tag to use it./tags delete Delete a tag. You must be the author of the tag or have the threadlord role.Threads: These are commands to manage the autothreads created by the bot. They can be used by the person who initiated the thread or by people with the threadlord role.
/thread rename/thread solve Renames the thread to have a green checkmark at the start and sets the archive duration to 1hr./thread archive Archive an active thread without marking it as solved./thread reopen Reopen a thread that's been accidentally marked as solved.Stats: Currently disabled commands which let you see how many cookies‡ a user has and the server leaderboard.
‡ internet points for solving threads, not the evil tracking ones
Click on the links below to view the documentation on the different parts of the bot's tech stack:
.env file, the template/example can be found here.All contributions are welcome, please try and make an issue first since most new features might warrant a discussion beforehand. Bug fixes probably won't need an issue and direct pull requests are ok for them.
You'll need at least Node 24.11.1, pnpm 10.23.0, and go 1.23.2.
Once you have the bot cloned and have run pnpm install then you need to make a .env file and fill out the fields:
cp .env.example .env
Run the database locally with pnpm db:dev. This will also create a pocketbase admin account for you with the email [email protected] and password testtest.
Run the bot with pnpm dev
Since there is no user facing code, prefer snake_case for variables and function names wherever possible. Local constants follow the same, whereas global constants should be in SCREAMING_SNAKE_CASE.
The bot uses the tsm module loader to transpile its Typescript code on the fly so there's no build step involved.
pnpm install
pnpm start