What is flora?
flora is a fast and secure runtime that lets you write Discord bots for your servers using TypeScript, without worrying about infrastructure. Deploy scripts on a per-guild basis through a single bot, powered by V8 isolates for complete isolation between guilds.
INFO
flora is in early alpha. Expect breaking changes and rough edges as the foundations solidify.
Key Features
- Each guild runs in its own V8 isolate with enforced resource limits and complete separation.
- TypeScript SDK with global namespace - no imports needed, just write code and deploy it.
- Rich SDK support for both prefix and slash commands with subcommands and options.
- KV storage with expiration, metadata, and prefix filtering out of the box.
- Schedule tasks with cron expressions for scheduled work.
- Deploy, manage logs, and interact with KV storage through the flora CLI
How It Works
flora provides a runtime that:
- Isolates guild scripts - Each guild's bot script runs in its own V8 isolate with strict resource limits
- Handles Discord events - The runtime receives Discord gateway events and routes them to your handlers
- Exposes a clean SDK - Write TypeScript with global functions with:
on(),slash(), andkv.store() - Manages deployment - Use the flora CLI to bundle and deploy your scripts to specific guilds
typescript
// Your entire bot in one file
const ping = prefix({
name: 'ping',
description: 'Respond with pong',
run: async (ctx) => {
await ctx.reply('pong!')
}
})
createBot({
prefix: '!',
commands: [ping]
})Community & Support
flora is open source and under active development. Any issues or questions? Feel free to open a GitHub issue or join our discord server!