Skip to content
Moeijiro
← All projects

Project · Discord progression

QuestForge

Quests, XP levels and seasonal leaderboards for Discord communities.

Reputation has a cooldown so it can't be farmed; any bot reports activity through one API.

Discord SystemsAPIs & Integrations
Type
Personal open-source project
Automated tests
11 (pytest)
Built with
Python · FastAPI · SQLAlchemy (async)
Live demo
Runs locally — not hosted
Seasonal leaderboard

Overview

What it does

QuestForge replaces XP-per-message spam with quests you design: post in the right channels, help others, show up in voice. Reaching a goal pays out XP, a role and a badge; leaderboards rank all-time XP, season XP or reputation, and reputation has a cooldown so it can't be farmed.

Screenshots

From the running application

  • Seasonal leaderboard
    Seasonal leaderboard
  • Quest designer
    Quest designer
  • Member progress with XP and badges
    Member progress with XP and badges
  • Progress on a phone
    Progress on a phone

Captured from the app running locally with its seeded demo data. Select an image to open it full size.

Core features

What's in it

  • Quests

    Goals over reported activity, paying XP, roles and badges.

  • Levels & seasons

    One XP curve, all-time and seasonal boards.

  • Reputation

    Cooldown-protected so it can't be farmed.

  • Activity API

    Bots and services report activity through one endpoint.

Stack & skills

Built with

Technology

  • Python
  • FastAPI
  • SQLAlchemy (async)
  • discord.py
  • Next.js
  • TypeScript

What this project demonstrates

  • API-first design
  • Game-style progression
  • Discord communities

Repository & demo

Run it yourself

Seeded with a fictional community.

No public live demo is hosted. Everything below runs locally with Python 3.12+ and Node 20+.

$ git clone https://github.com/Moeijiro/questforge.git
$ cd questforge
$ make install
$ make seed
$ make api
$ make web

Have a project in mind?

I build APIs, automation systems, Discord integrations and full-stack applications. Tell me what it should do and I'll tell you how I'd build it.