Skip to content

Repository files navigation

FluffBoost - Your Daily Dose of Furry Motivation

FluffBoost Banner

A furry-friendly Discord bot that delivers scheduled motivational quotes and heartwarming messages to your server. Whether you need inspiration, a positivity boost, or just a reason to smile, FluffBoost is here to make every day better with per-guild scheduling, premium subscriptions, and community-driven quotes.

Spread joy, one quote at a time.

Website & documentation →

Features

  • Scheduled Motivational Quotes — Automatically delivered to configured channels on a per-guild schedule with reliable delivery across shards.
  • Per-Guild Scheduling — Each server sets its own delivery time and timezone.
  • Premium Subscriptions — Optional premium tier via Discord App Subscriptions with custom frequency (daily, weekly, or monthly), time, and timezone selection.
  • Community Suggestions — Users can suggest quotes for server admins to review, approve, or reject.
  • Rotating Bot Status — Customizable bot presence that cycles through activities on a configurable interval.
  • Admin Dashboard — Manage quotes, activities, and suggestion reviews through slash commands.
  • Health Check API — Express-based health endpoint for monitoring and orchestration.
  • Sharded Architecture — Scales across multiple shards with Discord.js ShardingManager.

Getting Started

  1. Invite FluffBoost to your server using this link.
  2. Use /setup channel to configure which channel receives quotes.
  3. Enjoy daily motivation delivered to your server.

Step-by-step walkthrough: the Guide.

Usage

FluffBoost uses Discord slash commands grouped by role.

General Commands

Command Description
/about Learn about the bot and its creators
/help View available commands
/invite Get the bot invite link
/quote Receive an instant motivational quote
/suggestion Suggest a quote for review
/premium View premium subscription info
/changelog View recent changes

Admin Commands

Command Description
/admin quote create Add a new motivational quote
/admin quote list List all quotes
/admin quote remove Remove a quote
/admin activity create Add a bot status activity
/admin activity list List all activities
/admin activity remove Remove an activity
/admin suggestion approve Approve a suggested quote
/admin suggestion reject Reject a suggested quote
/admin suggestion list List pending suggestions
/admin suggestion stats View suggestion statistics

Setup Commands

Command Description
/setup channel Set the quote delivery channel
/setup schedule Customize delivery frequency and time

Owner Commands

Command Description
/owner premium test-create Create a test entitlement
/owner premium test-delete Delete a test entitlement

Tech Stack

Layer Technology
Runtime Bun
Language TypeScript 5.x (strict mode)
Discord Library Discord.js v14
Database PostgreSQL 16 via Drizzle ORM
Job Queue BullMQ with Redis 7
HTTP Server Express 5
Containerization Docker (multi-stage, Bun)
Monorepo Bun workspaces + Turborepo
Marketing & docs Next.js 16 + Fumadocs (static → GitHub Pages)
CI/CD GitHub Actions
Deployment Docker on Dokploy

Development

Prerequisites

  • Bun
  • PostgreSQL 16 (or use Docker Compose)
  • Redis 7 (or use Docker Compose)
  • A Discord application with bot token

Setup

Run everything from the repository root — Bun resolves the whole workspace.

  1. Clone the repository:

    git clone https://github.com/MrDemonWolf/fluffboost.git
    cd fluffboost
  2. Install dependencies:

    bun install
  3. Start local infrastructure:

    docker compose up -d
  4. Copy and configure environment variables:

    cp apps/discord/.env.example apps/discord/.env
  5. Sync the database schema:

    bun run db:push
  6. Start the bot in watch mode:

    bun run dev:discord

Workspace Scripts

Run these from the repository root; they fan out through Turborepo.

  • bun run dev:discord — Start the bot with hot reload
  • bun run dev:docs — Start the marketing/docs site
  • bun run lint / bun run lint:check — ESLint (with / without fixes)
  • bun run format — Format code with Prettier
  • bun run typecheck — TypeScript type checking
  • bun run test / bun run test:coverage — Test suites (with coverage)
  • bun run db:push — Sync schema to database (dev)
  • bun run db:generate — Generate a Drizzle migration
  • bun run db:migrate — Run migrations (production)
  • bun run db:studio — Open Drizzle Studio UI

Code Quality

  • ESLint with TypeScript and Airbnb base config
  • Strict TypeScript (noUnusedLocals, noUnusedParameters, noImplicitReturns, noUncheckedIndexedAccess)
  • bun:test + Sinon test framework
  • supertest for HTTP endpoint testing
  • CI runs via GitHub Actions with Bun

Project Structure

fluffboost/
├── apps/
│   ├── discord/              # The Discord bot
│   │   ├── src/
│   │   │   ├── api/          # Express health-check API
│   │   │   ├── commands/     # Slash commands (admin/, owner/, setup/)
│   │   │   ├── database/     # Drizzle ORM instance and schema
│   │   │   ├── events/       # Discord event handlers
│   │   │   ├── redis/        # Redis/IORedis connection
│   │   │   ├── utils/        # Shared utilities
│   │   │   └── worker/       # BullMQ worker and jobs
│   │   ├── tests/            # Test suite (mirrors src/)
│   │   ├── drizzle/          # Drizzle migration SQL files
│   │   ├── Dockerfile        # Multi-stage build (turbo prune)
│   │   └── docker-entrypoint.sh
│   ├── docs/                 # Marketing site + docs (Next.js + Fumadocs)
│   │   ├── app/              # Landing page + docs routes
│   │   └── content/          # user/ (Guide) + developer/ docs (MDX)
│   └── web/                  # (reserved) web dashboard — coming soon
├── docker-compose.yml        # Local PostgreSQL + Redis
├── turbo.json                # Turborepo pipeline
└── package.json              # Bun workspace root

Documentation

Documentation is published at mrdemonwolf.github.io/fluffboost and split by audience:

  • Guide — for server owners: setup, scheduling, suggestions, premium, and a command reference. Source: apps/docs/content/user/.
  • Developers — self-hosting, configuration, database, deployment, testing, and contributing. Source: apps/docs/content/developer/.

The site is a static export built from apps/docs and deployed by .github/workflows/deploy-docs.yml on every push to main.

Deploying the bot? The deployment guide covers both a fresh Dokploy setup and upgrading an existing pre-monorepo deployment — where the only production change is the Dockerfile path.

Changelog

For detailed changelog information, see CHANGELOG.md.

License

GitHub license

Contact

If you have any questions, suggestions, or feedback:

Made with love by MrDemonWolf, Inc.

Sponsor this project

Used by

Contributors

Languages