Skip to content

CRBT-Team/Purplet

PROJECT STATUS: ON HOLD

Purplet is on hold, probably forever.

As of 2023, this project is being placed on hold for an undetermined amout of time, probably forever. As unfortunate as it is, our interest in working on Discord bots as diminished alot, and the amount of work required to take this project to the usable v2.0 that we dreamed of is too much work for us right now. Maybe someday one or both of us (or someone else) will have the time and motivation to finish the framework. Theres about two to three months of hard work left, and it would definetly be worth it as this framework provides some powerful tools that are not seen much elsewhere, such as building gateway bots and cloud functions out of the same codebase.

But me, Dave; I don't have a need for making Discord bots anymore. I don't have any large bot projects, and I've been drifting away from using Discord as a whole for the past few months. I'm no longer the target audience of my work, so it raises a huge question of "why am I doing this" if I'm never going to use it for anything.

If you want to help bring this project to completion, and have a very very very strong knowledge of TypeScript and can somewhat understand whats going on in this codebase, feel free to reach out to [email protected] for further explanations (I'd assume in that case you'll just for it and complete it or something).

Thanks for your support,
Dave Caruso


Purplet

Purplet

Next-gen tools to build modern Discord apps.

Discord API Version Version License Discord
GitHub commit activity (branch) CodeClimate Maintainability CodeClimate Issue Counter

About Purplet

Purplet is a Discord bot framework that splits your features into small, hot-reloadable modules, allowing you to move your focus to quickly building your bot ideas. For example, all the code needed for a "Hello World" Slash Command is:

export const helloWorld = $slashCommand({
  name: 'hello',
  description: 'A simple "Hello, World" command.',

  async handle() {
    this.showMessage('Hello, World!');
  },
});

Our suite of packages is built from the ground up on Web Standards like fetch and WebSocket, allowing your code to run locally in Node.js, but with the ability to deploy your interaction handlers to Cloudflare Workers, greatly reducing costs while increasing scalability.

⚠️ Purplet is extremely experimental software with a rapidly changing API. We do not recommend using it in production at this point. When v2.0 is released, the API will be stable, but it will still be considered experimental until we can ensure it's stability.

Full documentation on Purplet and how to get started is available at purplet.js.org.

Monorepo Contents

This repository contains these following public packages:

Package Description
purplet Full Framework for quickly building Discord Bots
@purplet/structures Classes wrapping Discord API objects
@purplet/rest Rest client implementation
@purplet/gateway Gateway client implementation
@purplet/utils Helper utilities for Discord driven development
@purplet/serialize* Utilities for binary serialization
create-purplet Project generation command, pnpm create purplet

*is not discord-specific, which might make it useful out of the context of Discord Bots.

The examples folder contains one framework example as of right now:

Example Projects Command to copy
Basic pnpm create purplet -t basic

Bots using Purplet

  • CRBT (closed source)

Have an open-source bot of your own you'd like to feature? Open an GitHub issue and we may add it here!

Contributing

See the contributing guide for information on how we accept contributions, as well as an overview of the codebase.

License

Purplet is licensed under the Apache License 2.0.